diff Framework/Plugins/OrthancCppDatabasePlugin.h @ 88:eb08ec14fb04 db-changes

new extension implemented: TagMostRecentPatient
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 15 Jan 2019 21:10:50 +0100
parents 1012fe77241c
children ca0ecd412988
line wrap: on
line diff
--- a/Framework/Plugins/OrthancCppDatabasePlugin.h	Thu Jan 10 20:39:36 2019 +0100
+++ b/Framework/Plugins/OrthancCppDatabasePlugin.h	Tue Jan 15 21:10:50 2019 +0100
@@ -532,6 +532,8 @@
                                      int32_t metadata) = 0;
 
     virtual int64_t GetLastChangeIndex() = 0;
+
+    virtual void TagMostRecentPatient(int64_t patientId) = 0;
   };
 
 
@@ -1630,6 +1632,22 @@
       }
       ORTHANC_PLUGINS_DATABASE_CATCH      
     }
+
+
+    // New primitive since Orthanc 1.5.2
+    static OrthancPluginErrorCode TagMostRecentPatient(void* payload,
+                                                       int64_t patientId)
+    {
+      IDatabaseBackend* backend = reinterpret_cast<IDatabaseBackend*>(payload);
+      backend->GetOutput().SetAllowedAnswers(DatabaseBackendOutput::AllowedAnswers_None);
+
+      try
+      {
+        backend->TagMostRecentPatient(patientId);
+        return OrthancPluginErrorCode_Success;
+      }
+      ORTHANC_PLUGINS_DATABASE_CATCH      
+    }
    
 
   public:
@@ -1717,6 +1735,7 @@
       extensions.setResourcesContent = SetResourcesContent;  // Fast setting tags/metadata
       extensions.getChildrenMetadata = GetChildrenMetadata;
       extensions.getLastChangeIndex = GetLastChangeIndex;
+      extensions.tagMostRecentPatient = TagMostRecentPatient;
 
       if (backend.HasCreateInstance())
       {