#dicom #elements #part #data #standard #dictionary #access

dicom_dictionary_parser

解析DICOM标准第6部分数据字典并提供对所有数据元素的访问的库

2个不稳定版本

使用旧的Rust 2015

0.2.0 2018年10月31日
0.1.0 2018年10月24日

#30#dicom

MIT 许可证

1MB
296 代码行

dicom_dictionary_parser

Build Status Crates.io Documentation Crates.io

DICOM标准第6部分中定义的各种元素解析的Rust库。

完整文档可在此处找到。

用法

将此添加到您的 'Cargo.toml'

[dependencies]
dicom_dictionary_parser = "0.1.0"

并将此添加到您的crate根目录

extern crate dicom_dictionary_parser;

lib.rs:

提供对DICOM第6部分中定义的各种表格的元素访问的库。目前提供以下表格的访问

  • "DICOM数据元素注册表"
  • "DICOM文件元数据注册表"
  • "DICOM目录结构元素注册表"
  • "DICOM唯一标识符(UIDs)注册表"

示例 - 将数据元素写入文件

extern crate dicom_dictionary_parser as dict_parser;

use std::fs::File;
use std::io::BufWriter;
use std::io::Write;

fn main() -> Result<(), Box<::std::error::Error>> {
    let parser = dict_parser::Parser::new()?;
    let data_elements = parser.parse_data_element_registry()?;
    let file = File::create("dictionary.rs")?;
    let mut buf_writer = BufWriter::new(file);
    for data_element in data_elements {
        let upper_case_keyword = data_element
            .keyword
            .replace("\u{200b}", "")
            .replace("__", "_")
            .to_uppercase();

        buf_writer.write_all(
            format!(
                "const {}: Tag = Tag(0x{}, 0x{});\n",
                upper_case_keyword,
                &data_element.tag[1..5],
                &data_element.tag[6..10])
            .as_bytes())?;
    }

    Ok(())
}

依赖项

~20MB
~435K SLoC