使用 Bluemix 构建一个安全的 IoT 医疗解决方案,第 1 部分
LynEverard
8年前
<p>如果您有一个应用程序,该应用程序可以发送来自您的医生的关于您的心脏速率和其他医疗统计数据的通知,您会怎么做?这个由两部分组成的系列教程会介绍一家虚构的医疗中心,该医疗中心要求共享来自数千个心脏监控传感设备的数据。可穿戴监控设备被插入到一个 Android™ 设备中,后者会将传感器数据发送到内部部署系统。应用程序 (Heart Echoer) 的关于患者的部分会发送心跳数据、心电 (ECG) 图和呼吸率。该应用程序的关于医生的部分会接收并显示该数据,以便对它们进行评估。</p> <p>在第 1 部分中,您将学习如何使用 Bluemix® 中的 IBM® Watson IoT Platform 安全地将数据从心脏监控设备发送到内部部署医疗系统。患者数据和来自救治医生的后续通知是通过使用 MQTT 消息协议和 TLS V2.1 传输的。该解决方案使用了 Bluemix Secure Gateway 服务来连接到一个企业服务总线 (IBM Integration Bus Healthcare Pack V3.0)。IBM Integration Bus 将消息转换为 Health Level 7 (HL7) 格式,并将它们存储在一个企业数据存储库中。第 2 部分将展示如何设计和实现该解决方案。</p> <p>“ Bluemix 中的 Watson IoT Platform 提供了一个将设备和应用程序连接到云的安全方法。 ”</p> <h3>IoT 解决方案的安全挑战</h3> <p>医疗行业中的 IoT</p> <p>大型和小型医疗机构都在使用 IoT 工具和设备以独特的方式彻底改善医疗服务。越来越多的医疗传感器设备(其中不乏可穿戴设备)开始直接与医疗系统相集成。这些设备包括血糖监测仪、心电监护仪、脉搏血氧仪和血压计。根据 Gartner 和 McKinsey 的调查,到 2020 年,IoT 会给全球经济带来 1.9 万亿美元的收益,或者到 2025 年,IoT 会带来 2.7 至 6.2 万亿美元的潜在影响。参阅 <a href="/misc/goto?guid=4959670613156053640" rel="nofollow,noindex">医疗保健和物联网</a> 。</p> <p>IoT 设备产生了大量不安全的数据。因此,安全性可能是希望实施 IoT 解决方案的医疗机构面临的最大挑战。无论数据是从智能手机、汽车、家电还是从工业传感器中传输过来的,任何端到端 IoT 解决方案都必须满足数据保密性、安全性、治理和信任方面的要求。</p> <p>医疗行业中使用的传感器设备需要通过使用身份验证、授权、传输层安全(加密通信)和联邦信息处理标准来保障其安全。因此,在与供应商、外包供应商、相关机构和患者接洽时,技术人员必须关注以下需求:</p> <ul> <li>必须安全地存储和传输传感器设备数据。</li> <li>企业系统必须是安全的,必须经过授权才能访问设备数据。</li> <li>用来连接软件和设备的 API 必须是安全的。</li> </ul> <p>阅读: <a href="/misc/goto?guid=4959670613256916607" rel="nofollow,noindex">保障 Watson IoT Platform 的安全</a></p> <p>阅读: <a href="/misc/goto?guid=4959670613371946423" rel="nofollow,noindex">Watson IoT Platform</a></p> <h3>用于应对安全挑战的 IBM Watson IoT Platform 服务</h3> <p>Bluemix 中的 Watson IoT Platform 提供了一个将设备和应用程序连接到云的安全方法。当设备已经注册或生成了 API 密钥,Watson IoT Platform 会提供身份验证令牌来建立连接。该服务允许设备通过以下方式安全地建立连接:</p> <ul> <li>客户端 ID 和身份验证令牌的独特组合,该组合只有您自己知道。</li> <li>通过 TLS V1.2 建立设备连接。</li> <li>MQTT V3.1.1,一个开放标准,允许跨多个平台和多种语言轻松地实现互操作性。</li> </ul> <p><a href="/misc/goto?guid=4959670613459659957" rel="nofollow,noindex">评估 Bluemix 中的 Watson IoT Platform</a></p> <h3>用于数据传输以及与医疗设备的集成的 IBM Integration Bus Healthcare Pack</h3> <p>IBM Integration Bus Healthcare Pack 构建于 IBM Integration Bus 之上,支持医疗环境中的应用。它包含以下功能:</p> <ul> <li>用于解析、路由和转换消息流中的 HL7 消息的消息模型。</li> <li>用于集成 HL7 临床应用程序与消息流的输入和输出节点。</li> <li>与医疗设备相集成,以便捕获数据。</li> <li>解决方案中使用的特定于医疗的模式,用于连接医疗应用程序。</li> <li>将数据传输到医疗应用程序的数据传输。</li> <li>审计活动,以支持患者信息保密性、数据完整性和用户责任。</li> <li>从消息流中的医疗数据中提取信息的能力,并将该信息发送到数据仓库进行分析。</li> </ul> <h2>医疗场景示例</h2> <p>FictLifeCenter 是一家虚构的位于美国的集中医疗中心。FictLifeCenter 希望每小时一次将数据从心脏监控传感器设备传送到其 IT 系统。该中心建议实现 Heart Echoer,这是一个 Android 应用程序,可以插入到监控设备中来捕获和发送数据。Heart Echoer 有两个部分:一部分针对医生,另一部分针对患者。</p> <p>该应用程序的关于患者的部分会发送心跳、心电波和呼吸率的传感器数据。该应用程序的关于医生部分会接收并显示数据进行评估。它还会列出所有已注册并分配给该医生的患者个人资料。患者会将监控设备连接到其胸部,Heart Echoer 应用程序会每小时捕获一次数据。所捕获的数据被转换成行业标准 HL7 格式。然后,通过使用 Watson IoT Platform 服务和 IBM Integration Bus Healthcare Pack 中的消息流,将数据集成到医疗系统中。</p> <p>FictLifeCenter 的注册医生会拉取每位患者的分析报告,检查患者的心脏状况。他会评估数据并发送一个通知。患者会收到建议患者是否去咨询家庭医生的一则通知。</p> <p>下图显示了医疗解决方案的工作流程顺序:</p> <p><img src="https://simg.open-open.com/show/38a89b5b6fa87ce204cf49bc7283eb67.jpg"></p> <p><img src="https://simg.open-open.com/show/ac9391a1c264290e3b79d039c9fb11b5.jpg" alt="使用 Bluemix 构建一个安全的 IoT 医疗解决方案,第 1 部分" width="550" height="309"></p> <p>工作流程的顺序是:</p> <ul> <li>患者可以通过 FictLifeCenter 呼叫中心进行离线注册并接收登录凭证。</li> <li>患者将心脏监控传感器设备连接到他的胸部,并在其移动设备上打开 Heart Echoer 应用程序。设备信息被登记到云中,凭证被本地存储在移动设备上。注册是一个一次性的活动,只在患者第一次打开应用程式时需要注册。</li> <li>患者登录访问 FictLifecenter 的 Heart Echoer 服务。他可以选择一项或多项服务:心跳速率、心电情况和呼吸率。</li> </ul> <ul> <li>根据每个服务的设置(开或关),传感器开始采用 HL7 格式每小时向 FictLifeCenter 发送一次心脏健康数据。</li> <li>FictLifeCenter 将传感器医疗数据持续保存到其医疗数据存储中。</li> <li>医生使用 Heart Echoer 应用程序来显示其名下注册的所有患者的列表。</li> <li>当医生选中一个患者姓名和日期时,该应用程序会检索并显示该患者的分析报告(来自医疗数据存储)。</li> <li>医生会评估心脏数据,然后使用该应用程序向患者发送一则通知。该服务的开关在患者的应用程序中必须设置为 ON。</li> <li>患者会收到关于其心脏状况的通知(OK 或 NOT OK - Visit Doctor)。</li> </ul> <h2>Heart Echoer Android 应用程序的用户界面</h2> <p>Heart Echoer Android 应用程序的用户界面包括:一个针对患者和医生的登录页面、一个针对患者的服务选择页面、一个发送通知的页面和一个收到通知的页面。</p> <h3>登录页面(患者应用程序)</h3> <ul> <li>患者通过联系 FictLifeCenter 的呼叫中心来完成脱机注册。</li> <li>在患者首次打开 Heart Echoer 应用程序时,已向 Watson IoT Platform 注册的设备如下图所示 [1]。传感器设备必须物理插入移动设备。</li> <li>登录页面显示了 Plug-in Heart Echoer Device 的 ON|OFF 开关。在下图中,开关被设置为 ON [1]。</li> <li>患者登录到应用程序,如下图所示 [2]。</li> </ul> <p><img src="https://simg.open-open.com/show/ef0a81a67f1b3ea69826f9a6f524e192.png"></p> <h3>服务选择页面(患者应用程序)</h3> <ul> <li>在登录后,患者可以查看服务选择页面。患者需要将传感器设备插入移动设备。</li> <li>患者该设备的设置切换到 ON,如下图所示 [1]。患者选择他想收到相关通知的一项或多项服务(心跳、心电图和呼吸),如图所示 [2]。</li> <li>对于患者选择的每项服务,传感器数据被发送到医疗保健中心(以 HL7 消息格式),由医生进行评估。</li> <li>医生在评估数据之后会发送一个通知。患者接收该通知,如果 Notification 开关为 ON,患者可以查看结果,如图中所示 [3]。</li> <li>最初,没有任何信息显示在服务通知页面中,如图中所示 [4]。</li> </ul> <p><img src="https://simg.open-open.com/show/ba16dbe913fa09fbce2570879615e8ad.jpg"></p> <h3>患者选择页面(医生应用程序)</h3> <p>当医生打开 Heart Echoer 应用程序时,患者选择页面就会打开。</p> <ul> <li>医生可以查看其名下注册的患者的列表。</li> <li>要在一个 PDF 窗口中查看心跳、心电图和呼吸数据,医生可以点击某位患者的报告按钮,如下图所示 [1]。</li> <li>然后医生可以评估该报告。</li> <li>医生可以选择患者的姓名(在图中所示 [2])来查看患者的详细信息,然后向该患者发送一则通知(OK 或 Not-OK)。</li> </ul> <p><img src="https://simg.open-open.com/show/cba7f06dfa4c61fc044dbceab1fbe56d.jpg"></p> <h3>发送通知的页面(医生应用程序)</h3> <p>医生选择一位患者,查看您该患者的心脏数据报告,评估数据,然后根据患者选择的服务发送一则通知。</p> <ul> <li>在医生查看患者的详细信息后,他可以表明他对每个服务的评估结果。</li> <li>如果他对某项服务点击 <strong>x</strong> ,那么发送的通知就是 Not OK ,患者需要去看医生。</li> <li>如果医生对某项服务点击复选标记 (✔),那么发送的通知就是 OK 。</li> <li>如下图所示 [1],患者的心电图有问题,但心跳和呼吸率都是正常的,如图所示 [2]。</li> <li>医生可以点击 <strong>Send Notification</strong> 向患者发送通知,如图所示 [3]。</li> </ul> <p><img src="https://simg.open-open.com/show/ef6e1c87a5b1d9197af062a7a635ad70.jpg"></p> <h3>接收通知的页面(患者应用程序)</h3> <p>患者会收到指示其心脏状况是否正常的通知(根据他所选择的心脏监控服务)。</p> <ul> <li>在医生发送通知之后,患者可以查看结果。Notification 开关必须设置为 ON,如下图所示 [1]。</li> <li>结果是 OK 或 Not OK – Visit Doctor ,如图所示 [2]。</li> </ul> <p><img src="https://simg.open-open.com/show/af6e3d4a7454b2b26318017148a8c883.png"></p> <h2>FictLifeCenter 技术解决方案</h2> <p>FictLifeCenter 医疗解决方案的核心基于 IBM Bluemix 服务的内置技术。它使用了 Watson IoT Platform、SSO、Node-RED 和 Secure Gateway 服务,如下图所示。Android 应用程序(适用于患者和医生)和 IBM Integration Bus 是外部系统。它们通过使用底层 MQTT 和 HTTP 协议连接到核心。</p> <p><img src="https://simg.open-open.com/show/857474e815564c8c71e56a8388c34e0c.jpg"></p> <p><img src="https://simg.open-open.com/show/e9f9327034c8c668122b7afce459010c.jpg" alt="使用 Bluemix 构建一个安全的 IoT 医疗解决方案,第 1 部分" width="550" height="300"></p> <h3>架构概述</h3> <p>下图显示了医疗解决方案的架构模型。</p> <p><img src="https://simg.open-open.com/show/d3950efaa3f75ee8a6f678b1249a564e.jpg"></p> <p><img src="https://simg.open-open.com/show/4410a84ad370aaad3bdf948a77279a76.jpg" alt="使用 Bluemix 构建一个安全的 IoT 医疗解决方案,第 1 部分" width="550" height="284"></p> <p>The sequence of activities is:</p> <ul> <li>Heart Echoer Android 应用程序(患者和医生版本)是作为一个设备向 Watson IoT Platform 进行注册的。注册信息通过使用 SQLLite 存储在一个 Android 本地存储中。</li> <li>在该解决方案中,患者是通过使用 Bluemix SSO 服务和安全断言标记语言 (SAML) 身份提供者 (IdP) 进行身份验证的。您可以使用您喜爱的登录机制。Bluemix SSO 目前不支持移动。</li> <li>患者应用程序: <ul> <li>使用设备 ID 和身份验证令牌连接到 Watson IoT Platform。</li> <li>订阅特定主题,以接收来自某个医生的通知。</li> <li>接收来自传感器设备的心脏传感器消息,并采用 HL7 格式将它们发布到 Watson IoT Platform。</li> </ul> </li> <li>Bluemix Node-RED 应用程序通过使用 Watson IoT Platform 输入节点来接收传感器数据。应用程序通过使用 MQTT 输出节点将数据发布到 FictLifeCenter MQTT Broker 端点。</li> <li>该通信使用了 Bluemix 中的 Secure Gateway Service 与一个企业 MQTT Broker 端点。</li> <li>IBM Integration Bus 消息流会接收消息,在 IBM Integration Bus Healthcare Pack 的帮助下转换消息,并将信息存储在数据库中。</li> <li>Cognos® BI Report Studio 被用于分析转换后的数据,并准备了一份报告。</li> <li>医生会访问某个特定患者的报告并评估数据。</li> <li>医生使用应用程序,通过一个特定的主题向 Bluemix Watson IoT Platform 发布一则通知。患者应用程序将会接收并显示该通知。</li> <li>所有 REST API 都被开发和部署到企业应用服务器中。</li> </ul> <p>阅读: <a href="/misc/goto?guid=4958833033556297313" rel="nofollow,noindex">Node-RED</a></p> <p>阅读: <a href="/misc/goto?guid=4959670613562381057" rel="nofollow,noindex">开源 HAPI</a></p> <p><a href="/misc/goto?guid=4959670613655726503" rel="nofollow,noindex">在 Bluemix 中试用 Node-RED</a></p> <h3>组件协作模式</h3> <p>下图显示了 FictLifeCenter 解决方案的组件以及它们彼此之间的关系。</p> <p><img src="https://simg.open-open.com/show/e02b1d37c44831d2fa39ebc767a0e923.jpg"></p> <p><img src="https://simg.open-open.com/show/50f02ed08181b748f033c87409ccb308.jpg" alt="使用 Bluemix 构建一个安全的 IoT 医疗解决方案,第 1 部分" width="550" height="324"></p> <p>下表描述了 FictLifeCenter 解决方案的每个组件。</p> <p>FictLifeCenter 解决方案组件的描述</p> <table cellspacing="0"> <thead> <tr> <th><strong>名称</strong></th> <th><strong>描述</strong></th> </tr> </thead> <tbody> <tr> <th><strong>Device Registrar</strong></th> <td>向 Bluemix 中的 Watson IoT Platform 注册 Health Echoer 传感器设备。将注册凭证存储在移动设备的应用程序存储中。</td> </tr> <tr> <th><strong>Heart Echoer UI (Patient/Physician)</strong></th> <td>针对患者和医生的基于 Android 的应用程序的用户界面。</td> </tr> <tr> <th><strong>Login</strong></th> <td>在 FictLifeCenter 医疗中心处理患者身份验证。</td> </tr> <tr> <th><strong>Sensor Data Receiver</strong></th> <td>收集来自 Heart Echoer 的传感器数据(心跳、心电图和呼吸率),并将它们转换为移动应用程序中的 HL7 消息。</td> </tr> <tr> <th><strong>Sensor Data Publisher</strong></th> <td>将传感器数据转换为 HL7 格式,然后使用特定的主题将该数据发布到 Watson IoT Platform。</td> </tr> <tr> <th><strong>Patient mobile app MQTT Client</strong></th> <td>通过使用 TLS,利用用户 ID 和密码来安全地连接到 Watson IoT Platform 云服务。</td> </tr> <tr> <th><strong>Sensor Data Subscriber</strong></th> <td>一个 Node-RED 应用程序,它将所有发布的传感器设备消息都收入到 Watson IoT Platform 服务中。标识患者的移动传感器信息。</td> </tr> <tr> <th><strong>Watson IoT Platform Cloud (Bluemix component)</strong></th> <td>Watson IoT Platform 的云组件。</td> </tr> <tr> <th><strong>Physician's Notification Subscriber</strong></th> <td>订阅 Watson IoT Platform 云中的特定主题并接收医生的消息(如果有)。将消息传递给 Health Echoer 应用程序,以便获得患者 UI 组件。</td> </tr> <tr> <th><strong>Sensor Data Publisher for Enterprise Broker</strong></th> <td>通过来自 Bluemix 的 Bluemix Secure Gateway 连接器将传感器数据(HL7 格式)发布到企业 MQTT Broker。</td> </tr> <tr> <th> <p>Secure gateway Docker Client</p> <p>(Ready Component)</p> </th> <td>一个安装在企业网络的 DMZ 服务器中的内置组件。通过 Secure Gateway 服务,使用 Docker 容器功能访问来自 Bluemix 公共云的企业端点。</td> </tr> <tr> <th><strong>Sensor Message Subscriber</strong></th> <td>订阅了某个特定主题的 IBM Integration Bus 消息流。接收传感器消息(HL7 格式),并将消息写入 WebSphere® MQ 队列。</td> </tr> <tr> <th><strong>Sensor Message Parser</strong></th> <td>从 WebSphere MQ 队列中获取传感器消息的 IBM Integration Bus 消息流。通过使用 IBM Integration Bus 解析消息。对扩展的结构化查询语言 (ESQL) 使用 HL7 转换模式,并将消息存储在一个数据库中。</td> </tr> <tr> <th><strong>Medical Data Storage</strong></th> <td>持久性区域,是 Sensor Message Parser 的一部分。用于将解析后的数据存储到所需的数据库模式中。</td> </tr> <tr> <th><strong>Patient Data Storage</strong></th> <td>持久性区域,保存患者数据和人口统计详细信息(例如,患者姓名、ID、住址、家庭医生 ID 和健康卡 ID)。</td> </tr> <tr> <th><strong>Patient Data Puller</strong></th> <td>从数据库中检索某个医生 ID 的所有注册患者并显示列表。</td> </tr> <tr> <th><strong>Patient Medical Data Report generator</strong></th> <td>检索某位患者的心脏数据,生成一个分析报告并显示它。</td> </tr> <tr> <th><strong>Physician's Notification Publisher</strong></th> <td>在医生应用程序中,向 Watson IoT Platform 云发布通知,后者随后将该通知发送给患者应用程序。</td> </tr> <tr> <th><strong>Physician Mobile App MQTT Client</strong></th> <td>在医生应用程序中,通过 MQTT 协议,利用用户 ID 和身份验证令牌安全地连接到Watson IoT Platform 云。</td> </tr> </tbody> </table> <h2>结束语</h2> <p>在本教程(第 1 部分)中,您学习了如何通过使用 Bluemix 中的 IBM Watson IoT Platform,安全地将来自医疗传感器设备的数据传输到企业系统。在示例解决方案中,连接到心脏监控设备的 Android 应用程序将患者的数据传输到了一个假想的医疗中心。该解决方案使用了 Bluemix Secure 服务和 IBM Integration Bus Healthcare Pack。在第 2 部分中,您将学习如何设计和实现该解决方案的每个组件。</p> <p>致谢</p> <p>作者非常感谢 IBM 认证的 IT 架构师 Jay Patro 和 IBM 认证的 IT 专家 Radha Mohan Dey 对本教程的巨大贡献,以及他们的重要评论和建议。</p> <p>相关主题: <a href="/misc/goto?guid=4959670613732936113" rel="nofollow,noindex">MessageSight 和移动设备</a></p> <p>相关主题: <a href="/misc/goto?guid=4959670613817843626" rel="nofollow,noindex">使用 MessageSight 实现高可用性</a></p> <p>来自: <a href="/misc/goto?guid=4959670613904757289" rel="nofollow">http://www.ibm.com/developerworks/cn/websphere/library/techarticles/1603_chowdhury-bluemix-trs/1603_chowdhury.html?ca=drs-</a></p>