【什么是PACS系统】
通过DICOM3.0国际标准接口,将CT、超声、放射检查(DR)、核磁、磁共振(MR)等多种医学影像以数字化的形式保存,提供授权方式查看和调回,并提供一些辅助诊断管理功能的系统。
【PACS系统主要技术】
①内部存储格式标准化为DICOM3.0 ——(Dicom协议:具体了解访问https://www.dicomstandard.org/)
②采纳标准压缩算法来压缩图像文件(目前压缩方式包含JPEG、JPEGLossless、JPEG2000、JPEG-LS和Deflate等)
③三级图像储存模式:在线(online)、近线(near-line)和离线(off-line)
关于PACS相关知识可自行百度,就不赘述了.......
本系列主要介绍Java项目中如何通过第三方工具(Dcm4che)对接医疗PACS系统,没接触过医疗的可以搜索下 HIS,LIS这些相关名词,不感兴趣的就算了,略过~
第一篇主要介绍 C-FIND操作:
下图为对接PACS相关参数,有具体解释说明:
public class Pacs {
@ApiModelProperty(value = "PACS服务器AE节点名称")
public String scpAE;
@ApiModelProperty(value = "PACS服务器IP地址")
public String scpIp;
@ApiModelProperty(value = "PACS服务器端口")
public int scpPort;
@ApiModelProperty(value = "当前服务器注册至PACS服务器节点名称")
public String scuAE;
@ApiModelProperty(value = "当前服务器IP地址")
public String scuIp;
@ApiModelProperty(value = "当前服务器注册至PACS服务器端口")
public int scuPort;
}
初始化主要用到的Dcm4che工具包的DcmQR和DcmRcv
/** 初始化DcmQR和下载的方法**/
DcmQR dcmqr = new DcmQR(scuAE);
dcmqr.setCalledAET(scpAE, false);
dcmqr.setRemoteHost(scpHost);
dcmqr.setRemotePort(scpPort);
dcmqr.setPackPDV(true);
dcmqr.setTcpNoDelay(true);
dcmqr.setCFind(true);
dcmqr.setMoveDest(scuAE);
dcmqr.addDefReturnKeys();
dcmqr.configureTransferCapability(false);
关于CFIND操作:C-Find 服务是一个查询服务,根据检索级别查询图像相关信息
Dcm4che提供指定检索级别<PATIENT|STUDY|SERIES||FRAME>
具体代码涉及商业不宜开放了哈~
拿到的结果如图所示(因为涉及到隐私问题打码处理):