0

我目前正在开发一个基于 .net core + Postgresql 和 OHIF 查看器(以呈现 DICOM 图像)的完整 DICOM Web 应用程序。我已经建立了一个数据库,其中包含 Patient、Study 等表以及我存储为 PatientName、PatientDOB 等的属性,现在在返回 json 时,输出也与

“患者姓名”:“临时”

“患者出生日期”:“2332”..

但由于 DICOM 查看器有一个标准,他们将 JSON 对象接收为

{“0020000D”:{

  "vr": "UI",

  "Value": [ "1.2.392.200036.9116.2.2.2.1762893313.1029997326.945873" ]
}

}

所以我想以这样的方式映射我的 JSON 输入/输出,在返回时我以上述 Dicom 格式返回值,在获取数据时我将它们存储为属性(列名)而不是标签?

我在 .net core 和 Dicom web 方面还很新,那么如何进一步处理呢?另外,我正在使用 fo-Dicom 从 Dicom 图像中读取数据。

请提供一些我可以使用的提示/代码。

4

2 回答 2

2

您可能只将几个 DicomTag 存储到数据库中(您需要对数据库进行查询的标签),但查看器可能希望将所有标签都保存为 Json。所以我不会尝试将你的数据库 Jasons 映射到 Dicom-jsons 中,但我会使用 fo-dicom 从 DICOM 文件中生成 Json:

您需要添加 nueg 包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());
于 2019-12-20T12:10:49.443 回答
0

除了您在问题中提到的自定义格式外,OHIF 查看器还支持标准 DICOMweb WADO-RS JSON 元数据格式。这意味着您可以使用任何 DICOMweb 服务器,例如 Orthanc、DCM4CHE 或DICOMcloud

DICOMcloud可能更适合您的场景,因为它使用 fo-dicom。但是,它目前仅支持 MS SQL Server 和 .NET 4.6。(正在努力支持 mySQL,但还没有 100% 完成)

如果您仍想编写自己的,您可以查看它是如何实现的并将其调整为您自己的解决方案。

【披露】我是DICOMcloud的作者

于 2019-12-22T22:51:54.680 回答