Mercurial > hg > orthanc
comparison OrthancServer/ServerIndex.cpp @ 1717:3926e6317a43 db-changes
SetIdentifierTagInternal
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 19 Oct 2015 17:45:34 +0200 |
parents | 2ca7888f8600 |
children | 2b812969e136 |
comparison
equal
deleted
inserted
replaced
1716:2ca7888f8600 | 1717:3926e6317a43 |
---|---|
871 return SeriesStatus_Missing; | 871 return SeriesStatus_Missing; |
872 } | 872 } |
873 } | 873 } |
874 | 874 |
875 | 875 |
876 static std::string GetPatientIdOfStudy(IDatabaseWrapper& db, | |
877 int64_t resourceId) | |
878 { | |
879 int64_t patient; | |
880 if (!db.LookupParent(patient, resourceId)) | |
881 { | |
882 throw OrthancException(ErrorCode_InternalError); | |
883 } | |
884 | |
885 DicomMap tags; | |
886 db.GetMainDicomTags(tags, patient); | |
887 | |
888 if (tags.HasTag(DICOM_TAG_PATIENT_ID)) | |
889 { | |
890 return tags.GetValue(DICOM_TAG_PATIENT_ID).AsString(); | |
891 } | |
892 else | |
893 { | |
894 return ""; | |
895 } | |
896 } | |
897 | |
898 | |
899 void ServerIndex::MainDicomTagsToJson(Json::Value& target, | 876 void ServerIndex::MainDicomTagsToJson(Json::Value& target, |
900 int64_t resourceId, | 877 int64_t resourceId, |
901 ResourceType resourceType) | 878 ResourceType resourceType) |
902 { | 879 { |
903 DicomMap tags; | 880 DicomMap tags; |
912 target["MainDicomTags"] = Json::objectValue; | 889 target["MainDicomTags"] = Json::objectValue; |
913 FromDcmtkBridge::ToJson(target["MainDicomTags"], t1, true); | 890 FromDcmtkBridge::ToJson(target["MainDicomTags"], t1, true); |
914 | 891 |
915 target["PatientMainDicomTags"] = Json::objectValue; | 892 target["PatientMainDicomTags"] = Json::objectValue; |
916 FromDcmtkBridge::ToJson(target["PatientMainDicomTags"], t2, true); | 893 FromDcmtkBridge::ToJson(target["PatientMainDicomTags"], t2, true); |
917 | |
918 target["PatientMainDicomTags"]["PatientID"] = GetPatientIdOfStudy(db_, resourceId); | |
919 } | 894 } |
920 else | 895 else |
921 { | 896 { |
922 target["MainDicomTags"] = Json::objectValue; | 897 target["MainDicomTags"] = Json::objectValue; |
923 FromDcmtkBridge::ToJson(target["MainDicomTags"], tags, true); | 898 FromDcmtkBridge::ToJson(target["MainDicomTags"], tags, true); |
2134 | 2109 |
2135 switch (levelOfInterest) | 2110 switch (levelOfInterest) |
2136 { | 2111 { |
2137 case ResourceType_Patient: | 2112 case ResourceType_Patient: |
2138 tmp.ExtractPatientInformation(result); | 2113 tmp.ExtractPatientInformation(result); |
2139 result.SetValue(DICOM_TAG_PATIENT_ID, GetPatientIdOfStudy(db_, id)); | |
2140 return true; | 2114 return true; |
2141 | 2115 |
2142 case ResourceType_Study: | 2116 case ResourceType_Study: |
2143 tmp.ExtractStudyInformation(result); | 2117 tmp.ExtractStudyInformation(result); |
2144 return true; | 2118 return true; |