Пример #1
0
   public static string DicomAttributeMapTable(DicomAttributeKeyword keyword) =>
   (keyword == DicomAttributeKeyword.StudyDate) ? "StudyDate"
 : (keyword == DicomAttributeKeyword.AccessionNumber) ? "AccessionNumber"
 : (keyword == DicomAttributeKeyword.PatientName) ? "PatientName"
 : (keyword == DicomAttributeKeyword.PatientId) ? "PatientID"
 : (keyword == DicomAttributeKeyword.StudyInstanceUid) ? "StudyInstanceUID"
 : (keyword == DicomAttributeKeyword.NumberOfStudyRelatedSeries) ? "NumberOfStudyRelatedSeries"
 : (keyword == DicomAttributeKeyword.NumberOfStudyRelatedInstances) ? "NumberOfStudyRelatedInstances"
 : "";
        public static object GetValueFromStudyByDicomAttributeByUid(DicomAttributeKeyword keyword, string uid = null)
        {
            _StudyInstanceUid = uid ?? exampleStudyInstanceUid;
            var attribute = StandardObjectMapping.DicomAttributeMapTable(keyword);
            var response  = runApiRequest(Method.GET, baseDicomWeb, $"studies/?StudyInstanceUID={_StudyInstanceUid}");

            if (response.IsSuccessful)
            {
                var removeFirstPart = response.Content.Substring(response.Content.IndexOf('<'));
                var stream          = new StringReader(removeFirstPart.Substring(0, removeFirstPart.LastIndexOf('>')));
                using (var reader = XmlReader.Create(stream)) {
                    while (reader.Read())
                    {
                        reader.ReadToFollowing("DicomAttribute");
                        if (reader.GetAttribute("keyword") == attribute)
                        {
                            reader.ReadToFollowing("Value");
                            return(reader.ReadElementContentAsObject());
                        }
                    }
                }
            }
            return("error: something went wrong");
        }