| 
					
				 | 
			
			
				@@ -3,8 +3,13 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #include "qCTKDCMTK.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // Qt includes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include <QDebug> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #include <QSqlDatabase> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #include <QSqlError> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include <QSqlQuery> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include <QFile> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include <QStringList> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #include <iostream> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //---------------------------------------------------------------------------- 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -12,6 +17,8 @@ class qCTKDCMTKPrivate: public qCTKPrivate<qCTKDCMTK> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   qCTKDCMTKPrivate();  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  bool executeScript(const QString& script); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   QSqlDatabase  Database; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   QString       DatabaseFileName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   QString       LastError; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -56,4 +63,38 @@ const QString& qCTKDCMTK::GetLastError() const { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   QCTK_D(const qCTKDCMTK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   return d->LastError;  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+QSqlDatabase& qCTKDCMTK::database() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QCTK_D(qCTKDCMTK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return d->Database; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+bool qCTKDCMTKPrivate::executeScript(const QString& script) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QFile scriptFile(script); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  qDebug() << scriptFile.exists(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  qDebug() << scriptFile.size(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QString sqlCommands( scriptFile.readAll() ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  qDebug() << sqlCommands ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  sqlCommands.replace( '\n', ' ' ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  sqlCommands.replace("; ", ";\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QStringList sqlCommandsLines = sqlCommands.split('\n'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QSqlQuery query(Database); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  for (QStringList::iterator it = sqlCommandsLines.begin(); it != sqlCommandsLines.end()-1; ++it) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    query.exec(*it); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (query.lastError().type()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      std::cerr  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      << "There was an error during execution of the statement: "  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      << (*it).toStdString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+bool qCTKDCMTK::initializeDatabase()  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QCTK_D(qCTKDCMTK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return d->executeScript(":/dicom/dicom-schema.sql"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |