Mercurial > hg > orthanc-stone
comparison Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp @ 1702:bc40b6450261
"patient" GET argument
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 27 Nov 2020 13:57:28 +0100 |
parents | b5a8bf32d969 |
children | 76c590a62755 |
comparison
equal
deleted
inserted
replaced
1701:b5a8bf32d969 | 1702:bc40b6450261 |
---|---|
275 observer_->SignalSeriesMetadataLoaded( | 275 observer_->SignalSeriesMetadataLoaded( |
276 message.GetStudyInstanceUid(), message.GetSeriesInstanceUid()); | 276 message.GetStudyInstanceUid(), message.GetSeriesInstanceUid()); |
277 } | 277 } |
278 } | 278 } |
279 | 279 |
280 void FetchInternal(const std::string& studyInstanceUid, | 280 void FetchInternal(const std::string& patientId, |
281 const std::string& studyInstanceUid, | |
281 const std::string& seriesInstanceUid) | 282 const std::string& seriesInstanceUid) |
282 { | 283 { |
283 // Firstly, load the study | 284 // Firstly, load the study |
284 Orthanc::DicomMap filter; | 285 Orthanc::DicomMap filter; |
285 filter.SetValue(Orthanc::DICOM_TAG_STUDY_INSTANCE_UID, studyInstanceUid, false); | 286 |
287 if (!patientId.empty()) | |
288 { | |
289 filter.SetValue(Orthanc::DICOM_TAG_PATIENT_ID, patientId, false); | |
290 } | |
291 | |
292 if (!studyInstanceUid.empty()) | |
293 { | |
294 filter.SetValue(Orthanc::DICOM_TAG_STUDY_INSTANCE_UID, studyInstanceUid, false); | |
295 } | |
286 | 296 |
287 std::set<Orthanc::DicomTag> tags; | 297 std::set<Orthanc::DicomTag> tags; |
288 tags.insert(Orthanc::DICOM_TAG_STUDY_DESCRIPTION); // Necessary for Orthanc DICOMweb plugin | 298 tags.insert(Orthanc::DICOM_TAG_STUDY_DESCRIPTION); // Necessary for Orthanc DICOMweb plugin |
289 | 299 |
290 resourcesLoader_->ScheduleQido( | 300 resourcesLoader_->ScheduleQido( |
303 series_, PRIORITY_HIGH, source_, Orthanc::ResourceType_Series, filter, tags, | 313 series_, PRIORITY_HIGH, source_, Orthanc::ResourceType_Series, filter, tags, |
304 new Orthanc::SingleValueObject<Orthanc::ResourceType>(Orthanc::ResourceType_Series)); | 314 new Orthanc::SingleValueObject<Orthanc::ResourceType>(Orthanc::ResourceType_Series)); |
305 | 315 |
306 pending_ += 2; | 316 pending_ += 2; |
307 } | 317 } |
308 | 318 |
309 | 319 |
310 class PdfInfo : public Orthanc::IDynamicObject | 320 class PdfInfo : public Orthanc::IDynamicObject |
311 { | 321 { |
312 private: | 322 private: |
313 std::string studyInstanceUid_; | 323 std::string studyInstanceUid_; |
376 return loader; | 386 return loader; |
377 } | 387 } |
378 | 388 |
379 void FetchAllStudies() | 389 void FetchAllStudies() |
380 { | 390 { |
381 FetchInternal("", ""); | 391 FetchInternal("", "", ""); |
392 } | |
393 | |
394 void FetchPatient(const std::string& patientId) | |
395 { | |
396 if (!patientId.empty()) | |
397 { | |
398 FetchInternal(patientId, "", ""); | |
399 } | |
382 } | 400 } |
383 | 401 |
384 void FetchStudy(const std::string& studyInstanceUid) | 402 void FetchStudy(const std::string& studyInstanceUid) |
385 { | 403 { |
386 FetchInternal(studyInstanceUid, ""); | 404 if (!studyInstanceUid.empty()) |
405 { | |
406 FetchInternal("", studyInstanceUid, ""); | |
407 } | |
387 } | 408 } |
388 | 409 |
389 void FetchSeries(const std::string& studyInstanceUid, | 410 void FetchSeries(const std::string& studyInstanceUid, |
390 const std::string& seriesInstanceUid) | 411 const std::string& seriesInstanceUid) |
391 { | 412 { |
392 FetchInternal(studyInstanceUid, seriesInstanceUid); | 413 if (!studyInstanceUid.empty() && |
414 !seriesInstanceUid.empty()) | |
415 { | |
416 FetchInternal("", studyInstanceUid, seriesInstanceUid); | |
417 } | |
393 } | 418 } |
394 | 419 |
395 size_t GetStudiesCount() const | 420 size_t GetStudiesCount() const |
396 { | 421 { |
397 return studies_->GetSize(); | 422 return studies_->GetSize(); |
2773 } | 2798 } |
2774 EXTERN_CATCH_EXCEPTIONS; | 2799 EXTERN_CATCH_EXCEPTIONS; |
2775 } | 2800 } |
2776 | 2801 |
2777 EMSCRIPTEN_KEEPALIVE | 2802 EMSCRIPTEN_KEEPALIVE |
2803 void FetchPatient(const char* patientId) | |
2804 { | |
2805 try | |
2806 { | |
2807 GetResourcesLoader().FetchPatient(patientId); | |
2808 } | |
2809 EXTERN_CATCH_EXCEPTIONS; | |
2810 } | |
2811 | |
2812 EMSCRIPTEN_KEEPALIVE | |
2778 void FetchStudy(const char* studyInstanceUid) | 2813 void FetchStudy(const char* studyInstanceUid) |
2779 { | 2814 { |
2780 try | 2815 try |
2781 { | 2816 { |
2782 GetResourcesLoader().FetchStudy(studyInstanceUid); | 2817 GetResourcesLoader().FetchStudy(studyInstanceUid); |