Mercurial > hg > orthanc
comparison OrthancServer/Sources/Database/StatelessDatabaseOperations.h @ 5036:877bc3b96476
Handle Dicom sequences in ExtraMainDicomTags and save them in the 'MainDicomSequences' metadata
author | Alain Mazy <am@osimis.io> |
---|---|
date | Fri, 24 Jun 2022 15:47:10 +0200 |
parents | 8fba26292a9f |
children | 28db9663fc2d |
comparison
equal
deleted
inserted
replaced
5035:67d98fccc850 | 5036:877bc3b96476 |
---|---|
35 { | 35 { |
36 class DatabaseLookup; | 36 class DatabaseLookup; |
37 class ParsedDicomFile; | 37 class ParsedDicomFile; |
38 struct ServerIndexChange; | 38 struct ServerIndexChange; |
39 | 39 |
40 /* | |
41 * contains a map of dicom sequences where: | |
42 * the key is a DicomTag | |
43 * the sequence is serialized in Json "full" format | |
44 */ | |
45 struct DicomSequencesMap : public boost::noncopyable | |
46 { | |
47 std::map<DicomTag, Json::Value> sequences_; | |
48 | |
49 void FromJson(const Json::Value& serialized); | |
50 void FromDicomAsJson(const Json::Value& dicomAsJson, const std::set<DicomTag>& tags); | |
51 void ToJson(Json::Value& target, DicomToJsonFormat format) const; | |
52 }; | |
53 | |
40 struct ExpandedResource : public boost::noncopyable | 54 struct ExpandedResource : public boost::noncopyable |
41 { | 55 { |
42 std::string id_; | 56 std::string id_; |
43 DicomMap tags_; // all tags from DB | 57 DicomMap tags_; // all tags from DB (only leaf tags, not sequences !) |
58 DicomSequencesMap sequences_; // the requested sequences | |
44 std::string mainDicomTagsSignature_; | 59 std::string mainDicomTagsSignature_; |
45 std::string parentId_; | 60 std::string parentId_; |
46 std::list<std::string> childrenIds_; | 61 std::list<std::string> childrenIds_; |
47 std::map<MetadataType, std::string> metadata_; | 62 std::map<MetadataType, std::string> metadata_; |
48 ResourceType type_; | 63 ResourceType type_; |
648 | 663 |
649 void ReconstructInstance(const ParsedDicomFile& dicom); | 664 void ReconstructInstance(const ParsedDicomFile& dicom); |
650 | 665 |
651 StoreStatus Store(std::map<MetadataType, std::string>& instanceMetadata, | 666 StoreStatus Store(std::map<MetadataType, std::string>& instanceMetadata, |
652 const DicomMap& dicomSummary, | 667 const DicomMap& dicomSummary, |
668 const std::map<DicomTag, Json::Value>& sequencesToStore, | |
653 const Attachments& attachments, | 669 const Attachments& attachments, |
654 const MetadataMap& metadata, | 670 const MetadataMap& metadata, |
655 const DicomInstanceOrigin& origin, | 671 const DicomInstanceOrigin& origin, |
656 bool overwrite, | 672 bool overwrite, |
657 bool hasTransferSyntax, | 673 bool hasTransferSyntax, |