Разбор и отправка данных из образа DICOM в ядре .net
В настоящее время я работаю над полным веб-приложением DICOM на основе ядра.net + Postgresql и средства просмотра OHIF (для визуализации изображений DICOM). Я создал базу данных с таблицами, такими как Patient, Study и т. Д., И атрибутами, которые я храню как PatientName, PatientDOB и т. Д., Теперь, возвращая json, вывод также такой же, как
"Имя пациента": "темп"
"PatientDOB": "2332"..
но поскольку у зрителей DICOM есть стандарт, в котором они получают объекты JSON как
{"0020000D": {
"vr": "UI",
"Value": [ "1.2.392.200036.9116.2.2.2.1762893313.1029997326.945873" ]
}
}
поэтому я хочу сопоставить свой ввод / вывод JSON таким образом, чтобы при возврате я возвращал значения в указанном выше формате Dicom и при получении данных я сохранял их как атрибуты (имена столбцов), а не как теги?
Я новичок в ядре.net и сети Dicom, как дальше с этим работать? Кроме того, я использую fo-Dicom для чтения данных из образа Dicom.
Пожалуйста, предоставьте подсказку / код, который я могу использовать.
2 ответа
Возможно, вы сохраните только несколько DicomTags в своей базе данных (теги, необходимые для выполнения запроса к вашей базе данных), но зритель может захотеть иметь все теги как Json. Поэтому я бы не стал пытаться сопоставить вашу базу данных-Jasons с Dicom-jsons, но я бы использовал fo-dicom для генерации Json из файла DICOM:
Вам нужно добавить пакет nugeg fo-dicom.json, а затем вы можете вызвать
DicomDataset dataset = ... // wherever you get your DICOM file
string json = JsonConvert.SerializeObject(dataset, new JsonDicomConverter());
или наоборот, если вы хотите преобразовать такой DICOM-совместимый json в DicomDataset
string json = ... // wherever you get the json from
DicomDataset dataset = JsonConvert.DeserializeObject<DicomDataset>(json, new JsonDicomConverter());
OHIF Viewer поддерживает стандартный формат метаданных DICOMweb WADO-RS JSON в дополнение к настраиваемому формату, который вы упомянули в своем вопросе. Это означает, что вы можете использовать любой сервер DICOMweb, например Orthanc, DCM4CHE или DICOMcloud.
DICOMcloud может лучше соответствовать вашему сценарию, поскольку он использует fo-dicom. Однако в настоящее время он поддерживает только MS SQL Server и.NET 4.6. (есть усилия по поддержке mySQL, но они не завершены на 100%)
Если вы все же хотите написать свой собственный, вы можете посмотреть, как он реализован, и адаптировать его к своему собственному решению.
[Раскрытие информации] Я являюсь автором DICOMcloud