Mercurial > hg > orthanc-stone
comparison Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp @ 2090:c2dfc253bd04 dicom-sr
cont
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 07 Nov 2023 19:35:48 +0100 |
parents | 63d77859edee |
children | 35de56fb6f89 |
comparison
equal
deleted
inserted
replaced
2089:63d77859edee | 2090:c2dfc253bd04 |
---|---|
420 } | 420 } |
421 } | 421 } |
422 | 422 |
423 void Handle(const OrthancStone::SeriesMetadataLoader::SuccessMessage& message) | 423 void Handle(const OrthancStone::SeriesMetadataLoader::SuccessMessage& message) |
424 { | 424 { |
425 for (size_t i = 0; i < message.GetInstancesCount(); i++) | |
426 { | |
427 std::string sopInstanceUid, sopClassUid; | |
428 if (message.GetInstance(i).LookupStringValue(sopInstanceUid, Orthanc::DICOM_TAG_SOP_INSTANCE_UID, false) && | |
429 message.GetInstance(i).LookupStringValue(sopClassUid, Orthanc::DICOM_TAG_SOP_CLASS_UID, false) && | |
430 OrthancStone::StringToSopClassUid(sopClassUid) == OrthancStone::SopClassUid_ComprehensiveSR) | |
431 { | |
432 std::unique_ptr<OrthancStone::ILoadersContext::ILock> lock(context_.Lock()); | |
433 lock->Schedule( | |
434 GetSharedObserver(), PRIORITY_NORMAL, OrthancStone::ParseDicomFromWadoCommand::Create( | |
435 source_, message.GetStudyInstanceUid(), message.GetSeriesInstanceUid(), sopInstanceUid, | |
436 false /* no transcoding */, Orthanc::DicomTransferSyntax_LittleEndianExplicit /* dummy value */, | |
437 new InstanceInfo(message.GetStudyInstanceUid(), message.GetSeriesInstanceUid(), OrthancStone::SopClassUid_ComprehensiveSR))); | |
438 return; | |
439 } | |
440 } | |
441 | |
425 if (observer_.get() != NULL) | 442 if (observer_.get() != NULL) |
426 { | 443 { |
427 for (size_t i = 0; i < message.GetInstancesCount(); i++) | |
428 { | |
429 std::string sopInstanceUid, sopClassUid; | |
430 if (message.GetInstance(i).LookupStringValue(sopInstanceUid, Orthanc::DICOM_TAG_SOP_INSTANCE_UID, false) && | |
431 message.GetInstance(i).LookupStringValue(sopClassUid, Orthanc::DICOM_TAG_SOP_CLASS_UID, false) && | |
432 OrthancStone::StringToSopClassUid(sopClassUid) == OrthancStone::SopClassUid_ComprehensiveSR) | |
433 { | |
434 std::unique_ptr<OrthancStone::ILoadersContext::ILock> lock(context_.Lock()); | |
435 lock->Schedule( | |
436 GetSharedObserver(), PRIORITY_NORMAL, OrthancStone::ParseDicomFromWadoCommand::Create( | |
437 source_, message.GetStudyInstanceUid(), message.GetSeriesInstanceUid(), sopInstanceUid, | |
438 false /* no transcoding */, Orthanc::DicomTransferSyntax_LittleEndianExplicit /* dummy value */, | |
439 new InstanceInfo(message.GetStudyInstanceUid(), message.GetSeriesInstanceUid(), OrthancStone::SopClassUid_ComprehensiveSR))); | |
440 return; | |
441 } | |
442 } | |
443 | |
444 observer_->SignalSeriesMetadataLoaded( | 444 observer_->SignalSeriesMetadataLoaded( |
445 message.GetStudyInstanceUid(), message.GetSeriesInstanceUid()); | 445 message.GetStudyInstanceUid(), message.GetSeriesInstanceUid()); |
446 } | 446 } |
447 } | 447 } |
448 | 448 |
554 | 554 |
555 for (std::list<OrthancStone::DicomStructuredReport::Frame>::const_iterator | 555 for (std::list<OrthancStone::DicomStructuredReport::Frame>::const_iterator |
556 it = frames.begin(); it != frames.end(); ++it) | 556 it = frames.begin(); it != frames.end(); ++it) |
557 { | 557 { |
558 LOG(ERROR) << "YOU " << it->GetSopInstanceUid() << " " << it->GetFrameNumber(); | 558 LOG(ERROR) << "YOU " << it->GetSopInstanceUid() << " " << it->GetFrameNumber(); |
559 } | |
560 | |
561 if (observer_.get() != NULL) | |
562 { | |
563 observer_->SignalSeriesMetadataLoaded( | |
564 info.GetStudyInstanceUid(), info.GetSeriesInstanceUid()); | |
559 } | 565 } |
560 } | 566 } |
561 catch (Orthanc::OrthancException& e) | 567 catch (Orthanc::OrthancException& e) |
562 { | 568 { |
563 LOG(ERROR) << "Cannot decode DICOM-SR: " << e.What(); | 569 LOG(ERROR) << "Cannot decode DICOM-SR: " << e.What(); |