Разбор и отправка данных из образа 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

Другие вопросы по тегам