文章目录
前期预研的PACS系统,近期要在项目中上线了。因为PACS系统采用无权限认证,业务系统若直接访问PACS系统获取数据,有认证风险,所以决定将PACS系统中部分数据同步至服务端。
DICOMWeb Support模块
dcm4chee搭建的PACS系统中,包含DICOMWeb Support模块,即web形式访问DICOM对象,包含查询Study、StudySeries及instance等数据API,具体可以查看官方提供的swagger地址。
主要数据结构ER
PACS主要数据结构包括:Patient(患者) / Study(病例) / Series(序列) / SOP Instances(图像信息),ER图可以参考下图
- Patient(1) - Study(n)
- Study(1) - Series(n)
- Series(1) - SOP Instances(n)
查询信息
基本信息
以上API是查询各个数据结构对应的基本信息(主要为DICOMWeb页面展示数据),返回数据为json数组,数据包括:
- 查询病例:病例信息 + 按病例维度的相关统计
- 查询序列:病例信息 + 序列信息
- 查询图像:病例信息 + 序列信息 + 图像信息
- 查询患者:患者信息 + 按患者维度的相关统计
metadata信息
图片中红框中的API是获取study、series及instance对象在dicom文件中的所有属性,非常的全面。返回数据为json数组。
统计信息
PACS系统提供了获取patient、study、instance、modality及institution维度的统计信息,返回json形如{"count":10}
。
实践
查询API及参数
本文主要涉及查询如下API:
API名称 | url |
---|---|
study列表 | http://<host>/dcm4chee-arc/aets/DCM4CHEE/rs/studies?includefield=all |
study单条记录 | http://<host>/dcm4chee-arc/aets/DCM4CHEE/rs/studies?StudyInstanceUID={studyIUID}&includefield=all |
series列表 | http://<host>/dcm4chee-arc/aets/DCM4CHEE/rs/studies/{studyIUID}/series?includefield=all&orderby=SeriesNumber |
单条instance记录 | http://<host>/dcm4chee-arc/aets/DCM4CHEE/rs/studies/{studyIUID}/series/{seriesIUID}/instances?offset=0&limit=1&includefield=all |
单条instance metadata记录 | http://<host>/dcm4chee-arc/aets/DCM4CHEE/rs/studies/{studyIUID}/series/{seriesIUID}/instances/{sopIUID}/metadata |
NOTE:includefield属性表示查询PACS支持暴露的所有字段名。
解析API返回的json数组
查询病例数据,返回json数组如下:
[{
"00080005":{
"vr":"CS","Value":["ISO_IR 100"]},"00080020":{
"vr":"DA","Value":["20151124"]},"00080030":{
"vr":"TM","Value":["165546.548881"]},"00080050":{
"vr":"SH"},"00080054":{
"vr":"AE","Value":["DCM4CHEE"]},"00080056":{
"vr":"CS","Value":["ONLINE"]},"00080061":{
"vr":"CS","Value":["CT"]},"00080090":{
"vr":"PN"},"00080201":{
"vr":"SH"},"00081190":{
"vr":"UR","Value":["