.net core中DICOM图像的数据解析和发送

Data parsing and sending from DICOM image in .net core

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

"PatientName" : "temp"

"PatientDOB":“2332” ..

但是 DICOM 查看器有一个标准,他们接收 JSON 个对象作为

{ “0020000D”:{

  "vr": "UI",

  "Value": [ "1.2.392.200036.9116.2.2.2.1762893313.1029997326.945873" ]
}

}

所以我想映射我的 JSON input/output 以这样一种方式,当 returning 我 return 上述 Dicom 格式的值并在获取数据时我将它们存储为属性(列名)而不是标签?

我是 .net core 和 Dicom web 的新手,那么如何进一步进行呢?另外,我正在使用 fo-Dicom 从 Dicom 图像中读取数据。

请提供一些我可以使用的hint/code。

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

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

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

如果您仍想自己编写,可以查看它的实现方式并根据您自己的解决方案进行调整。

[披露] 我是 DICOMcloud 的作者