从dicom rdsr文件中提取数据的包
rdsr-navigator的Python项目详细描述
RDSR导航器
从DICOMrdsr文件中提取数据的包。这个项目的重点是提取数据。无法修改文件。该项目目前处于早期开发阶段,事情可能不会完全按照您的预期进行。公共api还不稳定,请记住这一点。
The package is intended for RESEARCH USE ONLY, NOT FOR CLINICAL USE.
入门
这些说明将为您提供项目的副本并在本地计算机上运行。
先决条件
rdsr navigator是用python 3.6编写的,使用pydicom。因此,请确保运行的是Python3.6或更高版本,并确保Pydicom已安装。如果未安装pydicom,请使用下面的命令安装pydicom。
$ pip install pydicom
安装
rdsr navigator在pypi上可用,可以使用以下命令安装。
$ pip install rdsr_navigator
现在,您可以开始使用rdsr导航器了。
用法
读取文件
要打开RDSR文件,请键入以下命令。
>>>importrdsr_navigatorasnav>>>rdsr_obj=nav.read_file(r'C:\rdsr_file.dcm')
read_file
的输入参数是一个包含rdsr文件路径的str
。其他支持的数据类型是pathlib
和pydicom
对象。
提取数据
数据是通过首先使用概念名称在rdsr层次结构中导航来提取的。所有概念名称都以小写形式给出,并用下划线(“\u”)分隔。在下面的示例中,我们将从“procedure reported”中提取值。
>>>rdsr_obj['procedure_reported'].value'Projection X-Ray'
也可以使用代码值和由冒号(“:”)分隔的编码方案指示符来提取数据。如下例所示。
>>>rdsr_obj['121058:DCM'].value'Projection X-Ray'
使用方括号时,将返回第一个匹配的概念名称。如果在同一级别上存在几个具有相同概念名称的条目,则这是不合适的。要使用相同的概念名迭代条目,请使用get_all
方法。
>>>forirr_eventinsr_obj.get_all('irradiation_event_x-ray_data')):print(irr_event['dose_area_product'].value)(1.9632189e-7,'Gy.m2')(1.1173212e-5,'Gy.m2')(8.566802e-7,'Gy.m2')
通过在方括号中添加更多的概念名称深入层次结构。
>>>rdsr_obj['procedure_reported','has_intent'].value'Combined Diagnostic and Therapeutic Procedure'
Jupyter笔记本集成
rdsr导航器类与jupyter notebooks集成。
- 数据很好地以表格形式显示。
- 使用方括号访问数据时,可以使用制表符完成。
支持的值类型
目前,只支持少数值类型。下面列出了支持的值类型。
- 代码含义
- 日期时间
- 测量值
- 文本值
- uid
许可证
这个项目是根据麻省理工学院的许可证授权的-请参阅许可证文件了解详细信息。