Mercurial > hg > orthanc-wsi
diff Applications/Dicomizer.cpp @ 168:d3aea0af03e1
attempt to fix issue #139
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 12 Jul 2019 12:51:17 +0200 |
parents | 605247fc8758 |
children | de783db2a7c3 |
line wrap: on
line diff
--- a/Applications/Dicomizer.cpp Fri Jul 12 12:00:31 2019 +0200 +++ b/Applications/Dicomizer.cpp Fri Jul 12 12:51:17 2019 +0200 @@ -390,6 +390,7 @@ { // Construct tag "Shared Functional Groups Sequence" (5200,9229) +#if 1 // In the 2 lines below, remember to switch X/Y when going from physical to pixel coordinates! float spacingX = volume.GetWidth() / static_cast<float>(source.GetLevelHeight(0)); float spacingY = volume.GetHeight() / static_cast<float>(source.GetLevelWidth(0)); @@ -420,6 +421,23 @@ { throw Orthanc::OrthancException(Orthanc::ErrorCode_InternalError); } +#else + std::auto_ptr<DcmItem> item(new DcmItem); + + std::auto_ptr<DcmItem> item3(new DcmItem); + OrthancWSI::DicomToolbox::SetStringTag(*item3, DCM_OpticalPathIdentifier, opticalPathId); + + std::auto_ptr<DcmSequenceOfItems> sequence(new DcmSequenceOfItems(DCM_SharedFunctionalGroupsSequence)); + std::auto_ptr<DcmSequenceOfItems> sequence3(new DcmSequenceOfItems(DCM_OpticalPathIdentificationSequence)); + + if (!sequence3->insert(item3.release(), false, false).good() || + !item->insert(sequence3.release(), false, false).good() || + !sequence->insert(item.release(), false, false).good() || + !dataset.insert(sequence.release(), true /* replace */, false).good()) + { + throw Orthanc::OrthancException(Orthanc::ErrorCode_InternalError); + } +#endif } }