瀏覽代碼

Enable tag caching

Whenever a tag cache read or write request is made, ensure that the
tag cache exists (create it if it does not exist).
Steve Pieper 12 年之前
父節點
當前提交
09f383f382
共有 1 個文件被更改,包括 8 次插入0 次删除
  1. 8 0
      Libs/DICOM/Core/ctkDICOMDatabase.cpp

+ 8 - 0
Libs/DICOM/Core/ctkDICOMDatabase.cpp

@@ -1230,6 +1230,10 @@ bool ctkDICOMDatabase::initializeTagCache()
 QString ctkDICOMDatabase::cachedTag(const QString sopInstanceUID, const QString tag)
 {
   Q_D(ctkDICOMDatabase);
+  if ( !this->tagCacheExists() )
+    {
+    this->initializeTagCache();
+    }
   QSqlQuery selectValue( d->Database );
   selectValue.prepare( "SELECT Value FROM TagCache WHERE SOPInstanceUID = :sopInstanceUID AND Tag = :tag" );
   selectValue.bindValue(":sopInstanceUID",sopInstanceUID);
@@ -1247,6 +1251,10 @@ QString ctkDICOMDatabase::cachedTag(const QString sopInstanceUID, const QString
 bool ctkDICOMDatabase::cacheTag(const QString sopInstanceUID, const QString tag, const QString value)
 {
   Q_D(ctkDICOMDatabase);
+  if ( !this->tagCacheExists() )
+    {
+    this->initializeTagCache();
+    }
   QSqlQuery insertTag( d->Database );
   insertTag.prepare( "INSERT OR REPLACE INTO TagCache VALUES(:sopInstanceUID, :tag, :value)" );
   insertTag.bindValue(":sopInstanceUID",sopInstanceUID);