diff OrthancServer/ServerIndex.cpp @ 82:9eb40cad7935

fixes
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 24 Sep 2012 14:05:19 +0200
parents 6212bf978584
children a84291457608
line wrap: on
line diff
--- a/OrthancServer/ServerIndex.cpp	Mon Sep 24 10:33:41 2012 +0200
+++ b/OrthancServer/ServerIndex.cpp	Mon Sep 24 14:05:19 2012 +0200
@@ -231,6 +231,11 @@
   {
     std::string instanceUuid = Toolbox::GenerateUuid();
 
+    SQLite::Statement s2(db_, SQLITE_FROM_HERE, "INSERT INTO Resources VALUES(?, ?)");
+    s2.BindString(0, instanceUuid);
+    s2.BindInt(1, ResourceType_Instance);
+    s2.Run();
+
     SQLite::Statement s(db_, SQLITE_FROM_HERE, "INSERT INTO Instances VALUES(?, ?, ?, ?, ?, ?, ?, ?)");
     s.BindString(0, instanceUuid);
     s.BindString(1, parentSeriesUuid);
@@ -291,6 +296,11 @@
   {
     std::string seriesUuid = Toolbox::GenerateUuid();
 
+    SQLite::Statement s2(db_, SQLITE_FROM_HERE, "INSERT INTO Resources VALUES(?, ?)");
+    s2.BindString(0, seriesUuid);
+    s2.BindInt(1, ResourceType_Series);
+    s2.Run();
+
     SQLite::Statement s(db_, SQLITE_FROM_HERE, "INSERT INTO Series VALUES(?, ?, ?, ?)");
     s.BindString(0, seriesUuid);
     s.BindString(1, parentStudyUuid);
@@ -299,7 +309,7 @@
     const DicomValue* expectedNumberOfInstances;
     if ((expectedNumberOfInstances = dicomSummary.TestAndGetValue(DICOM_TAG_NUMBER_OF_FRAMES)) != NULL ||
         (expectedNumberOfInstances = dicomSummary.TestAndGetValue(DICOM_TAG_NUMBER_OF_SLICES)) != NULL ||
-        (expectedNumberOfInstances = dicomSummary.TestAndGetValue(DICOM_TAG_CARDIAC_NUMBER_OF_IMAGES)) != NULL ||
+        //(expectedNumberOfInstances = dicomSummary.TestAndGetValue(DICOM_TAG_CARDIAC_NUMBER_OF_IMAGES)) != NULL ||
         (expectedNumberOfInstances = dicomSummary.TestAndGetValue(DICOM_TAG_IMAGES_IN_ACQUISITION)) != NULL)
     {
       s.BindInt(3, boost::lexical_cast<unsigned int>(expectedNumberOfInstances->AsString()));
@@ -342,6 +352,11 @@
   {
     std::string studyUuid = Toolbox::GenerateUuid();
 
+    SQLite::Statement s2(db_, SQLITE_FROM_HERE, "INSERT INTO Resources VALUES(?, ?)");
+    s2.BindString(0, studyUuid);
+    s2.BindInt(1, ResourceType_Study);
+    s2.Run();
+
     SQLite::Statement s(db_, SQLITE_FROM_HERE, "INSERT INTO Studies VALUES(?, ?, ?)");
     s.BindString(0, studyUuid);
     s.BindString(1, parentPatientUuid);
@@ -381,6 +396,11 @@
     std::string patientUuid = Toolbox::GenerateUuid();
     std::string dicomPatientId = dicomSummary.GetValue(DICOM_TAG_PATIENT_ID).AsString();
 
+    SQLite::Statement s2(db_, SQLITE_FROM_HERE, "INSERT INTO Resources VALUES(?, ?)");
+    s2.BindString(0, patientUuid);
+    s2.BindInt(1, ResourceType_Patient);
+    s2.Run();
+
     SQLite::Statement s(db_, SQLITE_FROM_HERE, "INSERT INTO Patients VALUES(?, ?)");
     s.BindString(0, patientUuid);
     s.BindString(1, dicomPatientId);
@@ -611,7 +631,7 @@
   {
     SQLite::Statement s1(db_, SQLITE_FROM_HERE, "SELECT expectedNumberOfInstances FROM Series WHERE uuid=?");
     s1.BindString(0, seriesUuid);
-    if (!s1.Step())
+    if (!s1.Step() || s1.ColumnIsNull(0))
     {
       return SeriesStatus_Unknown;
     }
@@ -678,7 +698,7 @@
       
       if (s.ColumnIsNull(4))
       {
-        result["IndexInSeries"] = -1;
+        result["IndexInSeries"] = Json::nullValue;
       }
       else
       {
@@ -719,7 +739,7 @@
 
     if (s1.ColumnIsNull(2))
     {
-      result["ExpectedNumberOfInstances"] = -1;
+      result["ExpectedNumberOfInstances"] = Json::nullValue;
     }
     else
     {
@@ -926,4 +946,5 @@
 
     return true;
   }
+
 }