Mercurial > hg > orthanc
comparison OrthancServer/OrthancRestApi.cpp @ 499:7db04aa5104f
instance-level find scu
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 12 Aug 2013 11:01:02 +0200 |
parents | bdbde1fbfab3 |
children | a8be42bcf2bb |
comparison
equal
deleted
inserted
replaced
497:26b2d71228d8 | 499:7db04aa5104f |
---|---|
177 Json::Value result; | 177 Json::Value result; |
178 answers.ToJson(result); | 178 answers.ToJson(result); |
179 call.GetOutput().AnswerJson(result); | 179 call.GetOutput().AnswerJson(result); |
180 } | 180 } |
181 | 181 |
182 static void DicomFindInstance(RestApi::PostCall& call) | |
183 { | |
184 DicomMap m; | |
185 DicomMap::SetupFindInstanceTemplate(m); | |
186 if (!MergeQueryAndTemplate(m, call.GetPostBody())) | |
187 { | |
188 return; | |
189 } | |
190 | |
191 if ((m.GetValue(DICOM_TAG_ACCESSION_NUMBER).AsString().size() <= 2 && | |
192 m.GetValue(DICOM_TAG_PATIENT_ID).AsString().size() <= 2) || | |
193 m.GetValue(DICOM_TAG_STUDY_INSTANCE_UID).AsString().size() <= 2 || | |
194 m.GetValue(DICOM_TAG_SERIES_INSTANCE_UID).AsString().size() <= 2) | |
195 { | |
196 return; | |
197 } | |
198 | |
199 DicomUserConnection connection; | |
200 ConnectToModality(connection, call.GetUriComponent("id", "")); | |
201 | |
202 DicomFindAnswers answers; | |
203 connection.FindInstance(answers, m); | |
204 | |
205 Json::Value result; | |
206 answers.ToJson(result); | |
207 call.GetOutput().AnswerJson(result); | |
208 } | |
209 | |
182 static void DicomFind(RestApi::PostCall& call) | 210 static void DicomFind(RestApi::PostCall& call) |
183 { | 211 { |
184 DicomMap m; | 212 DicomMap m; |
185 DicomMap::SetupFindPatientTemplate(m); | 213 DicomMap::SetupFindPatientTemplate(m); |
186 if (!MergeQueryAndTemplate(m, call.GetPostBody())) | 214 if (!MergeQueryAndTemplate(m, call.GetPostBody())) |
932 { | 960 { |
933 Json::Value result = Json::arrayValue; | 961 Json::Value result = Json::arrayValue; |
934 result.append("find-patient"); | 962 result.append("find-patient"); |
935 result.append("find-study"); | 963 result.append("find-study"); |
936 result.append("find-series"); | 964 result.append("find-series"); |
965 result.append("find-instance"); | |
937 result.append("find"); | 966 result.append("find"); |
938 result.append("store"); | 967 result.append("store"); |
939 call.GetOutput().AnswerJson(result); | 968 call.GetOutput().AnswerJson(result); |
940 } | 969 } |
941 } | 970 } |
1792 Register("/modalities", ListModalities); | 1821 Register("/modalities", ListModalities); |
1793 Register("/modalities/{id}", ListModalityOperations); | 1822 Register("/modalities/{id}", ListModalityOperations); |
1794 Register("/modalities/{id}/find-patient", DicomFindPatient); | 1823 Register("/modalities/{id}/find-patient", DicomFindPatient); |
1795 Register("/modalities/{id}/find-study", DicomFindStudy); | 1824 Register("/modalities/{id}/find-study", DicomFindStudy); |
1796 Register("/modalities/{id}/find-series", DicomFindSeries); | 1825 Register("/modalities/{id}/find-series", DicomFindSeries); |
1826 Register("/modalities/{id}/find-instance", DicomFindInstance); | |
1797 Register("/modalities/{id}/find", DicomFind); | 1827 Register("/modalities/{id}/find", DicomFind); |
1798 Register("/modalities/{id}/store", DicomStore); | 1828 Register("/modalities/{id}/store", DicomStore); |
1799 | 1829 |
1800 Register("/peers", ListPeers); | 1830 Register("/peers", ListPeers); |
1801 Register("/peers/{id}", ListPeerOperations); | 1831 Register("/peers/{id}", ListPeerOperations); |