Mercurial > hg > orthanc
comparison OrthancServer/Plugins/Engine/OrthancPlugins.cpp @ 5303:9504de20d43d am-experimental
new SDK function OrthancPluginEncodeDicomWebJson3 that allows injecting an empty PixelData element at the end
author | Alain Mazy <am@osimis.io> |
---|---|
date | Thu, 25 May 2023 17:19:52 +0200 |
parents | e7529e6241d2 |
children |
comparison
equal
deleted
inserted
replaced
5301:f26ed26a7793 | 5303:9504de20d43d |
---|---|
1050 } | 1050 } |
1051 } | 1051 } |
1052 | 1052 |
1053 void Apply(char** target, | 1053 void Apply(char** target, |
1054 bool isJson, | 1054 bool isJson, |
1055 const ParsedDicomFile& dicom) | 1055 const ParsedDicomFile& dicom, |
1056 bool injectEmptyPixelData) | |
1056 { | 1057 { |
1057 DicomWebJsonVisitor visitor; | 1058 DicomWebJsonVisitor visitor; |
1058 visitor.SetFormatter(*this); | 1059 visitor.SetFormatter(*this); |
1059 | 1060 |
1060 dicom.Apply(visitor); | 1061 dicom.Apply(visitor, injectEmptyPixelData); |
1061 | 1062 |
1062 std::string s; | 1063 std::string s; |
1063 | 1064 |
1064 if (isJson) | 1065 if (isJson) |
1065 { | 1066 { |
1075 | 1076 |
1076 | 1077 |
1077 void Apply(char** target, | 1078 void Apply(char** target, |
1078 bool isJson, | 1079 bool isJson, |
1079 const void* dicom, | 1080 const void* dicom, |
1080 size_t dicomSize) | 1081 size_t dicomSize, |
1082 bool injectEmptyPixelData) | |
1081 { | 1083 { |
1082 ParsedDicomFile parsed(dicom, dicomSize); | 1084 ParsedDicomFile parsed(dicom, dicomSize); |
1083 Apply(target, isJson, parsed); | 1085 Apply(target, isJson, parsed, injectEmptyPixelData); |
1084 } | 1086 } |
1085 }; | 1087 }; |
1086 } | 1088 } |
1087 | 1089 |
1088 | 1090 |
3634 } | 3636 } |
3635 | 3637 |
3636 DicomWebBinaryFormatter formatter(p.dicomWebCallback, p.dicomWebPayload); | 3638 DicomWebBinaryFormatter formatter(p.dicomWebCallback, p.dicomWebPayload); |
3637 formatter.Apply(p.targetStringToFree, | 3639 formatter.Apply(p.targetStringToFree, |
3638 (service == _OrthancPluginService_GetInstanceDicomWebJson), | 3640 (service == _OrthancPluginService_GetInstanceDicomWebJson), |
3639 instance.GetParsedDicomFile()); | 3641 instance.GetParsedDicomFile(), |
3642 false); | |
3640 return; | 3643 return; |
3641 } | 3644 } |
3642 | 3645 |
3643 default: | 3646 default: |
3644 throw OrthancException(ErrorCode_InternalError); | 3647 throw OrthancException(ErrorCode_InternalError); |
5193 *reinterpret_cast<const _OrthancPluginEncodeDicomWeb*>(parameters); | 5196 *reinterpret_cast<const _OrthancPluginEncodeDicomWeb*>(parameters); |
5194 | 5197 |
5195 DicomWebBinaryFormatter formatter(p.callback); | 5198 DicomWebBinaryFormatter formatter(p.callback); |
5196 formatter.Apply(p.target, | 5199 formatter.Apply(p.target, |
5197 (service == _OrthancPluginService_EncodeDicomWebJson), | 5200 (service == _OrthancPluginService_EncodeDicomWebJson), |
5198 p.dicom, p.dicomSize); | 5201 p.dicom, p.dicomSize, false); |
5199 return true; | 5202 return true; |
5200 } | 5203 } |
5201 | 5204 |
5202 case _OrthancPluginService_EncodeDicomWebJson2: | 5205 case _OrthancPluginService_EncodeDicomWebJson2: |
5203 case _OrthancPluginService_EncodeDicomWebXml2: | 5206 case _OrthancPluginService_EncodeDicomWebXml2: |
5206 *reinterpret_cast<const _OrthancPluginEncodeDicomWeb2*>(parameters); | 5209 *reinterpret_cast<const _OrthancPluginEncodeDicomWeb2*>(parameters); |
5207 | 5210 |
5208 DicomWebBinaryFormatter formatter(p.callback, p.payload); | 5211 DicomWebBinaryFormatter formatter(p.callback, p.payload); |
5209 formatter.Apply(p.target, | 5212 formatter.Apply(p.target, |
5210 (service == _OrthancPluginService_EncodeDicomWebJson2), | 5213 (service == _OrthancPluginService_EncodeDicomWebJson2), |
5211 p.dicom, p.dicomSize); | 5214 p.dicom, p.dicomSize, false); |
5215 return true; | |
5216 } | |
5217 | |
5218 case _OrthancPluginService_EncodeDicomWebJson3: | |
5219 { | |
5220 const _OrthancPluginEncodeDicomWeb3& p = | |
5221 *reinterpret_cast<const _OrthancPluginEncodeDicomWeb3*>(parameters); | |
5222 | |
5223 DicomWebBinaryFormatter formatter(p.callback, p.payload); | |
5224 formatter.Apply(p.target, | |
5225 (service == _OrthancPluginService_EncodeDicomWebJson3), | |
5226 p.dicom, p.dicomSize, p.injectEmptyPixelData); | |
5212 return true; | 5227 return true; |
5213 } | 5228 } |
5214 | 5229 |
5215 case _OrthancPluginService_GetTagName: | 5230 case _OrthancPluginService_GetTagName: |
5216 GetTagName(parameters); | 5231 GetTagName(parameters); |