comparison OrthancServer/ServerJobs/Operations/StoreScuOperation.cpp @ 3894:8f7ad4989fec transcoding

transcoding to uncompressed transfer syntaxes over DICOM protocol is implemented
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 07 May 2020 11:13:29 +0200
parents 9973d10bc5c4
children
comparison
equal deleted inserted replaced
3893:7a5fa8f307e9 3894:8f7ad4989fec
33 33
34 #include "../../PrecompiledHeadersServer.h" 34 #include "../../PrecompiledHeadersServer.h"
35 #include "StoreScuOperation.h" 35 #include "StoreScuOperation.h"
36 36
37 #include "DicomInstanceOperationValue.h" 37 #include "DicomInstanceOperationValue.h"
38 #include "../../ServerContext.h"
38 39
39 #include "../../../Core/Logging.h" 40 #include "../../../Core/Logging.h"
40 #include "../../../Core/OrthancException.h" 41 #include "../../../Core/OrthancException.h"
41 #include "../../../Core/SerializationToolbox.h" 42 #include "../../../Core/SerializationToolbox.h"
42 43
61 try 62 try
62 { 63 {
63 std::string dicom; 64 std::string dicom;
64 instance.ReadDicom(dicom); 65 instance.ReadDicom(dicom);
65 66
66 const void* data = dicom.empty() ? NULL : dicom.c_str();
67
68 std::string sopClassUid, sopInstanceUid; // Unused 67 std::string sopClassUid, sopInstanceUid; // Unused
69 lock.GetConnection().Store(sopClassUid, sopInstanceUid, data, dicom.size()); 68 context_.StoreWithTranscoding(sopClassUid, sopInstanceUid, lock.GetConnection(), dicom,
69 false /* Not a C-MOVE */, "", 0);
70 } 70 }
71 catch (OrthancException& e) 71 catch (OrthancException& e)
72 { 72 {
73 LOG(ERROR) << "Lua: Unable to send instance " << instance.GetId() << " to modality \"" 73 LOG(ERROR) << "Lua: Unable to send instance " << instance.GetId() << " to modality \""
74 << modality_.GetApplicationEntityTitle() << "\": " << e.What(); 74 << modality_.GetApplicationEntityTitle() << "\": " << e.What();
85 result["LocalAET"] = localAet_; 85 result["LocalAET"] = localAet_;
86 modality_.Serialize(result["Modality"], true /* force advanced format */); 86 modality_.Serialize(result["Modality"], true /* force advanced format */);
87 } 87 }
88 88
89 89
90 StoreScuOperation::StoreScuOperation(TimeoutDicomConnectionManager& connectionManager, 90 StoreScuOperation::StoreScuOperation(ServerContext& context,
91 TimeoutDicomConnectionManager& connectionManager,
91 const Json::Value& serialized) : 92 const Json::Value& serialized) :
93 context_(context),
92 connectionManager_(connectionManager) 94 connectionManager_(connectionManager)
93 { 95 {
94 if (SerializationToolbox::ReadString(serialized, "Type") != "StoreScu" || 96 if (SerializationToolbox::ReadString(serialized, "Type") != "StoreScu" ||
95 !serialized.isMember("LocalAET")) 97 !serialized.isMember("LocalAET"))
96 { 98 {