99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>用于遠(yuǎn)程健康監(jiān)測(cè)和與醫(yī)療保健系統(tǒng)的集成

用于遠(yuǎn)程健康監(jiān)測(cè)和與醫(yī)療保健系統(tǒng)的集成

2022-11-28 | zip | 0.33 MB | 次下載 | 免費(fèi)

資料介紹

描述

它是什么

該概念驗(yàn)證展示了如何制造低成本設(shè)備,用于遠(yuǎn)程健康監(jiān)測(cè)和與醫(yī)療保健系統(tǒng)的集成。預(yù)期的應(yīng)用是:

  • 對(duì)高?;颊哌M(jìn)行臨時(shí)遠(yuǎn)程監(jiān)控,例如疑似 COVID-19 感染。
  • 用于大型醫(yī)院住院患者的可穿戴無(wú)線監(jiān)視器,由于墻壁厚且面積大,現(xiàn)有無(wú)線覆蓋(wifi、藍(lán)牙)不可靠。低能耗設(shè)備通過(guò)與現(xiàn)有醫(yī)院電子健康記錄系統(tǒng) (EHR) 的數(shù)據(jù)集成,為持續(xù)監(jiān)測(cè)患者提供了新的機(jī)會(huì)。
  • 無(wú)需傳統(tǒng)的有線或無(wú)線基礎(chǔ)設(shè)施即可對(duì)居住在療養(yǎng)院的患者進(jìn)行生命體征監(jiān)測(cè)。與現(xiàn)有市政或初級(jí)健康記錄系統(tǒng)的數(shù)據(jù)集成。
  • 無(wú)需安裝網(wǎng)絡(luò)基礎(chǔ)設(shè)施即可對(duì)居家護(hù)理患者進(jìn)行醫(yī)療和安全監(jiān)控。城市和全國(guó)的低功耗廣域網(wǎng)覆蓋消除了現(xiàn)有的家庭健康監(jiān)測(cè)限制。
poYBAGOAa9OASmdWAADwN44gLfQ620.jpg
Azure IoT Central 設(shè)備視圖
?

這與其他 COVID-19 檢測(cè)解決方案有何不同

在最近的黑客馬拉松中,許多項(xiàng)目都專注于通過(guò)測(cè)量 SPO2、心率、溫度等來(lái)檢測(cè) COVID-19 癥狀。該項(xiàng)目為如何將這些數(shù)據(jù)提供給醫(yī)療保健提供者提供了一個(gè)實(shí)用的解決方案,以便可以采取適當(dāng)?shù)拇胧?/font>這些設(shè)備可以使用相同的電池運(yùn)行數(shù)月。

懷疑感染 COVID-19 的患者可以通過(guò)互聯(lián)網(wǎng)或電話聯(lián)系當(dāng)?shù)匦l(wèi)生服務(wù)機(jī)構(gòu),并在第二天通過(guò)郵件發(fā)送設(shè)備。然后,患者將定期使用該設(shè)備,并將測(cè)量結(jié)果直接發(fā)送到她的電子健康記錄中,直到她被認(rèn)為健康或需要醫(yī)療護(hù)理。

?

借助 LoRaWAN,可以以目前可用的最低投資覆蓋城市和整個(gè)國(guó)家。一個(gè) 300 歐元的網(wǎng)關(guān)可以覆蓋 10 多公里的半徑,在農(nóng)村地區(qū)可以覆蓋 20 多公里。我?guī)椭业募亦l(xiāng)與只有幾個(gè)網(wǎng)關(guān)的愛(ài)好者一起報(bào)道了我的家鄉(xiāng)。

poYBAGOAa9mAOlElAADCGY1T3mE935.jpg
LoRaWAN 的低成本物聯(lián)網(wǎng)覆蓋
?

我相信一個(gè)開(kāi)放的、社區(qū)構(gòu)建的網(wǎng)絡(luò),例如The Things Network 。與數(shù)千個(gè)單獨(dú)的專用網(wǎng)絡(luò)相比,這種可能性是無(wú)與倫比的。還有其他用于構(gòu)建專用網(wǎng)絡(luò)的選項(xiàng),例如使用The Things Industries Enterprise或其他完全自定義的實(shí)現(xiàn)。

我的背景

自 2004 年以來(lái),我一直是北歐主要電子醫(yī)療記錄系統(tǒng)的系統(tǒng)開(kāi)發(fā)人員。我后來(lái)的特別興趣是物聯(lián)網(wǎng)和低功耗、遠(yuǎn)程設(shè)備可以為遠(yuǎn)程醫(yī)療做什么。這些都是我自己的觀點(diǎn)和作品。

問(wèn)題

整合:僅在一個(gè)國(guó)家,您就會(huì)發(fā)現(xiàn)數(shù)百個(gè)不同的醫(yī)療保健系統(tǒng),涵蓋私立和國(guó)立醫(yī)院、初級(jí)保健診所和市政服務(wù),例如家庭護(hù)理、兒童/家庭健康診所,以及眾多不同類型的??圃\所。由于健康相關(guān)領(lǐng)域眾多、復(fù)雜性和組織差異,這些系統(tǒng)和機(jī)構(gòu)之間的醫(yī)療記錄交換通常落后于其他行業(yè)。再加上跨越各國(guó)醫(yī)療保健語(yǔ)言、文化和傳統(tǒng)的復(fù)雜性,很快就會(huì)發(fā)現(xiàn),創(chuàng)建將傳感器數(shù)據(jù)映射到每個(gè)其他醫(yī)療保健系統(tǒng)的臨床數(shù)據(jù)結(jié)構(gòu)的自定義集成是一項(xiàng)不可能完成的任務(wù)。

溝通:容易獲得或提出的解決方案都依賴于對(duì)設(shè)備的實(shí)用性施加很大限制的通信技術(shù)。如果設(shè)備的使用壽命超過(guò)幾天,則 Wifi 需要比電子設(shè)備本身更大的電池。該范圍降低了室內(nèi)應(yīng)用的可用性,即使在醫(yī)院內(nèi),基礎(chǔ)設(shè)施也很復(fù)雜、成本很高,而且覆蓋率通常不是 100%。不過(guò),最大的擔(dān)憂是如何處理 wifi 憑據(jù)。我沒(méi)有看到適用于少數(shù)幾個(gè)已知網(wǎng)絡(luò)的解決方案,并且通常根本不處理離線管理。藍(lán)牙/BLE 是對(duì)電池節(jié)省的巨大改進(jìn),但對(duì)范圍的嚴(yán)格限制會(huì)減少與手機(jī)配對(duì)的使用。這種配對(duì)適用于擁有此類手機(jī)的世界人口中的低比例,但它在醫(yī)療機(jī)構(gòu)環(huán)境中不起作用。醫(yī)生根本無(wú)法監(jiān)控診所或醫(yī)院中不斷涌現(xiàn)的患者,更不用說(shuō)以這種方式進(jìn)行家庭護(hù)理了。

電池壽命:醫(yī)療保健提供者依靠大量不同的便攜式設(shè)備來(lái)監(jiān)測(cè)患者的生命體征。例如體溫計(jì)、心率監(jiān)測(cè)器、心電圖監(jiān)測(cè)器、數(shù)字血壓計(jì)等等。他們中的大多數(shù)人的共同點(diǎn)是它們?cè)诖罅渴褂脮r(shí)可靠,并且可以持續(xù)數(shù)月而無(wú)需充電或更換電池。然而,它們不與任何電子醫(yī)療記錄系統(tǒng)連接,并且依賴于將測(cè)量值寫入筆記或以活頁(yè)夾的形式寫入醫(yī)療圖表。測(cè)量結(jié)果通常會(huì)以口頭方式傳達(dá),直到護(hù)士輪班結(jié)束,然后最終將其輸入電子記錄。連接的設(shè)備必須相對(duì)于未連接的設(shè)備持續(xù)使用。

解決方案

pYYBAGOAa-SAN-sPAAEE7WfOy6g853.png
設(shè)備原型
?

一體化:

幸運(yùn)的是,在過(guò)去十年中,人們?cè)趧?chuàng)建可用于模擬臨床事件、測(cè)量、診斷和資源的標(biāo)準(zhǔn)方面付出了巨大的努力。這些標(biāo)準(zhǔn)有不同的目標(biāo):

  • 相似和不同的醫(yī)療保健系統(tǒng)之間的互操作性
  • 系統(tǒng)內(nèi)臨床數(shù)據(jù)的結(jié)構(gòu)化和動(dòng)態(tài)持久性

這個(gè)概念驗(yàn)證的目的是展示創(chuàng)建新設(shè)備的能力,這些設(shè)備依賴于這些標(biāo)準(zhǔn)來(lái)與已建立的系統(tǒng)交換測(cè)量值,而不是比較標(biāo)準(zhǔn)。我個(gè)人認(rèn)為,在緊迫的情況下,最好選擇一個(gè)標(biāo)準(zhǔn),而不是依賴每個(gè)系統(tǒng)的自定義集成。如果需要,從一個(gè)標(biāo)準(zhǔn)映射到另一個(gè)標(biāo)準(zhǔn)更容易實(shí)現(xiàn)。在這個(gè)項(xiàng)目中,我專注于openEHR和快速醫(yī)療保健互操作性資源 ( FHIR )

通信LoRaWAN 已被確立為遠(yuǎn)程、低功耗傳感器應(yīng)用的實(shí)用、低成本和獨(dú)立替代方案。Combined with an appropriate selection of microcontrollers, sensors, actuators and displays battery life of months and years is achievable. NB-IoT 是此應(yīng)用程序的另一個(gè)合適選擇,您可以查看我之前的項(xiàng)目進(jìn)行比較。這個(gè) PoC 的整體架構(gòu)與通信的選擇無(wú)關(guān),我認(rèn)為應(yīng)該為各個(gè)應(yīng)用程序選擇正確的工具。

?

電池壽命:為了實(shí)現(xiàn)數(shù)月或數(shù)年的電池壽命,我為這個(gè)項(xiàng)目精心選擇了組件:

  • 具有超低電流消耗的微控制器
  • lpwan(LoRaWAN 或 NB-IoT)作為數(shù)據(jù)載體。
  • 低電流消耗的傳感器。本項(xiàng)目中使用的 MAX30101 是一個(gè)不錯(cuò)的選擇,分線只是為了便于原型設(shè)計(jì)。該項(xiàng)目可能會(huì)使用更多的節(jié)能傳感器進(jìn)行發(fā)展。
  • eInk 顯示在更新之間不消耗電流。顯示將在使用之間保持不變。

服務(wù)架構(gòu)

只要流量低,該項(xiàng)目中使用的所有服務(wù)都可以免費(fèi)使用。我認(rèn)為您可以在免費(fèi)層中部署足夠的設(shè)備來(lái)執(zhí)行有價(jià)值的測(cè)試。

服務(wù)的架構(gòu)和選擇是以下要求和所需功能的結(jié)果:

  • lpwan-agnostic到目前為止,我已經(jīng)構(gòu)建了依賴 LoRaWAN、NB-IoT 和 Wifi 的設(shè)備。隨著技術(shù)的發(fā)展,我希望對(duì)新型通信盡可能開(kāi)放。
  • 可擴(kuò)展性:我希望能夠盡可能多地改變系統(tǒng)的行為,而不需要大量的開(kāi)發(fā)周期。某些部件不太可能需要更改,并且可以針對(duì)速度和低資源要求進(jìn)行優(yōu)化。
  • 最終用戶定制:允許預(yù)期的醫(yī)療機(jī)構(gòu)定制視圖、規(guī)則和未來(lái)的擴(kuò)展使用。這將是診所和醫(yī)院的 IT 管理員。實(shí)際的最終用戶、臨床醫(yī)生不需要知道來(lái)自設(shè)備的數(shù)據(jù)是如何進(jìn)入電子醫(yī)療記錄的。
  • Azure IoT Central:我已經(jīng)使用 Azure IoT Hub 幾年了。Azure IoT Central 建立在此之上,我想使用這個(gè)項(xiàng)目來(lái)看看我能在多大程度上利用這個(gè)很好的抽象來(lái)解決所提出的問(wèn)題。這可以通過(guò)隱藏有關(guān) IoT 中心、分析等的許多復(fù)雜性來(lái)加快實(shí)施時(shí)間。
  • 與技術(shù)無(wú)關(guān)的集成:盡可能依賴 REST/JSON、gRPC/Protocol Buffers、MQTT、OAuth 等標(biāo)準(zhǔn)與每個(gè)外部醫(yī)療保健系統(tǒng)集成。這將為盡可能多的系統(tǒng)類型提供最佳選擇,并始終為不支持這些標(biāo)準(zhǔn)的遺留系統(tǒng)提供中間集成。

申請(qǐng)流程

這將是為該項(xiàng)目迭代制作的設(shè)備中的標(biāo)準(zhǔn)流程:

1. 設(shè)備通過(guò) LoRaWAN 進(jìn)行身份驗(yàn)證并將測(cè)量結(jié)果發(fā)送到物聯(lián)網(wǎng) (TTN)。

2. TTN 應(yīng)用程序?qū)?shù)據(jù)轉(zhuǎn)換為結(jié)構(gòu)化消息并調(diào)用托管在 Azure 中的 webhook。

3. 托管的 Azure IoT Central 網(wǎng)橋作為 Azure Functions HTTP 觸發(fā)器(應(yīng)用服務(wù))運(yùn)行,并從 TTN 中提取相關(guān)信息。然后,此信息將作為消息發(fā)布到 Azure IoT Central。

4. 在 IoT Central 中,我可以轉(zhuǎn)換數(shù)據(jù)并為進(jìn)一步處理、過(guò)濾和規(guī)則制作漂亮的模板。從這里我可以為不同類別的設(shè)備定義規(guī)則,并讓新消息觸發(fā) webhook 以集成到外部醫(yī)療保健系統(tǒng)。

5. webhook 是無(wú)服務(wù)器 Azure 函數(shù),可將設(shè)備消息中的值轉(zhuǎn)換為 openEHR 或 FHIR 格式。然后將這些格式發(fā)布到具有特定授權(quán)和其他要求的外部電子醫(yī)療記錄系統(tǒng)。在這個(gè)項(xiàng)目中,我使用了一個(gè)Google Healthcare API的實(shí)例作為一個(gè)虛構(gòu)醫(yī)院的外部 EHR 示例。

6. 外部 EHR 以 openEHR 或 FHIR 格式接收測(cè)量結(jié)果并根據(jù)需要進(jìn)行處理。

7. 外部醫(yī)療保健提供者的臨床醫(yī)生現(xiàn)在可以在患者記錄中找到測(cè)量值。

之前的項(xiàng)目中,我已經(jīng)演示了如何用 NB-IoT 和一些移動(dòng)運(yùn)營(yíng)商提供的平臺(tái)代替第 1 點(diǎn)和第 2 點(diǎn)。

第 4 點(diǎn)提出了一種可能性,即提供外部系統(tǒng)可以訂閱的 pub/sub 代理,但我尚未對(duì)此進(jìn)行探索。

用于 FHIR 的 Azure API

為什么我沒(méi)有使用Azure API for FHIR而不是 Google Healthcare API?上次我為 FHIR 設(shè)置 Azure API 實(shí)例時(shí),我每月分配的 Azure 積分在兩周內(nèi)用完。我認(rèn)為這是服務(wù)流程中的錯(cuò)誤。我寧愿在這個(gè)項(xiàng)目中同時(shí)使用兩者,以進(jìn)一步證明我的觀點(diǎn)。由于時(shí)間限制和服務(wù)器資源使用的不確定性,我選擇了安全選項(xiàng)。一旦時(shí)間允許,我會(huì)進(jìn)行新的嘗試。

poYBAGOAa_SASNNwAABS7wZi8dA051.jpg
用于 FHIR 的 Azure API
?

openEHR 實(shí)例

我還希望演示與 openEHR 界面的集成。我還沒(méi)有找到免費(fèi)測(cè)試實(shí)例的提供者。然而,我計(jì)劃將此 PoC 與我專業(yè)開(kāi)發(fā)的 EHR 系統(tǒng)提供的 openEHR 界面集成。

執(zhí)行

硬件

物料清單

工具

這些是可選的,但對(duì)于調(diào)試和理解組件之間發(fā)生的事情以及優(yōu)化節(jié)能非常方便

原理圖

pYYBAGOAa_aAJlOeAADZsO0I07Q268.png
原理圖
?

設(shè)備代碼

該設(shè)備的代碼可以在存儲(chǔ)庫(kù)中找到。它分為兩個(gè)文件,其中secrets.h包含 The Things Network 的網(wǎng)絡(luò)和應(yīng)用程序密鑰。

為了省略將私有憑據(jù)添加到源代碼存儲(chǔ)庫(kù),我執(zhí)行了以下操作:我創(chuàng)建了一個(gè)文件 secrets.h 并添加了占位符密鑰。然后我提交并將其推送到倉(cāng)庫(kù)。此外,我運(yùn)行了以下命令以忽略進(jìn)一步的更改:
git update-index --assume-unchanged secrets.h
現(xiàn)在我可以添加真正的密鑰,而無(wú)需 git 嘮叨未分級(jí)的更改。當(dāng)然,現(xiàn)在這些值只存在于您的本地計(jì)算機(jī)上。我還沒(méi)有找到一種很好的方式來(lái)使用公共存儲(chǔ)庫(kù),同時(shí)仍然保留一些秘密,請(qǐng)?zhí)岢鼋鉀Q方案。

我不會(huì)列出設(shè)備的整個(gè) Arduino 代碼,而是指出一些感興趣的領(lǐng)域,并將源代碼留給您。

蚱蜢開(kāi)發(fā)板

Grasshopper 是集成 LoRa 無(wú)線電的低功耗開(kāi)發(fā)板的不錯(cuò)選擇。在此處找到全面的描述、設(shè)置說(shuō)明、示例代碼和訂購(gòu)信息您可以自己生產(chǎn) PCB并組裝組件。

poYBAGOAa_mABuEUAADDM_jSBas888.png
面包板有助于在焊接過(guò)程中對(duì)齊排針
?

對(duì)于具有平行引腳排列行的 PCB 焊接頭,我建議使用面包板進(jìn)行對(duì)齊。只是不要加熱引腳太久,否則面包板上的插座會(huì)融化。

pYYBAGOAa_2AdCNuAADWhUKeRTU277.png
優(yōu)質(zhì)的焊臺(tái)讓焊接成為一種有趣的體驗(yàn)
?

有關(guān)低功耗開(kāi)發(fā)的替代開(kāi)發(fā)板和深入指南,請(qǐng)查看我的郵箱傳感器項(xiàng)目。

電子墨水顯示屏

一旦我弄清楚接線,顯示代碼就是一項(xiàng)快速的工作。我在 Adafruit依靠這個(gè)出色的指南為了弄清楚接線,我必須閱讀Grasshopper 的原理圖才能找到 SPI 引腳。我使用帶有 SPI 串行解碼功能的示波器來(lái)驗(yàn)證我有正確的引腳并且信號(hào)看起來(lái)在范圍內(nèi)。

poYBAGOAbACANy_BAAEg60Hy80g711.png
SPI串行解碼
?

?

pYYBAGOAbAKAQx7zAAD7vyTbnag735.png
SPI解碼
?

SPI 解碼需要示波器上有 4 個(gè)通道。

MAX30101傳感器

讀取 SPO2 和脈沖傳感器基于SparkFun 分線板提供的示例和庫(kù)。

我不得不移動(dòng)一個(gè)零歐姆 SMD 跳線來(lái)將電源從 5v 切換到 3v。一個(gè)精細(xì)的烙鐵頭非常有助于實(shí)現(xiàn)這一點(diǎn)。

pYYBAGOAbAWALIo5AADg0ENvUgE897.png
跳線設(shè)置為 5 伏
?

?

poYBAGOAbAiAL4nhAACeK3XedM0135.png
烙鐵頭
?

?

poYBAGOAbAuALbQsAABu10nFf88867.png
跳線設(shè)置為 3 伏
?

MAX30101 使用 I2C 進(jìn)行通信。這需要適當(dāng)?shù)纳侠?a target='_blank' class='arckwlink_none'>電阻值。在以前的指南中介紹了引體向上,請(qǐng)查看它們以獲取更多詳細(xì)信息。通過(guò)使用示波器進(jìn)行實(shí)驗(yàn)和測(cè)量,我確定了 1k2 歐姆值。

pYYBAGOAbA6AOKJZAABTRn9MojQ957.png
上拉電阻
?

傳感器對(duì)測(cè)量手指的位置和壓力??非常敏感。這就是您會(huì)在大多數(shù)屏幕截圖中看到明顯錯(cuò)誤讀數(shù)的原因。為了解決這個(gè)問(wèn)題,必須制作一個(gè)固定在手指上的適當(dāng)外殼。

定制外殼和原型制作的后續(xù)步驟

我最近做了一些類似的原型,我決定跳過(guò)下一步來(lái)創(chuàng)建一個(gè)更適合生產(chǎn)的原型。這將涉及從面包板移動(dòng)到可以安裝在 3D 打印外殼內(nèi)的 PCB 焊接三明治。我不認(rèn)為我會(huì)在這一步中學(xué)到足夠的知識(shí)來(lái)證明努力的合理性,而是開(kāi)始計(jì)劃創(chuàng)建一個(gè)單板 PCB,替換分線器。我還將開(kāi)始使用 SLA 3D 打印,以創(chuàng)建更接近最終產(chǎn)品的外觀更專業(yè)的外殼。這將是這個(gè)正在進(jìn)行的項(xiàng)目的下一個(gè)階段。

節(jié)電

由于時(shí)間限制,我沒(méi)有完成電源優(yōu)化的過(guò)程。當(dāng)該設(shè)備的電子設(shè)備最終確定為單板 PCB 時(shí),我將優(yōu)化代碼并將其共享到存儲(chǔ)庫(kù)中。以下是我以前的項(xiàng)目列表,展示了如何實(shí)現(xiàn)數(shù)月和數(shù)年的電池壽命:

?

請(qǐng)參閱Grasshopper 低功耗使用的具體細(xì)節(jié)。

服務(wù)

物聯(lián)網(wǎng)

按照本指南在 TTN創(chuàng)建一個(gè)新應(yīng)用程序。我們將假設(shè)您擁有現(xiàn)有的 LoRaWAN 覆蓋范圍或已通過(guò) TTN 設(shè)置您自己的網(wǎng)關(guān)。注冊(cè)您的設(shè)備,以便您可以訪問(wèn)必要的密鑰。我使用 OTAA 作為身份驗(yàn)證方法。

const char *appEui = "70B3D57ED00xxxxx";

const char *appKey = "9F147263E75F162820F6FF8890Bxxxxx";

pYYBAGOAbBCAepSdAACCIamlUzA307.jpg
物聯(lián)網(wǎng)設(shè)備
?

在 TTN 應(yīng)用程序中,我們需要定義一個(gè)腳本來(lái)解碼通過(guò) LoRa 從設(shè)備傳輸?shù)淖止?jié)。在 repo 中找到代碼并將其輸入到 Payload Formats (Custom) 下。

function Decoder(bytes, port) {

var decoded = {};

if (port === 1)

{

decoded.spo2 = bytes[0];

decoded.hr = bytes[1];

decoded.devtemp = (bytes[2]<<8 | bytes[3])/100;

decoded.voltage = (bytes[4]<<8 | bytes[5])/1000;

}

return decoded;

}

我們將不得不添加一個(gè)集成,一個(gè) webhook,它將為在 TTN 中收到的每條消息調(diào)用。此 webhook 的 url 是在 Azure IoT Central Bridge for The Things Network 下的步驟中創(chuàng)建的。

Azure 物聯(lián)網(wǎng)中心

推薦本指南以運(yùn)行新的空白 IoT Central 應(yīng)用程序。

poYBAGOAbBSAUX25AAEI9wjQwh8157.jpg
創(chuàng)建 Azure IoT Central 應(yīng)用程序
?

我為我的心率/SPO2 設(shè)備創(chuàng)建了一個(gè)新模板,并根據(jù)需要添加了功能。您可以在 repo 中找到模板并將其導(dǎo)入您自己的應(yīng)用程序中。

pYYBAGOAbBeAUk37AAD_LqHg3jU980.jpg
適用于 HR 和 SPO2 的 IoT Central 模板
?

已創(chuàng)建兩個(gè)云屬性以啟用用戶關(guān)聯(lián)。當(dāng)發(fā)給患者時(shí),設(shè)備需要以某種方式連接。對(duì)于此 PoC,這是直接在 IoT Central 自定義表單中完成的,但云屬性可通過(guò) IoT 中心 API 進(jìn)行操作。Encounter ID 是 FHIR 數(shù)據(jù)存儲(chǔ)中需要的快捷方式,但會(huì)被用于查找最合適的公開(kāi)遭遇或創(chuàng)建新遭遇的算法替換。患者 ID 是一個(gè) UUID,它將通過(guò)社會(huì)安全號(hào)碼或其他標(biāo)準(zhǔn)映射到外部系統(tǒng)中的患者。系統(tǒng)之間的非患者識(shí)別 ID 幾乎永遠(yuǎn)不會(huì)相同,因此這會(huì)帶來(lái)復(fù)雜性。這些問(wèn)題是我專業(yè)工作的很大一部分并且是可以解決的,我選擇在這個(gè) PoC 中簡(jiǎn)化它們。

pYYBAGOAbBmALcBtAACAX5y11vc963.jpg
每個(gè)設(shè)備的云設(shè)置
?

?

pYYBAGOAbByAe2QSAAEEsT5MWDc089.jpg
原始設(shè)備數(shù)據(jù)
?

用于物聯(lián)網(wǎng)的 Azure IoT Central Bridge

一旦 IoT Central 應(yīng)用程序運(yùn)行,就可以將其與物聯(lián)網(wǎng)連接起來(lái)。以前我必須從頭開(kāi)始,制作一個(gè) MQTT 客戶端,將設(shè)備消息轉(zhuǎn)發(fā)到 Azure IoT Hub。Microsoft 現(xiàn)在從 repo https://github.com/Azure/iotc-device-bridge提供了一個(gè)不錯(cuò)的部署腳本。

poYBAGOAbCGAXJKZAAGwDUrF1QE476.jpg
Azure IoT Central 設(shè)備橋
?
pYYBAGOAbCSABiVKAADPCvNWKmA107.jpg
Bridge 的部署模板
?

在 IoT Central 管理選項(xiàng)卡中找到您的 Scope ID 和 SAS 密鑰。

poYBAGOAbCaAHJdAAADoz1A18-A656.jpg
來(lái)自 IoT Central 應(yīng)用程序的憑據(jù)
?

我遇到的唯一問(wèn)題是,npm install要么似乎已經(jīng)停止,要么在運(yùn)行的幾個(gè)小時(shí)內(nèi)沒(méi)有完成。在沒(méi)有錯(cuò)誤反饋的情況下,我繼續(xù)該過(guò)程并從負(fù)責(zé)映射設(shè)備消息的 js 腳本中收到了一些奇怪的運(yùn)行時(shí)錯(cuò)誤。

pYYBAGOAbCiADaF3AABpT-Av7l0874.jpg
?

因此,請(qǐng)確保npm install報(bào)告成功,無(wú)論需要多長(zhǎng)時(shí)間。是的,并確保在運(yùn)行之前導(dǎo)航到控制臺(tái)中的正確文件夾!

poYBAGOAbCuABlrHAADE1oGdDp0677.jpg
npm 安裝
?

需要采取更多步驟將來(lái)自 TTN 的消息容納到底層 IoT 中心。本指南解釋了您需要做的所有事情。

所有這一切的結(jié)果是我們的 TTN 應(yīng)用程序可以為收到的每條消息調(diào)用一個(gè) HTTP 端點(diǎn)。

poYBAGOAbC2ANm4iAADlb9oKl1M826.jpg
網(wǎng)絡(luò)鉤子
?

希望您現(xiàn)在有消息從您的設(shè)備通過(guò) TTN 流入 IoT Central。Azure 有很多工具可用于查看指標(biāo)和錯(cuò)誤以找出問(wèn)題所在。有很多基礎(chǔ)需要覆蓋,并且根據(jù)您的背景,期望花一些時(shí)間來(lái)學(xué)習(xí)不同的機(jī)制。

使用Pipedream (以前的 RequestBin)作為調(diào)試工具來(lái)查看您的 webhook 發(fā)布的內(nèi)容并幫助反序列化 JSON 有效負(fù)載。
pYYBAGOAbDmARUp9AAFk5iHJRZs710.jpg
Pipedream 作為用于調(diào)試的 HTTP 端點(diǎn)
?

谷歌云醫(yī)療 API

最后,我們將在 IoT Central 中創(chuàng)建一個(gè)動(dòng)態(tài)規(guī)則,將每條消息傳遞給 Google Healthcare API 的一個(gè)實(shí)例。我將其用作在醫(yī)院運(yùn)行的實(shí)際外部電子醫(yī)療記錄系統(tǒng)的占位符,該系統(tǒng)符合FHIR 。在生產(chǎn)環(huán)境中,可以為每個(gè)外部系統(tǒng)創(chuàng)建一個(gè)規(guī)則,或者為每個(gè)集成添加一個(gè)操作。這是擴(kuò)展時(shí)的實(shí)用性問(wèn)題,而不是此 PoC 的主要焦點(diǎn)。請(qǐng)參閱我之前關(guān)于如何創(chuàng)建 Google Healthcare API 實(shí)例的文章。

需要填充我們將定位的 FHIR 數(shù)據(jù)存儲(chǔ)。這超出了本文的范圍,但存儲(chǔ)庫(kù)包含用于創(chuàng)建患者和遭遇的 PowerShell 腳本,以及列出、創(chuàng)建、修補(bǔ)和刪除觀察結(jié)果。文檔解釋了創(chuàng)建身份驗(yàn)證令牌的不同方法。

poYBAGOAbDuAEIXoAACSoR2gl-M923.jpg
谷歌云醫(yī)療 API
?

為了將來(lái)自每個(gè)設(shè)備的消息轉(zhuǎn)換為 FHIR 格式(或 openEHR),我們將創(chuàng)建一個(gè)無(wú)服務(wù)器 Azure Functions。該項(xiàng)目?jī)H支持幾種類型的臨床觀察,擴(kuò)展這對(duì)于簡(jiǎn)單的傳感器來(lái)說(shuō)是微不足道的。之前關(guān)于床位占用傳感器的項(xiàng)目演示了如何使用不同類型的資源狀態(tài)來(lái)執(zhí)行此操作。

為了創(chuàng)建函數(shù),我使用 Visual Studio 和 c#.net core 3 作為語(yǔ)言和運(yùn)行時(shí)。

pYYBAGOAbD-AUzU2AADPbhKVsCI215.jpg
Azure Functions HTTP 觸發(fā)器
?

我們需要一個(gè)可以從外部 webhook 調(diào)用的 HTTP 觸發(fā)器。相比之下,IoT 中心觸發(fā)器是一個(gè)函數(shù),它響應(yīng) IoT Central 的底層 IoT 中心上發(fā)布的消息。編寫此函數(shù)受益于一點(diǎn) c# 和 .net 經(jīng)驗(yàn)或類似經(jīng)驗(yàn),但您可能會(huì)從 repo 中復(fù)制代碼并進(jìn)行試驗(yàn)。

poYBAGOAbEyANrEYAAFC-MGipmE422.jpg
項(xiàng)目依賴
?

要訪問(wèn)適當(dāng)?shù)?Google Cloud API,我們需要通過(guò) NuGet 添加依賴項(xiàng);Google.Apis.CloudHealthcare(在撰寫本文時(shí)v1beta1,v1似乎是同步的)。

為了被允許調(diào)用 Web API,客戶端需要一種方法來(lái)提供憑據(jù)。我在 Google Healthcare 控制臺(tái)中創(chuàng)建了令牌,下載了 JSON 文件并將其嵌入到項(xiàng)目中。更合適和更安全的方法是將令牌存儲(chǔ)在 Azure Key Store 中并讓應(yīng)用程序檢索它。IoT Central Bridge 演示了這是如何完成的。該文件顯然從 repo 中省略了。

關(guān)于 Google Healthcare API 的注意事項(xiàng)

該 API 會(huì)自動(dòng)生成不同風(fēng)格的編程語(yǔ)言。對(duì)于 c#.net 版本,我想我一定是一個(gè)早期的適配器,因?yàn)榛竟δ懿黄鹱饔谩?/font>ReadRequest、CreateRequest 和 PatchRequest 在官方客戶端庫(kù)中都被破壞了您可以在我發(fā)布在存儲(chǔ)庫(kù)(#1522 、#1595 )上的問(wèn)題中找到錯(cuò)誤描述和解決方法。

簡(jiǎn)而言之,為了讓 CreateRequest 工作,我最終得到了以下代碼

string parent = $"projects/{ProjectId}/locations/{Location}/datasets/{DatasetId}/fhirStores/{FhirStoreId}";

Data.HttpBody createBody = new Data.HttpBody();

var createRequest =

cloudHealthcareService.Projects.Locations.Datasets.FhirStores.Fhir.Create(createBody, parent, "Observation");

JObject response = createRequest.SendAsJObjectAsync(createBody).Result;

其中 SendAsJObjectAsync 是一個(gè)擴(kuò)展方法:

public static async Task SendAsJObjectAsync(this ClientServiceRequest request, HttpBody requestBody){

var httpRequestMessage = request.CreateRequest();

httpRequestMessage.Content = new StringContent(requestBody.Data);

httpRequestMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/fhir+json");

var httpResponseMessage = await request.Service.HttpClient.PostAsync(httpRequestMessage.RequestUri.AbsoluteUri, httpRequestMessage.Content);

httpResponseMessage.EnsureSuccessStatusCode();

var responseText = await httpResponseMessage.Content.ReadAsStringAsync();

return JObject.Parse(responseText);}

部署功能

在最終將其部署到 Azure 之前,我使用PostmanFiddler開(kāi)發(fā)和調(diào)試了整個(gè)功能。

pYYBAGOAbE-AXn6SAABv0ez_BtE817.png
發(fā)布 Azure 函數(shù)
?

獲取網(wǎng)址

在 Azure 門戶中,您可以找到已部署的 Function 并轉(zhuǎn)到Get Function Url

pYYBAGOAbFGACgNBAABcIgBOhQI569.jpg
獲取函數(shù)地址
?

在 Azure IoT Central 規(guī)則中添加 webhook 操作

最后,在 IoT Central 中,我們將創(chuàng)建一個(gè)適用于 PulseOximeterTemplate 的規(guī)則。我將其稱為 PulseOximeterIntegrations,因?yàn)槲矣?jì)劃制定一個(gè)規(guī)則,每個(gè)集成都有多個(gè)操作。添加一個(gè)Action ,輸入Webhook ,然后使用上一步中的 url。請(qǐng)注意,您必須將設(shè)備模板的每個(gè)屬性和遙測(cè)數(shù)據(jù)添加為過(guò)濾器和條件。如果不是,它們將不會(huì)成為 webhook 中有效負(fù)載的一部分。我找不到這個(gè)記錄,如果這是預(yù)期的行為,這似乎有點(diǎn)奇怪。

結(jié)果

現(xiàn)在,當(dāng)設(shè)備讀取測(cè)量值時(shí),它會(huì)更新 eInk 顯示。在睡覺(jué)之前,它還會(huì)通過(guò) LoRaWAN 將值發(fā)送到 The Things Network。Azure IoT Central Bridge 從 TTN 集成中調(diào)用,并將轉(zhuǎn)換后的消息發(fā)布到底層 IoT 中心代理。該消息再次在 Azure IoT Central 中轉(zhuǎn)換并顯示在不同的視圖中。觸發(fā)規(guī)則,包含值的消息通過(guò) webhook 傳輸?shù)?Azure Functions,每個(gè)外部集成一個(gè)。這反過(guò)來(lái)將值轉(zhuǎn)換為 FHIR 消息,并通過(guò) HTTP 調(diào)用將其發(fā)布到 Google Cloud Healthcare 的實(shí)例。我沒(méi)有時(shí)間在 Google Cloud Healthcare 上創(chuàng)建應(yīng)用程序,但這相當(dāng)于醫(yī)院電子醫(yī)療記錄系統(tǒng),例如我專業(yè)開(kāi)發(fā)的系統(tǒng)。我打算在時(shí)間允許的情況下盡快將此 PoC 與該系統(tǒng)集成。與此同時(shí),我已經(jīng)列出包含來(lái)自設(shè)備的值和元數(shù)據(jù)的觀察結(jié)果的 PowerShell 腳本。

pYYBAGOAbFSAM5zIAAGGGgsc8U0409.jpg
完成概念驗(yàn)證
?

結(jié)論

這是一系列有關(guān)使用新技術(shù)進(jìn)行遠(yuǎn)程患者監(jiān)測(cè)的相關(guān)項(xiàng)目的下一步。此步驟的目的是完成從遠(yuǎn)程低功耗設(shè)備到模擬醫(yī)院的臨床測(cè)量的整個(gè)流程。我對(duì)結(jié)果很滿意,并且知道接下來(lái)要關(guān)注什么。

我沒(méi)有時(shí)間來(lái)實(shí)現(xiàn)我現(xiàn)有的 openEHR 格式化程序,但您可以在我的第一個(gè)使用 Azure Sphere 的患者監(jiān)視器項(xiàng)目中了解它。

我本來(lái)想用一個(gè)可以更實(shí)際地處理的原型來(lái)結(jié)束這個(gè)階段,但最后我決定我的時(shí)間最好跳過(guò)一個(gè)步驟,專注于創(chuàng)建一個(gè)更集成的電子板,從而能夠開(kāi)始更多的工作。像樣的設(shè)備,體積更小。

我最初打算添加使用 Streams 將加密測(cè)量發(fā)布到IOTA Tangle 的功能。這只是另一個(gè) Azure Functions,類似于 Google Healthcare 集成。由于時(shí)間限制,Streams處于非常早期的開(kāi)發(fā)階段,而且我在之前的項(xiàng)目中主要介紹了這一點(diǎn),因此我決定專注于新的領(lǐng)域,并在稍后再回到這個(gè)領(lǐng)域。

它需要對(duì)電子醫(yī)療保健和遠(yuǎn)程醫(yī)療的當(dāng)前狀態(tài)有相當(dāng)多的了解,才能充分了解此類應(yīng)用程序的含義。我堅(jiān)信這是一條將贏得患者和醫(yī)療保健提供者的途徑。

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開(kāi)發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)