comparison UnitTestsSources/DicomMapTests.cpp @ 3196:763738c1f9f6

cont
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 05 Feb 2019 20:55:27 +0100
parents 880e4161c312
children 24a76ed0d8a3
comparison
equal deleted inserted replaced
3195:880e4161c312 3196:763738c1f9f6
797 Json::Value& node = CreateNode(parentTags, parentIndexes, tag); 797 Json::Value& node = CreateNode(parentTags, parentIndexes, tag);
798 node[KEY_VR] = EnumerationToString(ValueRepresentation_AttributeTag); 798 node[KEY_VR] = EnumerationToString(ValueRepresentation_AttributeTag);
799 799
800 if (!values.empty()) 800 if (!values.empty())
801 { 801 {
802 // TODO 802 Json::Value content = Json::arrayValue;
803 for (size_t i = 0; i < values.size(); i++)
804 {
805 content.append(FormatTag(values[i]));
806 }
807
808 node[KEY_VALUE] = content;
803 } 809 }
804 } 810 }
805 } 811 }
806 812
807 virtual Action VisitString(std::string& newValue, 813 virtual Action VisitString(std::string& newValue,
856 862
857 default: 863 default:
858 { 864 {
859 size_t l = tokens[i].size(); 865 size_t l = tokens[i].size();
860 866
861 if (l > 0 && 867 if (l == 0)
862 tokens[i][l - 1] == '\0')
863 { 868 {
864 tokens[i] = tokens[i].substr(0, l - 1); 869 node[KEY_VALUE].append(Json::nullValue);
865 } 870 }
866 871 else
867 node[KEY_VALUE].append(tokens[i]); 872 {
873 if (tokens[i][l - 1] == '\0')
874 {
875 tokens[i] = tokens[i].substr(0, l - 1);
876 }
877
878 node[KEY_VALUE].append(tokens[i]);
879 }
880
868 break; 881 break;
869 } 882 }
870 } 883 }
871 } 884 }
872 catch (boost::bad_lexical_cast&) 885 catch (boost::bad_lexical_cast&)
889 902
890 MarekLatin2.dcm 903 MarekLatin2.dcm
891 HierarchicalAnonymization/StructuredReports/IM0 904 HierarchicalAnonymization/StructuredReports/IM0
892 DummyCT.dcm 905 DummyCT.dcm
893 Brainix/Epi/IM-0001-0018.dcm 906 Brainix/Epi/IM-0001-0018.dcm
907 Issue22.dcm
894 908
895 909
896 cat << EOF > /tmp/tutu.py 910 cat << EOF > /tmp/tutu.py
897 import json 911 import json
898 import sys 912 import sys
899 j = json.loads(sys.stdin.read().decode("utf-8-sig")) 913 j = json.loads(sys.stdin.read().decode("utf-8-sig"))
900 print(json.dumps(j, indent=4, sort_keys=True, ensure_ascii=False).encode('utf-8')) 914 print(json.dumps(j, indent=4, sort_keys=True, ensure_ascii=False).encode('utf-8'))
901 EOF 915 EOF
902 916
903 DCMDICTPATH=/home/jodogne/Downloads/dcmtk-3.6.4/dcmdata/data/dicom.dic /home/jodogne/Downloads/dcmtk-3.6.4/i/bin/dcm2json ~/Subversion/orthanc-tests/Database/HierarchicalAnonymization/StructuredReports/IM0 | tr -d '\0' | sed 's/\\u0000//g' | sed 's/\.0$//' | python /tmp/tutu.py > /tmp/a.json 917 DCMDICTPATH=/home/jodogne/Downloads/dcmtk-3.6.4/dcmdata/data/dicom.dic /home/jodogne/Downloads/dcmtk-3.6.4/i/bin/dcm2json ~/Subversion/orthanc-tests/Database/Issue22.dcm | tr -d '\0' | sed 's/\\u0000//g' | sed 's/\.0$//' | python /tmp/tutu.py > /tmp/a.json
904 918
905 make -j4 && ./UnitTests --gtest_filter=DicomWeb* && python /tmp/tutu.py < /tmp/tutu.json > /tmp/b.json && diff -i /tmp/a.json /tmp/b.json 919 make -j4 && ./UnitTests --gtest_filter=DicomWeb* && python /tmp/tutu.py < /tmp/tutu.json > /tmp/b.json && diff -i /tmp/a.json /tmp/b.json
906 920
907 */ 921 */
908 922
909 TEST(DicomWebJson, Basic) 923 TEST(DicomWebJson, Basic)
910 { 924 {
911 std::string content; 925 std::string content;
912 Orthanc::SystemToolbox::ReadFile(content, "/home/jodogne/Subversion/orthanc-tests/Database/HierarchicalAnonymization/StructuredReports/IM0"); 926 Orthanc::SystemToolbox::ReadFile(content, "/home/jodogne/Subversion/orthanc-tests/Database/Issue22.dcm");
913 927
914 Orthanc::ParsedDicomFile dicom(content); 928 Orthanc::ParsedDicomFile dicom(content);
915 929
916 Orthanc::DicomJsonVisitor visitor; 930 Orthanc::DicomJsonVisitor visitor;
917 dicom.Apply(visitor); 931 dicom.Apply(visitor);