comparison OrthancServer/Scheduler/ModifyInstanceCommand.cpp @ 1572:904096e7367e

More information about the origin request in OnStoredInstance() callbacks
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 25 Aug 2015 12:10:12 +0200
parents f967bdf8534e
children 0a2ad4a6858f
comparison
equal deleted inserted replaced
1571:3232f1c995a5 1572:904096e7367e
35 #include "../../Core/Logging.h" 35 #include "../../Core/Logging.h"
36 36
37 namespace Orthanc 37 namespace Orthanc
38 { 38 {
39 ModifyInstanceCommand::ModifyInstanceCommand(ServerContext& context, 39 ModifyInstanceCommand::ModifyInstanceCommand(ServerContext& context,
40 RequestOrigin origin,
40 const DicomModification& modification) : 41 const DicomModification& modification) :
41 context_(context), 42 context_(context),
43 origin_(origin),
42 modification_(modification) 44 modification_(modification)
43 { 45 {
44 modification_.SetAllowManualIdentifiers(true); 46 modification_.SetAllowManualIdentifiers(true);
45 47
46 if (modification_.IsReplaced(DICOM_TAG_PATIENT_ID)) 48 if (modification_.IsReplaced(DICOM_TAG_PATIENT_ID))
56 modification_.SetLevel(ResourceType_Series); 58 modification_.SetLevel(ResourceType_Series);
57 } 59 }
58 else 60 else
59 { 61 {
60 modification_.SetLevel(ResourceType_Instance); 62 modification_.SetLevel(ResourceType_Instance);
63 }
64
65 if (origin_ != RequestOrigin_Lua)
66 {
67 // TODO If issued from HTTP, "remoteIp" and "username" must be provided
68 throw OrthancException(ErrorCode_NotImplemented);
61 } 69 }
62 } 70 }
63 71
64 72
65 bool ModifyInstanceCommand::Apply(ListOfStrings& outputs, 73 bool ModifyInstanceCommand::Apply(ListOfStrings& outputs,
80 } 88 }
81 89
82 modification_.Apply(*modified); 90 modification_.Apply(*modified);
83 91
84 DicomInstanceToStore toStore; 92 DicomInstanceToStore toStore;
93 assert(origin_ == RequestOrigin_Lua);
94 toStore.SetLuaOrigin();
85 toStore.SetParsedDicomFile(*modified); 95 toStore.SetParsedDicomFile(*modified);
86 // TODO other metadata 96 // TODO other metadata
87 toStore.AddMetadata(ResourceType_Instance, MetadataType_ModifiedFrom, *it); 97 toStore.AddMetadata(ResourceType_Instance, MetadataType_ModifiedFrom, *it);
88 98
89 std::string modifiedId; 99 std::string modifiedId;