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)