Mercurial > hg > orthanc
comparison OrthancFramework/Sources/DicomParsing/FromDcmtkBridge.cpp @ 4514:5b929e6b3c36
removal of "dicom-as-json" attachments
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 16 Feb 2021 12:18:41 +0100 |
parents | 11c2ddb4e2ca |
children | 8734caa12448 |
comparison
equal
deleted
inserted
replaced
4513:1f455b86b054 | 4514:5b929e6b3c36 |
---|---|
884 DicomToJsonFormat format, | 884 DicomToJsonFormat format, |
885 DicomToJsonFlags flags, | 885 DicomToJsonFlags flags, |
886 unsigned int maxStringLength, | 886 unsigned int maxStringLength, |
887 Encoding encoding, | 887 Encoding encoding, |
888 bool hasCodeExtensions, | 888 bool hasCodeExtensions, |
889 const std::set<DicomTag>& ignoreTagLength) | 889 const std::set<DicomTag>& ignoreTagLength, |
890 unsigned int depth) | |
890 { | 891 { |
891 if (parent.type() == Json::nullValue) | 892 if (parent.type() == Json::nullValue) |
892 { | 893 { |
893 parent = Json::objectValue; | 894 parent = Json::objectValue; |
894 } | 895 } |
923 | 924 |
924 for (unsigned long i = 0; i < sequence.card(); i++) | 925 for (unsigned long i = 0; i < sequence.card(); i++) |
925 { | 926 { |
926 DcmItem* child = sequence.getItem(i); | 927 DcmItem* child = sequence.getItem(i); |
927 Json::Value& v = target.append(Json::objectValue); | 928 Json::Value& v = target.append(Json::objectValue); |
928 DatasetToJson(v, *child, format, flags, maxStringLength, encoding, hasCodeExtensions, ignoreTagLength); | 929 DatasetToJson(v, *child, format, flags, maxStringLength, encoding, hasCodeExtensions, |
930 ignoreTagLength, depth + 1); | |
929 } | 931 } |
930 } | 932 } |
931 } | 933 } |
932 | 934 |
933 | 935 |
936 DicomToJsonFormat format, | 938 DicomToJsonFormat format, |
937 DicomToJsonFlags flags, | 939 DicomToJsonFlags flags, |
938 unsigned int maxStringLength, | 940 unsigned int maxStringLength, |
939 Encoding encoding, | 941 Encoding encoding, |
940 bool hasCodeExtensions, | 942 bool hasCodeExtensions, |
941 const std::set<DicomTag>& ignoreTagLength) | 943 const std::set<DicomTag>& ignoreTagLength, |
944 unsigned int depth) | |
942 { | 945 { |
943 assert(parent.type() == Json::objectValue); | 946 assert(parent.type() == Json::objectValue); |
944 | 947 |
945 for (unsigned long i = 0; i < item.card(); i++) | 948 for (unsigned long i = 0; i < item.card(); i++) |
946 { | 949 { |
949 { | 952 { |
950 throw OrthancException(ErrorCode_InternalError); | 953 throw OrthancException(ErrorCode_InternalError); |
951 } | 954 } |
952 | 955 |
953 DicomTag tag(FromDcmtkBridge::Convert(element->getTag())); | 956 DicomTag tag(FromDcmtkBridge::Convert(element->getTag())); |
957 | |
958 // New flag in Orthanc 1.9.1 | |
959 if (depth == 0 && | |
960 (flags & DicomToJsonFlags_StopAfterPixelData) && | |
961 tag > DICOM_TAG_PIXEL_DATA) | |
962 { | |
963 continue; | |
964 } | |
954 | 965 |
955 /*element->getTag().isPrivate()*/ | 966 /*element->getTag().isPrivate()*/ |
956 if (tag.IsPrivate() && | 967 if (tag.IsPrivate() && |
957 !(flags & DicomToJsonFlags_IncludePrivateTags)) | 968 !(flags & DicomToJsonFlags_IncludePrivateTags)) |
958 { | 969 { |
976 { | 987 { |
977 continue; | 988 continue; |
978 } | 989 } |
979 } | 990 } |
980 | 991 |
981 FromDcmtkBridge::ElementToJson(parent, *element, format, flags, | 992 FromDcmtkBridge::ElementToJson(parent, *element, format, flags, maxStringLength, encoding, |
982 maxStringLength, encoding, hasCodeExtensions, ignoreTagLength); | 993 hasCodeExtensions, ignoreTagLength, depth); |
983 } | 994 } |
984 } | 995 } |
985 | 996 |
986 | 997 |
987 void FromDcmtkBridge::ExtractDicomAsJson(Json::Value& target, | 998 void FromDcmtkBridge::ExtractDicomAsJson(Json::Value& target, |
995 | 1006 |
996 bool hasCodeExtensions; | 1007 bool hasCodeExtensions; |
997 Encoding encoding = DetectEncoding(hasCodeExtensions, dataset, defaultEncoding); | 1008 Encoding encoding = DetectEncoding(hasCodeExtensions, dataset, defaultEncoding); |
998 | 1009 |
999 target = Json::objectValue; | 1010 target = Json::objectValue; |
1000 DatasetToJson(target, dataset, format, flags, maxStringLength, encoding, hasCodeExtensions, ignoreTagLength); | 1011 DatasetToJson(target, dataset, format, flags, maxStringLength, encoding, hasCodeExtensions, ignoreTagLength, 0); |
1001 } | 1012 } |
1002 | 1013 |
1003 | 1014 |
1004 void FromDcmtkBridge::ExtractHeaderAsJson(Json::Value& target, | 1015 void FromDcmtkBridge::ExtractHeaderAsJson(Json::Value& target, |
1005 DcmMetaInfo& dataset, | 1016 DcmMetaInfo& dataset, |
1007 DicomToJsonFlags flags, | 1018 DicomToJsonFlags flags, |
1008 unsigned int maxStringLength) | 1019 unsigned int maxStringLength) |
1009 { | 1020 { |
1010 std::set<DicomTag> ignoreTagLength; | 1021 std::set<DicomTag> ignoreTagLength; |
1011 target = Json::objectValue; | 1022 target = Json::objectValue; |
1012 DatasetToJson(target, dataset, format, flags, maxStringLength, Encoding_Ascii, false, ignoreTagLength); | 1023 DatasetToJson(target, dataset, format, flags, maxStringLength, Encoding_Ascii, false, ignoreTagLength, 0); |
1013 } | 1024 } |
1014 | 1025 |
1015 | 1026 |
1016 | 1027 |
1017 static std::string GetTagNameInternal(DcmTag& tag) | 1028 static std::string GetTagNameInternal(DcmTag& tag) |