diff OrthancServer/Plugins/Engine/PluginsEnumerations.cpp @ 4044:d25f4c0fa160 framework

splitting code into OrthancFramework and OrthancServer
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 10 Jun 2020 20:30:34 +0200
parents Plugins/Engine/PluginsEnumerations.cpp@1d2b31fc782f
children 05b8fd21089c
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/OrthancServer/Plugins/Engine/PluginsEnumerations.cpp	Wed Jun 10 20:30:34 2020 +0200
@@ -0,0 +1,584 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
+ * Department, University Hospital of Liege, Belgium
+ * Copyright (C) 2017-2020 Osimis S.A., Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#include "../../OrthancServer/PrecompiledHeadersServer.h"
+#include "PluginsEnumerations.h"
+
+#if ORTHANC_ENABLE_PLUGINS != 1
+#error The plugin support is disabled
+#endif
+
+
+#include "../../Core/OrthancException.h"
+
+namespace Orthanc
+{
+  namespace Compatibility
+  {
+    OrthancPluginIdentifierConstraint Convert(IdentifierConstraintType constraint)
+    {
+      switch (constraint)
+      {
+        case Compatibility::IdentifierConstraintType_Equal:
+          return OrthancPluginIdentifierConstraint_Equal;
+
+        case Compatibility::IdentifierConstraintType_GreaterOrEqual:
+          return OrthancPluginIdentifierConstraint_GreaterOrEqual;
+
+        case Compatibility::IdentifierConstraintType_SmallerOrEqual:
+          return OrthancPluginIdentifierConstraint_SmallerOrEqual;
+
+        case Compatibility::IdentifierConstraintType_Wildcard:
+          return OrthancPluginIdentifierConstraint_Wildcard;
+
+        default:
+          throw OrthancException(ErrorCode_ParameterOutOfRange);
+      }
+    }
+
+
+    IdentifierConstraintType Convert(OrthancPluginIdentifierConstraint constraint)
+    {
+      switch (constraint)
+      {
+        case OrthancPluginIdentifierConstraint_Equal:
+          return Compatibility::IdentifierConstraintType_Equal;
+
+        case OrthancPluginIdentifierConstraint_GreaterOrEqual:
+          return Compatibility::IdentifierConstraintType_GreaterOrEqual;
+
+        case OrthancPluginIdentifierConstraint_SmallerOrEqual:
+          return Compatibility::IdentifierConstraintType_SmallerOrEqual;
+
+        case OrthancPluginIdentifierConstraint_Wildcard:
+          return Compatibility::IdentifierConstraintType_Wildcard;
+
+        default:
+          throw OrthancException(ErrorCode_ParameterOutOfRange);
+      }
+    }
+  }
+
+
+  namespace Plugins
+  {
+    OrthancPluginChangeType Convert(ChangeType type)
+    {
+      switch (type)
+      {
+        case ChangeType_CompletedSeries:
+          return OrthancPluginChangeType_CompletedSeries;
+
+        case ChangeType_Deleted:
+          return OrthancPluginChangeType_Deleted;
+
+        case ChangeType_NewChildInstance:
+          return OrthancPluginChangeType_NewChildInstance;
+
+        case ChangeType_NewInstance:
+          return OrthancPluginChangeType_NewInstance;
+
+        case ChangeType_NewPatient:
+          return OrthancPluginChangeType_NewPatient;
+
+        case ChangeType_NewSeries:
+          return OrthancPluginChangeType_NewSeries;
+
+        case ChangeType_NewStudy:
+          return OrthancPluginChangeType_NewStudy;
+
+        case ChangeType_StablePatient:
+          return OrthancPluginChangeType_StablePatient;
+
+        case ChangeType_StableSeries:
+          return OrthancPluginChangeType_StableSeries;
+
+        case ChangeType_StableStudy:
+          return OrthancPluginChangeType_StableStudy;
+
+        case ChangeType_UpdatedAttachment:
+          return OrthancPluginChangeType_UpdatedAttachment;
+
+        case ChangeType_UpdatedMetadata:
+          return OrthancPluginChangeType_UpdatedMetadata;
+
+        default:
+          throw OrthancException(ErrorCode_ParameterOutOfRange);
+      }
+    }
+
+
+    OrthancPluginPixelFormat Convert(PixelFormat format)
+    {
+      switch (format)
+      {
+        case PixelFormat_BGRA32:
+          return OrthancPluginPixelFormat_BGRA32;
+
+        case PixelFormat_Float32:
+          return OrthancPluginPixelFormat_Float32;
+
+        case PixelFormat_Grayscale16:
+          return OrthancPluginPixelFormat_Grayscale16;
+
+        case PixelFormat_Grayscale32:
+          return OrthancPluginPixelFormat_Grayscale32;
+
+        case PixelFormat_Grayscale64:
+          return OrthancPluginPixelFormat_Grayscale64;
+
+        case PixelFormat_Grayscale8:
+          return OrthancPluginPixelFormat_Grayscale8;
+
+        case PixelFormat_RGB24:
+          return OrthancPluginPixelFormat_RGB24;
+
+        case PixelFormat_RGB48:
+          return OrthancPluginPixelFormat_RGB48;
+
+        case PixelFormat_RGBA32:
+          return OrthancPluginPixelFormat_RGBA32;
+
+        case PixelFormat_SignedGrayscale16:
+          return OrthancPluginPixelFormat_SignedGrayscale16;
+
+        default:
+          throw OrthancException(ErrorCode_ParameterOutOfRange);
+      }
+    }
+
+
+    PixelFormat Convert(OrthancPluginPixelFormat format)
+    {
+      switch (format)
+      {
+        case OrthancPluginPixelFormat_BGRA32:
+          return PixelFormat_BGRA32;
+
+        case OrthancPluginPixelFormat_Float32:
+          return PixelFormat_Float32;
+
+        case OrthancPluginPixelFormat_Grayscale16:
+          return PixelFormat_Grayscale16;
+
+        case OrthancPluginPixelFormat_Grayscale32:
+          return PixelFormat_Grayscale32;
+
+        case OrthancPluginPixelFormat_Grayscale64:
+          return PixelFormat_Grayscale64;
+
+        case OrthancPluginPixelFormat_Grayscale8:
+          return PixelFormat_Grayscale8;
+
+        case OrthancPluginPixelFormat_RGB24:
+          return PixelFormat_RGB24;
+
+        case OrthancPluginPixelFormat_RGB48:
+          return PixelFormat_RGB48;
+
+        case OrthancPluginPixelFormat_RGBA32:
+          return PixelFormat_RGBA32;
+
+        case OrthancPluginPixelFormat_SignedGrayscale16:
+          return PixelFormat_SignedGrayscale16;
+
+        default:
+          throw OrthancException(ErrorCode_ParameterOutOfRange);
+      }
+    }
+
+
+    OrthancPluginContentType Convert(FileContentType type)
+    {
+      switch (type)
+      {
+        case FileContentType_Dicom:
+          return OrthancPluginContentType_Dicom;
+
+        case FileContentType_DicomAsJson:
+          return OrthancPluginContentType_DicomAsJson;
+
+        default:
+          return OrthancPluginContentType_Unknown;
+      }
+    }
+
+
+    FileContentType Convert(OrthancPluginContentType type)
+    {
+      switch (type)
+      {
+        case OrthancPluginContentType_Dicom:
+          return FileContentType_Dicom;
+
+        case OrthancPluginContentType_DicomAsJson:
+          return FileContentType_DicomAsJson;
+
+        default:
+          return FileContentType_Unknown;
+      }
+    }
+
+
+    DicomToJsonFormat Convert(OrthancPluginDicomToJsonFormat format)
+    {
+      switch (format)
+      {
+        case OrthancPluginDicomToJsonFormat_Full:
+          return DicomToJsonFormat_Full;
+
+        case OrthancPluginDicomToJsonFormat_Short:
+          return DicomToJsonFormat_Short;
+
+        case OrthancPluginDicomToJsonFormat_Human:
+          return DicomToJsonFormat_Human;
+
+        default:
+          throw OrthancException(ErrorCode_ParameterOutOfRange);
+      }
+    }
+
+
+    OrthancPluginInstanceOrigin Convert(RequestOrigin origin)
+    {
+      switch (origin)
+      {
+        case RequestOrigin_DicomProtocol:
+          return OrthancPluginInstanceOrigin_DicomProtocol;
+
+        case RequestOrigin_RestApi:
+          return OrthancPluginInstanceOrigin_RestApi;
+
+        case RequestOrigin_Lua:
+          return OrthancPluginInstanceOrigin_Lua;
+
+        case RequestOrigin_Plugins:
+          return OrthancPluginInstanceOrigin_Plugin;
+
+        case RequestOrigin_Unknown:
+          return OrthancPluginInstanceOrigin_Unknown;
+
+        default:
+          throw OrthancException(ErrorCode_ParameterOutOfRange);
+      }
+    }
+
+
+    OrthancPluginHttpMethod Convert(HttpMethod method)
+    {
+      switch (method)
+      {
+        case HttpMethod_Get:
+          return OrthancPluginHttpMethod_Get;
+
+        case HttpMethod_Post:
+          return OrthancPluginHttpMethod_Post;
+
+        case HttpMethod_Put:
+          return OrthancPluginHttpMethod_Put;
+
+        case HttpMethod_Delete:
+          return OrthancPluginHttpMethod_Delete;
+
+        default:
+          throw OrthancException(ErrorCode_ParameterOutOfRange);
+      }
+    }
+
+
+    ValueRepresentation Convert(OrthancPluginValueRepresentation vr)
+    {
+      switch (vr)
+      {
+        case OrthancPluginValueRepresentation_AE:
+          return ValueRepresentation_ApplicationEntity;
+
+        case OrthancPluginValueRepresentation_AS:
+          return ValueRepresentation_AgeString;
+
+        case OrthancPluginValueRepresentation_AT:
+          return ValueRepresentation_AttributeTag;
+
+        case OrthancPluginValueRepresentation_CS:
+          return ValueRepresentation_CodeString;
+
+        case OrthancPluginValueRepresentation_DA:
+          return ValueRepresentation_Date;
+
+        case OrthancPluginValueRepresentation_DS:
+          return ValueRepresentation_DecimalString;
+
+        case OrthancPluginValueRepresentation_DT:
+          return ValueRepresentation_DateTime;
+
+        case OrthancPluginValueRepresentation_FD:
+          return ValueRepresentation_FloatingPointDouble;
+
+        case OrthancPluginValueRepresentation_FL:
+          return ValueRepresentation_FloatingPointSingle;
+
+        case OrthancPluginValueRepresentation_IS:
+          return ValueRepresentation_IntegerString;
+
+        case OrthancPluginValueRepresentation_LO:
+          return ValueRepresentation_LongString;
+
+        case OrthancPluginValueRepresentation_LT:
+          return ValueRepresentation_LongText;
+
+        case OrthancPluginValueRepresentation_OB:
+          return ValueRepresentation_OtherByte;
+
+        case OrthancPluginValueRepresentation_OF:
+          return ValueRepresentation_OtherFloat;
+
+        case OrthancPluginValueRepresentation_OW:
+          return ValueRepresentation_OtherWord;
+
+        case OrthancPluginValueRepresentation_PN:
+          return ValueRepresentation_PersonName;
+
+        case OrthancPluginValueRepresentation_SH:
+          return ValueRepresentation_ShortString;
+
+        case OrthancPluginValueRepresentation_SL:
+          return ValueRepresentation_SignedLong;
+
+        case OrthancPluginValueRepresentation_SQ:
+          return ValueRepresentation_Sequence;
+
+        case OrthancPluginValueRepresentation_SS:
+          return ValueRepresentation_SignedShort;
+
+        case OrthancPluginValueRepresentation_ST:
+          return ValueRepresentation_ShortText;
+
+        case OrthancPluginValueRepresentation_TM:
+          return ValueRepresentation_Time;
+
+        case OrthancPluginValueRepresentation_UI:
+          return ValueRepresentation_UniqueIdentifier;
+
+        case OrthancPluginValueRepresentation_UL:
+          return ValueRepresentation_UnsignedLong;
+
+        case OrthancPluginValueRepresentation_UN:
+          return ValueRepresentation_Unknown;
+
+        case OrthancPluginValueRepresentation_US:
+          return ValueRepresentation_UnsignedShort;
+
+        case OrthancPluginValueRepresentation_UT:
+          return ValueRepresentation_UnlimitedText;
+
+        default:
+          throw OrthancException(ErrorCode_ParameterOutOfRange);
+
+          /*
+          Not supported as of DCMTK 3.6.0:
+          return ValueRepresentation_OtherDouble
+          return ValueRepresentation_OtherLong
+          return ValueRepresentation_UniversalResource
+          return ValueRepresentation_UnlimitedCharacters
+          */
+      }
+    }
+
+
+    OrthancPluginValueRepresentation Convert(ValueRepresentation vr)
+    {
+      switch (vr)
+      {
+        case ValueRepresentation_ApplicationEntity:
+          return OrthancPluginValueRepresentation_AE;
+
+        case ValueRepresentation_AgeString:
+          return OrthancPluginValueRepresentation_AS;
+
+        case ValueRepresentation_AttributeTag:
+          return OrthancPluginValueRepresentation_AT;
+
+        case ValueRepresentation_CodeString:
+          return OrthancPluginValueRepresentation_CS;
+
+        case ValueRepresentation_Date:
+          return OrthancPluginValueRepresentation_DA;
+
+        case ValueRepresentation_DecimalString:
+          return OrthancPluginValueRepresentation_DS;
+
+        case ValueRepresentation_DateTime:
+          return OrthancPluginValueRepresentation_DT;
+
+        case ValueRepresentation_FloatingPointDouble:
+          return OrthancPluginValueRepresentation_FD;
+
+        case ValueRepresentation_FloatingPointSingle:
+          return OrthancPluginValueRepresentation_FL;
+
+        case ValueRepresentation_IntegerString:
+          return OrthancPluginValueRepresentation_IS;
+
+        case ValueRepresentation_LongString:
+          return OrthancPluginValueRepresentation_LO;
+
+        case ValueRepresentation_LongText:
+          return OrthancPluginValueRepresentation_LT;
+
+        case ValueRepresentation_OtherByte:
+          return OrthancPluginValueRepresentation_OB;
+
+        case ValueRepresentation_OtherFloat:
+          return OrthancPluginValueRepresentation_OF;
+
+        case ValueRepresentation_OtherWord:
+          return OrthancPluginValueRepresentation_OW;
+
+        case ValueRepresentation_PersonName:
+          return OrthancPluginValueRepresentation_PN;
+
+        case ValueRepresentation_ShortString:
+          return OrthancPluginValueRepresentation_SH;
+
+        case ValueRepresentation_SignedLong:
+          return OrthancPluginValueRepresentation_SL;
+
+        case ValueRepresentation_Sequence:
+          return OrthancPluginValueRepresentation_SQ;
+
+        case ValueRepresentation_SignedShort:
+          return OrthancPluginValueRepresentation_SS;
+
+        case ValueRepresentation_ShortText:
+          return OrthancPluginValueRepresentation_ST;
+
+        case ValueRepresentation_Time:
+          return OrthancPluginValueRepresentation_TM;
+
+        case ValueRepresentation_UniqueIdentifier:
+          return OrthancPluginValueRepresentation_UI;
+
+        case ValueRepresentation_UnsignedLong:
+          return OrthancPluginValueRepresentation_UL;
+
+        case ValueRepresentation_UnsignedShort:
+          return OrthancPluginValueRepresentation_US;
+
+        case ValueRepresentation_UnlimitedText:
+          return OrthancPluginValueRepresentation_UT;
+
+        case ValueRepresentation_Unknown:
+          return OrthancPluginValueRepresentation_UN;  // Unknown
+
+          // These VR are not supported as of DCMTK 3.6.0, so they are
+          // mapped to "UN" (unknown) VR in the plugins
+        case ValueRepresentation_OtherDouble:          
+        case ValueRepresentation_OtherLong:
+        case ValueRepresentation_UniversalResource:
+        case ValueRepresentation_UnlimitedCharacters:
+          return OrthancPluginValueRepresentation_UN;
+
+        default:
+          throw OrthancException(ErrorCode_ParameterOutOfRange);
+      }
+    }
+
+
+    OrthancPluginJobStepStatus Convert(JobStepCode step)
+    {
+      switch (step)
+      {
+        case JobStepCode_Success:
+          return OrthancPluginJobStepStatus_Success;
+          
+        case JobStepCode_Failure:
+          return OrthancPluginJobStepStatus_Failure;
+          
+        case JobStepCode_Continue:
+          return OrthancPluginJobStepStatus_Continue;
+        
+        default:
+          throw OrthancException(ErrorCode_ParameterOutOfRange);
+      }
+    }
+
+    JobStepCode Convert(OrthancPluginJobStepStatus step)
+    {
+      switch (step)
+      {
+        case OrthancPluginJobStepStatus_Success:
+          return JobStepCode_Success;
+        
+        case OrthancPluginJobStepStatus_Failure:
+          return JobStepCode_Failure;
+        
+        case OrthancPluginJobStepStatus_Continue:
+          return JobStepCode_Continue;
+        
+        default:
+          throw OrthancException(ErrorCode_ParameterOutOfRange);
+      }
+    }
+
+
+    StorageCommitmentFailureReason Convert(OrthancPluginStorageCommitmentFailureReason reason)
+    {
+      switch (reason)
+      {
+        case OrthancPluginStorageCommitmentFailureReason_Success:
+          return StorageCommitmentFailureReason_Success;
+          
+        case OrthancPluginStorageCommitmentFailureReason_ProcessingFailure:
+          return StorageCommitmentFailureReason_ProcessingFailure;
+
+        case OrthancPluginStorageCommitmentFailureReason_NoSuchObjectInstance:
+          return StorageCommitmentFailureReason_NoSuchObjectInstance;
+
+        case OrthancPluginStorageCommitmentFailureReason_ResourceLimitation:
+          return StorageCommitmentFailureReason_ResourceLimitation;
+
+        case OrthancPluginStorageCommitmentFailureReason_ReferencedSOPClassNotSupported:
+          return StorageCommitmentFailureReason_ReferencedSOPClassNotSupported;
+
+        case OrthancPluginStorageCommitmentFailureReason_ClassInstanceConflict:
+          return StorageCommitmentFailureReason_ClassInstanceConflict;
+
+        case OrthancPluginStorageCommitmentFailureReason_DuplicateTransactionUID:
+          return StorageCommitmentFailureReason_DuplicateTransactionUID;
+             
+        default:
+          throw OrthancException(ErrorCode_ParameterOutOfRange);
+      }
+    }
+  }
+}