Crate dicom_json
source ·Expand description
DICOM JSON module
This library provides serialization of DICOM data to JSON and deserialization of JSON to DICOM data, as per the DICOM standard part 18 chapter F.
The easiest path to serialization is in
using the functions readily available to_string
and to_value
.
Alternatively, DICOM data can be enclosed by a DicomJson
value,
which implements serialization and deserialization via Serde.
§Example
To serialize an object to standard 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"]}}"#
);
To turn DICOM JSON back into an in-memory object:
let json = r#"{
"00080021": { "vr": "DA", "Value":["20230610"] },
"00200013": { "vr": "IS", "Value":["5"] }
}"#;
let obj: InMemDicomObject = dicom_json::from_str(&json)?;
Use the DicomJson
wrapper type
for greater control on how to serialize or deserialize data:
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" ]
}
}),
);
Structs§
- A wrapper type for DICOM JSON serialization using Serde.
Functions§
- Deserialize a piece of DICOM data from a standard byte reader.
- Deserialize a piece of DICOM data from a byte slice.
- Deserialize a piece of DICOM data from a string of JSON.
- Deserialize a piece of DICOM data from a serde JSON value.
- Serialize a piece of DICOM data as a string of JSON.
- Serialize a piece of DICOM data as a pretty-printed string of JSON.
- Serialize a piece of DICOM data as a serde JSON value.
- Serialize a piece of DICOM data to a vector of bytes.
- Serialize a piece of DICOM data to a byte writer.