当前位置: 首页 > > IBM > IBM软件 > IBM医疗连接包一款基于Message Broker的新产品

IBM医疗连接包一款基于Message Broker的新产品

2014-07-28 09:51 来源:IBM 作者:翟小东 人气指数: 我要评论

IBM 医疗连接包是一款基于 Message Broker 的新产品,专门提供针对医疗行业技术标准和医疗设备的通信支持,可以快速实现院内及院间各个系统之间的交互通信。PACS 系统是目前被医院广泛采用的影像归档和通信系统,它基于 DICOM 标准对医学数字影像信息进行传输和处理。IBM 医疗连接包支持 DICOM 标准协议,提供一组核心的 DICOM 节点来完成对医学数字图像的采集、归档、通信、查询等操作,可以灵活实现不同的医疗解决方案,完成 PACS 系统之间的互联互通。本文将结合实例场景介绍这些功能。

DICOM 介绍

DICOM(Digital Imaging and Communication in Medicine)即医学数字影像和通信标准。是为了规范医学图像的存储格式、传输方式及其相关信息的交换方式,由美国放射学会和全美电子厂商联合会(ACR-NEMA)发起制定,发展成为医学影像信息学领域的国际通用标准。

DICOM 标准中涵盖了医学数字图像的采集、归档、通信、显示及查询等几乎所有信息交换的协议,以开放互联的架构和面向对象的方法定义了一套包含各种类型的医学诊断图像及其相关的分析、报告等信息的对象集。通常,DICOM 文件有两部分组成:元数据信息(Meta Data)和图像信息(Pixel Data)。DICOM 标准的推出,大大简化了医学影像信息交换的实现,并且由于 DICOM 的开放性与互联性,使得与其它医学应用系统(HIS、RIS 等)的集成成为可能。

与医学数字影像应用集成,可以实现高价值的客户案例包括医疗影像跨组织共享、病人信息预取等。一方面通过 DICOM 节点支持主要的 DICOM 命令(GET、FIND、MOVE、STORE);另一方面通过模式为 PACS 系统集成提供端到端的解决方案。下面通过一个简单的示例来说明 IBM 医疗连接包对 DICOM 医学数字影像信息的处理过程。

DICOM 文件跨组织共享

场景一:医学数字影像文件的跨组织共享。如下 图 1所示,医院 A 需要把病人的 CT 图像信息传送给医院 C 的医生。两家医院采用不同的医院信息系统,它们之间通过 Message Broker 企业服务总线进行系统集成,来完成系统间的信息交互。

图 1:DICOM 文件跨组织共享


点击这里给我发消息

这个场景中,Message Broker 首先作为端(SCP)使用,侦听并接收医院 A 发送的 DICOM 信息;然后把 DICOM 文件中的图像信息(Pixel Data)抽取出来,存储在本地的文件系统,只传输处理其中的元数据信息(Meta Data);最后作为客户端(SCU)使用,整合经过处理的元数据信息和图像信息,组成新的 DICOM 信息,发送给医院 C。

这里大家可能会问:为什么 Message Broker 要抽取出图像信息,而不直接传输 DICOM 文件呢?这是因为 DICOM 文件通常比较大,几兆到几十兆不等,如果直接在消息流中进行传输,不仅占用较多的系统资源,而且大大影响消息流的处理性能。

在下面 清单 1中,给出一个 DICOM 文件的内容结构示例,可以看到它通过标签(Tag)记录属性信息。其中,标签(7FE0,0010)表示像素数据,它指明图像像素的起始位置。

清单 1.DICOM 文件内容

(0002,0000) UL #4 [140] Group Length 
 (0002,0001) OB #2 [00\01] File Meta Information Version 
 (0002,0002) UI #30 [1.2.840.10008.5.1.4.1.1.481.2] Media Storage SOP Class UID 
 (0002,0003) UI #26 [1.2.246.352.71.7.3417.321] Media Storage SOP Instance UID 
 (0002,0010) UI #18 [1.2.840.10008.1.2] Transfer Syntax UID 
 (0002,0012) UI #20 [1.2.246.352.70.2.1.7] Implementation Class UID 
 (0008,0012) DA #8 [20031231] Instance Creation Date 
 (0008,0013) TM #6 [122748] Instance Creation Time 
 (0008,0016) UI #30 [1.2.840.10008.5.1.4.1.1.481.2] SOP Class UID 
 (0008,0018) UI #26 [1.2.246.352.71.7.3417.321] SOP Instance UID 
 (0008,0020) DA #8 [20031231] Study Date 
 (0008,0030) TM #6 [093828] Study Time 
 (0008,0050) SH #0 [] Accession Number 
 (0008,0060) CS #6 [RTDOSE] Modality 
 (0008,0070) LO #22 [VARIAN Medical Systems] Manufacturer 
 (0008,0090) PN #0 [] Referring Physician ’ s Name 
 (0008,1090) LO #10 [Vision 7.1] Manufacturer ’ s Model Name 
 (0010,0010) PN #14 [Qianyongcheng] Patient ’ s Name 
 (0010,0020) LO #8 [1100298] Patient ID 
 (0010,0030) DA #0 [] Patient ’ s Birth Date 
 (0010,0040) CS #2 [O] Patient ’ s Sex 
 ...... 
 (3004,000E) DS #12 [1.0000000e-6] Dose Grid Scaling 
 (300C,0002) SQ #106 Referenced RT Plan Sequence 
 (FFFE,E000) #98 Item 
 (0008,1150) UI #30 [1.2.840.10008.5.1.4.1.1.481.5] Referenced SOP Class UID 
 (0008,1155) UI #26 [1.2.246.352.71.5.3417.261] Referenced SOP Instance UID 
 (300C,0020) SQ #18 Referenced Fraction Group Sequence 
 (FFFE,E000) #10 Item 
 (300C,0022) IS #2 [1] Referenced Fraction Group Number 
 (7FE0,0010) OW #137984 [0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\...] Pixel Data

消息流的设计

下面我们来看一下,要完成这一功能,消息流应该如何设计。IBM 医疗连接包提供了 3 个 DICOM 节点来帮助用户方便的实现对医学数字影像信息的处理。在这个场景中,我们需要使用 DICOMInput 和 DICOMOutput 两个节点。消息流如下 图 2所示

图 2. DICOM 文件处理消息流


IBM医疗连接包一款基于Message Broker的新产品

DICOMInput 节点作为验证和存储服务类的端 SCP(Service Class Provider),侦听并从客户端 SCU(Service Class User)接收 DICOM 图像,执行 C-STORE 命令。把 DICOM 文件中的图像信息(Pixel Data)抽取出来,存储在本地的文件系统的处理目录,在消息流中只传输处理其中的元数据信息(Meta Data)。其基本配置如下 图 3所示:

图 3. DICOMInput 节点基本配置

IBM医疗连接包一款基于Message Broker的新产品

这里主要是配置 SCP 的侦听端口、AET 的名称、图像信息存放的目录以及自动归档删除的时间,需要特别注意的是,配置一个可用的消息队列 Queue,这里队列名称为 DICOM,专门用来读取 DICOM 文件。

高级配置如下 图 4所示:

图 4. DICOMInput 节点高级配置

IBM医疗连接包一款基于Message Broker的新产品

这里,默认选择不传输 Pixel Data,其对应的 Tag 标签值为 7FE00010。结合 清单 1中 DICOM 文件内容结构,我们也可以设置其它不需要传输的 DICOM 属性,多个属性之间用逗号隔开。此外,还可以使用可配置的服务(configurable service)来配置 Presentation Context 对要接收的 DICOM 文件的格式、语法组等作出约束。更多详细信息请参考产品的帮助文档。

中间的 Compute 节点用来处理 DICOM 文件中的元数据信息,它在进入消息流时就被转化为 XML 格式在消息流中传播。在 Message Broker Toolkit 中通过调试可以看到消息域是 XMLNSC,如下 图 5所示:

图 5. DICOM 文件的元数据消息

IBM医疗连接包一款基于Message Broker的新产品

DICOMOutput 节点作为存储服务类的客户端 SCU(Service Class User),首先从 DICOM XML 消息获得元数据信息,根据用户的编码设置(encoding options)重新编码,然后从文件系统中获取图像信息,两者结合生成新的 DICOM 文件,最后发送到远程的 PACS 系统。其基本配置如下 图 6所示:

图 6. DICOMOutput 节点的基本配置

IBM医疗连接包一款基于Message Broker的新产品

打开 Advanced 属性页,如下 图 7所示,可以看到这里提供了很多编码的选项。

图 7. DICOMOutput 节点的高级配置

IBM医疗连接包一款基于Message Broker的新产品

上面着重介绍了 DICOMInput 和 DICOMOutput 节点功能及用法,下面结合一个具体的医疗应用场景说明一下 DICOMFindMove 节点的用法。

入院预取场景

场景二:在病人挂号之后,预先准备病人的历史检查信息,通过灵活的路由配置选项来实现检查结果的查询和发送。如下 图 8所示,病人到达医院 A 就医,当病人挂号之后,医院的后台信息系统使用 C-FIND 命令查询功能查询出去年一年病人在医院 C 所有的 CR 检查信息,并使用 C-MOVE 命令把这些图像信息发送到医院 A 的本地 PACS ,这样医院 A 的医生就可以在诊治病人时方便的参考病情历史,避免重复检查,提高诊断的效率和准确度。在此基础上还能够支持更多的应用集成场景,例如发送短信通知给主治医生等。

图 8. 入院预取场景

IBM医疗连接包一款基于Message Broker的新产品

由于这一场景在现实中有着广泛的应用,Message Broker 医疗连接包专门提供了一个模式(Pattern):Web service to DICOM 模式,为 DICOM 应用集成提供端到端的解决方案,极大地方便用户的使用。场景二中基于 DICOM 图像中的数据进行路由(例如 , SNOMED 编码),需要多个 DICOM 命令的组合,包含 C-FIND、C-MOVE 和 C-STORE,这些功能操作均由 DICOMFindMove 节点来完成。

消息流的设计

为了便于查询和使用,模式封装为一个 Web service 服务,使用 SOAPInput 节点接收 SOAP 请求;核心使用 DICOMFindMove 节点查询符合条件的 DICOM,根据请求消息执行 C-FIND、C-MOVE 操作;最后,把执行结果封装为 SOAP 消息返回调用客户端。消息流如下 图 9所示:

图 9. Web service to DICOM 模式消息流

IBM医疗连接包一款基于Message Broker的新产品

其中,DICOMFindMove 节点的基本配置如下 图 10所示:

图 10. DICOMFindMove 节点的基本配置

IBM医疗连接包一款基于Message Broker的新产品

部署消息流,使用 Web service 客户端发送如下 SOAP 消息请求。注意:这里可以使用通用的 soapUI 工具,也可以使用 IBM 医疗连接包提供的 DICOM Test Application,其中针对 Web service to DICOM 模式专门提供了对应的 Web Service 客户端,集成了不同的查询级别,使用起来非常方便。

清单 2. SOAP 请求消息

Web service URL:http://localhost:7800/DICOM 
 Query type:Patient root - Patient level 
 Query Message:
 <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:DICOM="http://com.ibm.healthcare/DICOM"> 
	 <soap:Header/> 
	 <soap:Body> 
		 <DICOM:FindMove xmlns:DICOM="http://com.ibm.healthcare/DICOM"> 
		 <QueryRoot>PATIENT</QueryRoot> 
		 <QueryLevel>PATIENT</QueryLevel> 
 <MoveDestination>DCM4CHEE</MoveDestination>
		 <OperationPriority>NORMAL</OperationPriority> 
		 <Match> 
		 <Attribute Tag="PatientName">WILKINS^CHARLES</Attribute> 
		 <Attribute Tag="PatientID"></Attribute> 
		 <Attribute Tag="IssuerOfPatientID"></Attribute> 
		 <Attribute Tag="PatientBirthDate"></Attribute> 
		 <Attribute Tag="PatientSex"></Attribute> 
		 </Match> 
		 <Return> 
		 </Return> 
		 </DICOM:FindMove> 
	 </soap:Body> 
 </soap:Envelope>

正常情况下会收到类似的返回消息 Response Message:

清单 3. SOAP 响应消息

<?xml version="1.0" encoding="UTF-8"?> 
 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
 <soapenv:Body> 
 <DICOM:Results xmlns:DICOM="http://com.ibm.healthcare/DICOM"> 
 <DICOM> 
 <Attribute Tag="00080052" VR="CS">PATIENT</Attribute> 
 <Attribute Tag="00100010" VR="PN">WILKINS^CHARLES</Attribute> 
 <Attribute Tag="00100020" VR="LO">GE0514</Attribute> 
 <Attribute Tag="00100021" VR="LO"/> 
 <Attribute Tag="00100030" VR="DA"/> 
 <Attribute Tag="00100040" VR="CS">M</Attribute> 
 <MoveResults> 
 <Completed>1</Completed> 
 <Failed>0</Failed> 
 <Warnings>0</Warnings> 
 <Status>0</Status> 
 <ErrorID>0</ErrorID> 
 <ErrorComment/> 
 </MoveResults> 
 </DICOM> 
 </DICOM:Results> 
 </soapenv:Body> 
 </soapenv:Envelope>

如果这一过程中发生任何错误,Status 的值不为 0,并且 ErrorComment 会记录相关的异常信息,如下示例 清单 4所示:

清单 4. SOAP 异常响应消息

<?xml version="1.0" encoding="UTF-8"?> 
 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
 <soapenv:Body> 
 <DICOM:Results xmlns:DICOM="http://com.ibm.healthcare/DICOM"> 
 <DICOM> 
 <Attribute Tag="00080052" VR="CS">PATIENT</Attribute> 
 <Attribute Tag="00100010" VR="PN">WILKINS^CHARLES</Attribute> 
 <Attribute Tag="00100020" VR="LO">GE0514</Attribute> 
 <Attribute Tag="00100021" VR="LO"/> 
 <Attribute Tag="00100030" VR="DA"/> 
 <Attribute Tag="00100040" VR="CS">M</Attribute> 
 <MoveResults> 
 <Completed>0</Completed> 
 <Failed>0</Failed> 
 <Warnings>0</Warnings> 
 <Status>43009</Status> 
 <ErrorID>0</ErrorID> 
 <ErrorComment>Unknown move destination:BROKERAE</ErrorComment> 
 </MoveResults> 
 </DICOM> 
 </DICOM:Results> 
 </soapenv:Body> 
 </soapenv:Envelope>

总结

本文通过两个应用场景实例完整的介绍了 IBM 医疗连接包对医学数字影像 DICOM 的功能支持,详细展示了如何使用 DICOM 节点来轻松完成对医学数字影像文件的传输、转换、路由、查询等操作,实现 PACS 系统间的集成。此外,IBM 医疗连接包还可以借助 MQTT、Worklight 等 IBM 其它产品实现对移动平台的支持,可以灵活实现各种不同的医疗解决方案。

大家感兴趣的内容
小伙伴最爱的新闻
小伙伴还关注了以下信息
小伙伴关注的焦点

小伙伴都在关注的热门词

芈月传 老司机玩法 萌乐网 黑科技 坐骑揭秘 三国令 铁血皇城 竞技场攻略 书剑恩仇录 披风玩法 装备强化攻略 野外BOSS玩法 全网曝光 赤壁传说 半回合制国 ACT 哥们网 天书世界 奇珍商城 热血战歌 传奇宝藏抽奖 门徒 范伟打天下 打开方式 门徒获取玩法 三大萌宠简介 新手攻略 挂机系统简介 材料副本 大海战 鸵鸟 大黑 激情玩法 门徒战力提升 万世 强化属性 上古降魔 提升战力 装备攻略 九阴绝学 品质推荐 老干妈 激战来袭 大黑游戏 新服亮点 福利多多 画江山 资料片 玩家 九阴真经 江湖儿女 真实场景 现实 虚拟 随机副本 风色轨迹 听天由命 ppwan 神助攻 武林秘药 激活八大脉门 九天劫变 猎命格 天问 大型PVP 花千骨 激战更尽兴 网易mumu 手游玩家 安卓模拟器 安卓 单挑群战 武侠传说 女神 孙尚香专访 胸猛抱团 新游 占山为王 跨服城战 蜀山战纪 剑雨江湖 攻略 实时VR交互 七大女神代言 酷炫走江湖 世界四大杀手 玩家专访 三国经典 大制作 好玩网页游戏 盘点 宇宙霸主 境界玩法 莽荒纪 勇闯难关 镜像副本 荒漠霸主 装备精通 三大战役 鹌小彦奇谈