asp.net-mvc - .net core中DICOM图像的数据解析和发送
问题描述
我目前正在开发一个基于 .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 图像中读取数据。
请提供一些我可以使用的提示/代码。
解决方案
您可能只将几个 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());
推荐阅读
- coldfusion - 如何修复在cfspreadsheet中存储为文本的数字
- azure - 在泛化之前创建了 Azure VM 的映像,但无法启动该 VM
- netsuite - 如何将变量分配为其他变量的差异?
- c# - C# 连接到 LDAP(Windows 服务器)
- angular - Angular 7.1.3:发布不适用于授权持有者令牌
- node.js - MongoDB 只更新对象中更改的字段,而不是替换整个对象
- apache-nifi - Nifi ConvertAvroToJSON--数字类型错误
- azure - Azure iot sdk c 示例:CMakeLists.txt 有效,但 make (Autotools) 无效
- install4j - 如何允许多个卸载程序在同一目录中独立工作?
- python - 在梯度检查中,我们是否在 theta 和常数参数 b 中添加/减去 epsilon(一个很小的值)?