Mercurial > hg > orthanc
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 { |