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 {