Pure MoonBit toolkit for DICOM Part 10 metadata parsing, validation, anonymization and JSON reporting
Dependencies
///|
let dataset = @moondicom.parse(file_bytes)
///|
let patient_name = dataset.get_text(@moondicom.patient_name())
///|
let image_rows = dataset.get_int(@moondicom.rows())
///|
let report = @moondicom.validate(dataset)
///|
let public_copy = @moondicom.anonymize(
dataset,
@moondicom.default_anonymization_policy(),
)moon run --target native examples/generate
moon run --target native examples/generate -- examples/sample.dcm
moon run --target native cmd/main -- inspect examples/sample.dcm
moon run --target native cmd/main -- validate examples/sample.dcm
moon run --target native cmd/main -- convert examples/sample.dcm --format json
moon run --target native cmd/main -- anonymize examples/sample.dcm --output anonymized.jsonmoon check
moon check --target all
moon test
moon fmt
moon infopub(all) suberror ParseError {
InvalidMagic(offset~ : Int)
Truncated(offset~ : Int, needed~ : Int, remaining~ : Int)
InvalidVr(offset~ : Int, code~ : String)
InvalidLength(offset~ : Int, length~ : Int)
Unsupported(offset~ : Int, message~ : String)
}fn AnonymizationPolicy::with_replacement(self : AnonymizationPolicy, tag : Tag, value : String) -> AnonymizationPolicypub(all) struct AnonymizationResult {
dataset : DataSet
audit : Array[AnonymizationAudit]
} derive(Eq, Debug)pub struct ByteReader {
bytes : Bytes
position : Int
}pub(all) struct ValidationIssue {
severity : ValidationSeverity
code : String
tag : Tag?
message : String
} derive(Eq, Debug)Install
Download zipPure MoonBit toolkit for DICOM Part 10 metadata parsing, validation, anonymization and JSON reporting
Dependencies