comparison OrthancServer/OrthancRestApi.cpp @ 285:4031f73fe0e4

access to the raw dicom tags
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 12 Dec 2012 17:53:14 +0100
parents 337c506461d2
children 4d7469f72a0b
comparison
equal deleted inserted replaced
284:06aa7b7b6723 285:4031f73fe0e4
845 } 845 }
846 } 846 }
847 847
848 848
849 849
850 // Raw access to the DICOM tags of an instance ------------------------------
851
852 static void GetRawContent(RestApi::GetCall& call)
853 {
854 // TODO IMPROVE MULTITHREADING
855 static boost::mutex mutex_;
856 boost::mutex::scoped_lock lock(mutex_);
857
858 RETRIEVE_CONTEXT(call);
859 std::string id = call.GetUriComponent("id", "");
860 ParsedDicomFile& dicom = context.GetDicomFile(id);
861 dicom.SendPathValue(call.GetOutput(), call.GetTrailingUri());
862 }
863
864
865
866
850 // Registration of the various REST handlers -------------------------------- 867 // Registration of the various REST handlers --------------------------------
851 868
852 OrthancRestApi::OrthancRestApi(ServerContext& context) : 869 OrthancRestApi::OrthancRestApi(ServerContext& context) :
853 context_(context) 870 context_(context)
854 { 871 {
883 Register("/patients/{id}/protected", SetPatientProtection); 900 Register("/patients/{id}/protected", SetPatientProtection);
884 Register("/instances/{id}/file", GetInstanceFile); 901 Register("/instances/{id}/file", GetInstanceFile);
885 Register("/instances/{id}/tags", GetInstanceTags<false>); 902 Register("/instances/{id}/tags", GetInstanceTags<false>);
886 Register("/instances/{id}/simplified-tags", GetInstanceTags<true>); 903 Register("/instances/{id}/simplified-tags", GetInstanceTags<true>);
887 Register("/instances/{id}/frames", ListFrames); 904 Register("/instances/{id}/frames", ListFrames);
905 Register("/instances/{id}/content/*", GetRawContent);
888 906
889 Register("/instances/{id}/frames/{frame}/preview", GetImage<ImageExtractionMode_Preview>); 907 Register("/instances/{id}/frames/{frame}/preview", GetImage<ImageExtractionMode_Preview>);
890 Register("/instances/{id}/frames/{frame}/image-uint8", GetImage<ImageExtractionMode_UInt8>); 908 Register("/instances/{id}/frames/{frame}/image-uint8", GetImage<ImageExtractionMode_UInt8>);
891 Register("/instances/{id}/frames/{frame}/image-uint16", GetImage<ImageExtractionMode_UInt16>); 909 Register("/instances/{id}/frames/{frame}/image-uint16", GetImage<ImageExtractionMode_UInt16>);
892 Register("/instances/{id}/preview", GetImage<ImageExtractionMode_Preview>); 910 Register("/instances/{id}/preview", GetImage<ImageExtractionMode_Preview>);