| 
					
				 | 
			
			
				@@ -44,9 +44,6 @@ qCTKDCMTK::~qCTKDCMTK() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //---------------------------------------------------------------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-QCTK_SET_CXX(qCTKDCMTK, const QString&, setDatabaseFileName, DatabaseFileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//---------------------------------------------------------------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 bool qCTKDCMTK::openDatabase(const QString& databaseFileName)  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   QCTK_D(qCTKDCMTK); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -57,44 +54,55 @@ bool qCTKDCMTK::openDatabase(const QString& databaseFileName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     d->LastError = d->Database.lastError().text(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if ( d->Database.tables().empty() )  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initializeDatabase(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const QString& qCTKDCMTK::GetLastError() const { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   QCTK_D(const qCTKDCMTK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   return d->LastError;  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-QSqlDatabase& qCTKDCMTK::database() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  QCTK_D(qCTKDCMTK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const QSqlDatabase& qCTKDCMTK::database() const { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QCTK_D(const 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 ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  scriptFile.open(QIODevice::ReadOnly); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QString sqlCommands( QTextStream(&scriptFile).readAll() ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   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()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (! (*it).startsWith("--") ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      std::cerr  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      << "There was an error during execution of the statement: "  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      << (*it).toStdString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      query.exec(*it); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (query.lastError().type()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        qDebug() << "There was an error during execution of the statement: " << (*it); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-bool qCTKDCMTK::initializeDatabase()  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+bool qCTKDCMTK::initializeDatabase(const char* sqlFileName)  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   QCTK_D(qCTKDCMTK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  return d->executeScript(":/dicom/dicom-schema.sql"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return d->executeScript(sqlFileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void qCTKDCMTK::closeDatabase() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QCTK_D(qCTKDCMTK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  d->Database.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 |