Mercurial > hg > orthanc
comparison OrthancServer/OrthancRestApi/OrthancRestArchive.cpp @ 2422:b340f0a9022c
New argument "/.../media?extended" to include additional type-3 tags in DICOMDIR
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Sun, 08 Oct 2017 11:46:56 +0200 |
parents | 7284093111b0 |
children | a894adc8bb03 |
comparison
equal
deleted
inserted
replaced
2421:d0fe5ec7eb05 | 2422:b340f0a9022c |
---|---|
623 } | 623 } |
624 | 624 |
625 static void Apply(RestApiOutput& output, | 625 static void Apply(RestApiOutput& output, |
626 ServerContext& context, | 626 ServerContext& context, |
627 ArchiveIndex& archive, | 627 ArchiveIndex& archive, |
628 const std::string& filename) | 628 const std::string& filename, |
629 bool enableExtendedSopClass) | |
629 { | 630 { |
630 archive.Expand(context.GetIndex()); | 631 archive.Expand(context.GetIndex()); |
631 | 632 |
632 StatisticsVisitor stats; | 633 StatisticsVisitor stats; |
633 archive.Apply(stats); | 634 archive.Apply(stats); |
641 // Create a ZIP writer | 642 // Create a ZIP writer |
642 HierarchicalZipWriter writer(tmp.GetPath().c_str()); | 643 HierarchicalZipWriter writer(tmp.GetPath().c_str()); |
643 writer.SetZip64(isZip64); | 644 writer.SetZip64(isZip64); |
644 writer.OpenDirectory("IMAGES"); | 645 writer.OpenDirectory("IMAGES"); |
645 | 646 |
646 // Create the DICOMDIR writer | 647 // Create a DICOMDIR writer |
647 DicomDirWriter dicomDir; | |
648 | |
649 MediaWriterVisitor v(writer, context); | 648 MediaWriterVisitor v(writer, context); |
649 | |
650 // Request type-3 arguments to be added to the DICOMDIR | |
651 v.dicomDir_.EnableExtendedSopClass(enableExtendedSopClass); | |
652 | |
650 archive.Apply(v); | 653 archive.Apply(v); |
651 | 654 |
652 // Add the DICOMDIR | 655 // Add the DICOMDIR |
653 writer.CloseDirectory(); | 656 writer.CloseDirectory(); |
654 writer.OpenFile("DICOMDIR"); | 657 writer.OpenFile("DICOMDIR"); |
721 if (AddResourcesOfInterest(archive, call)) | 724 if (AddResourcesOfInterest(archive, call)) |
722 { | 725 { |
723 MediaWriterVisitor::Apply(call.GetOutput(), | 726 MediaWriterVisitor::Apply(call.GetOutput(), |
724 OrthancRestApi::GetContext(call), | 727 OrthancRestApi::GetContext(call), |
725 archive, | 728 archive, |
726 "Archive.zip"); | 729 "Archive.zip", |
730 false); | |
727 } | 731 } |
728 } | 732 } |
729 | 733 |
730 | 734 |
731 static void CreateArchive(RestApiGetCall& call) | 735 static void CreateArchive(RestApiGetCall& call) |
756 archive.Add(OrthancRestApi::GetIndex(call), resource); | 760 archive.Add(OrthancRestApi::GetIndex(call), resource); |
757 | 761 |
758 MediaWriterVisitor::Apply(call.GetOutput(), | 762 MediaWriterVisitor::Apply(call.GetOutput(), |
759 OrthancRestApi::GetContext(call), | 763 OrthancRestApi::GetContext(call), |
760 archive, | 764 archive, |
761 id + ".zip"); | 765 id + ".zip", |
766 call.HasArgument("extended")); | |
762 } | 767 } |
763 | 768 |
764 | 769 |
765 void OrthancRestApi::RegisterArchive() | 770 void OrthancRestApi::RegisterArchive() |
766 { | 771 { |