4 个版本
新 0.7.1 | 2024 年 8 月 13 日 |
---|---|
0.7.0 | 2024 年 4 月 25 日 |
0.1.1 | 2023 年 11 月 21 日 |
0.1.0 | 2023 年 7 月 23 日 |
#1641 在 解析器实现
314 每月下载量
在 4 个crate中使用(通过 dicom-dump)
2.5MB
33K SLoC
DICOM-rs json
该子项目面向 DICOM-rs 生态系统用户。它提供了将 DICOM 数据序列化为 JSON 以及将 JSON 反序列化为 DICOM 数据的功能,符合 DICOM 标准第 18 部分 F 章节的内容。
该crate是DICOM-rs项目的一部分。
lib.rs
:
DICOM JSON 模块
该库提供将 DICOM 数据序列化为 JSON 以及将 JSON 反序列化为 DICOM 数据的功能,符合 DICOM 标准第 18 部分 F 章节的内容。
使用现成的函数 to_string
和 to_value
是序列化的最简单路径。或者,可以使用 DicomJson
包裹类型以获得对序列化或反序列化数据方式的更多控制,它通过 Serde 实现序列化和反序列化。
示例
将对象序列化为标准的 DICOM JSON
let obj = InMemDicomObject::from_element_iter([
InMemElement::new(tags::SERIES_DATE, VR::DA, "20230610"),
InMemElement::new(tags::INSTANCE_NUMBER, VR::IS, "5"),
]);
let json = dicom_json::to_string(&obj)?;
assert_eq!(
json,
r#"{"00080021":{"vr":"DA","Value":["20230610"]},"00200013":{"vr":"IS","Value":["5"]}}"#
);
将 DICOM JSON 反序列化回内存中的对象
let json = r#"{
"00080021": { "vr": "DA", "Value":["20230610"] },
"00200013": { "vr": "IS", "Value":["5"] }
}"#;
let obj: InMemDicomObject = dicom_json::from_str(&json)?;
使用 DicomJson
包裹类型以获得对序列化或反序列化数据方式的更多控制
let dicom_obj = dicom_json::DicomJson::from(&obj);
let serialized = serde_json::to_value(dicom_obj)?;
assert_eq!(
serialized,
serde_json::json!({
"00080021": {
"vr": "DA",
"Value": [ "20230610" ]
},
"00200013": {
"vr": "IS",
"Value": [ "5" ]
}
}),
);
依赖关系
~7–14MB
~142K SLoC