Telehealth rendszer létrehozása az Azure-ban

Azure Database for PostgreSQL
Azure Functions
Azure Kubernetes Service (AKS)
Azure Storage
Azure Traffic Manager

Ez a cikk bemutatja, hogyan hozhat létre telehealth rendszert az Azure felhőplatform használatával.

Architektúra

A telehealth rendszerben található Azure-összetevők architektúra áttekintése.

Töltse le az architektúra Visio-fájlját.

Munkafolyamat

A megoldás négy pillérre épül, többek között a következőkre:

  • Ügyfelek
  • Kommunikációs összetevők
  • API-k és üzleti logika
  • Tárolási és infrastruktúra-szolgáltatások

Az architekturális diagram bal oldalán két csoportban vannak ügyfelek, az egészségügyi szakember és a beteg. Az egészségügyi szakember a megfelelő szoftvereket és webportál-ügyfeleket használja a pácienseivel való kommunikációhoz. A betegek viszont egy mobilalkalmazást használnak, amely Bluetooth-kapcsolaton keresztül kapcsolódik az orvosi eszközhöz. Ez a oda-vissza kommunikáció háttérszolgáltatások használatával érhető el:

  • Nyilvánosan elérhető API-k
  • Belső mikroszolgáltatások, amelyek olyan munkafolyamatokért felelősek, mint a webes RTC-vel történő videohívások vagy az ügyfél-ügyfél közötti kommunikáció a Signal használatával. A Signal a Microsoft ASP.NET szoftverkódtára, amely lehetővé teszi, hogy a kiszolgálókód aszinkron értesítéseket küldjön az ügyféloldali webalkalmazásoknak.

Ezeknek a szolgáltatásoknak az állapota több Azure-szolgáltatásban (a diagram jobb oldalán) is megmarad, például az Azure Database for PostgreSQL-ben. A médiafájlok az Azure Storage-fiókokba vannak mentve. Az összes szolgáltatás naplói egy központosított naplózási megoldásban vannak összegyűjtve, amely Azure-alkalmazás Elemzések használ. Végül aszinkron kommunikáció érhető el az ügyfelek között leküldéses értesítéseken keresztül az Azure Notification Hub segítségével.

A megoldás a következő módon lett beállítva:

  • Kihasználhatja a háttérrendszerben futó felhőszolgáltatások méretezhetőségét.

  • Növelje a megoldást építő csapatok önállóságát. Minden csapat felügyeli a funkcionális tartományokat, és vezérli az összetevők fejlődését. Mivel a funkcionális tartományok nem fedik egymást, minden csapat a saját tempójában tud újítani. Mivel a szolgáltatások kódbázisai függetlenek, a teljes megoldás CI/CD-folyamata egyszerűbb.

  • Hozza létre a szolgáltatások közötti kommunikációs és koordinációs mechanizmust, amelyet a funkciók mikroszolgáltatások közötti elosztásához szükséges. A dokumentumban ismertetett megoldás az Azure Cache for Redis használatával végzi el ezt a feladatot.

  • Központi figyelés elérése és a megoldás hibaelhárítási képességének javítása.

  • A titkos kódok, hitelesítő adatok, tanúsítványok és kulcsok egyszerűbb kezelése a felügyelt identitások használatával biztosítja a szolgáltatások közötti kommunikációt.

Összetevők

  • Az Azure Database for PostgreSQL felhasználói (beteg- és egészségügyi szakemberek) és eszközhöz kapcsolódó adatokat tárol. A szolgáltatást azért választották, mert stabil, könnyű, és nincs beszállítói zárolása.
  • Az Azure Kubernetes Service üzemelteti az alkalmazás üzleti logikáját, és egyszerű üzembe helyezést és rugalmasságot biztosít a testreszabáshoz. A szolgáltatás a megoldást az alatta használt tényleges hardverből is elvonja.
  • Az Azure Cache for Redis szolgáltatáson belüli adatokhoz (megosztott adatokhoz) használt ideiglenes adatokat tárol. A szolgáltatás újra létrehozható az adatbázisból, ha az adatok lejárnak a gyorsítótárból
  • Az Azure Notification Hub értesíti a betegeket a bejövő tartalmakról: csevegés, videohívások, eszközkonfigurációs beállítások.
  • Az Azure Functions ütemezi a feladatokat. Például széles körű kommunikáció a felhasználók nagy csoportjának, az elemzések koordinálása a háttérrendszerben (aggregációk...).
  • Azure-alkalmazás Elemzések a rendszertől érkező jeleket/eseményeket (naplókat, mikroszolgáltatásokból, előtérből és eszközökről származó naplókból származó telemetriát) központosítja hibaelhárítási célokra.
  • Az Azure Content Delivery Network (CDN) a webportálra való karbantartáshoz és frissítésekhez (Java-szkriptfájl kézbesítéséhez), valamint médiafájlok (videók, képek) portálon keresztüli kézbesítéséhez használható. Ez a tartalom a háttérben található Azure Storage-fiókokban van tárolva.
  • Az Azure Traffic Manager terheléselosztása a földrajzi helyek között.
  • Az Azure SignalR lehetővé teszi, hogy a kiszolgálókód aszinkron értesítéseket küldjön az ügyféloldali webalkalmazások számára. A végfelhasználói eszközök standard vagy speciális módban is konfigurálhatók.

Alternatívák

Az adatbázis oldalán bármely más PaaS-adatbázis-szolgáltatás használható. Az alkalmazáslogika üzemeltetésekor az Azure Kubernetes Service használata helyett érdemes lehet Azure-alkalmazás szolgáltatást használni.

Forgatókönyv részletei

A részletek egy valós ügyfél-implementáción alapulnak, amely egy professzionális egészségügyi szervezetet köt össze távoli betegeivel. Bár vannak más módszerek is egy ilyen rendszer kiépítésére, a leírt megoldás sikeresen lehetővé tette a betegek és a távoli ápolási szolgáltató közötti kommunikációt, valamint a betegek által hordozott orvostechnikai eszközök távoli hangolását.

Körülbelül 700 millió ember szenved hallássérültek. Azonban csak 10%-a használ hallókészüléket, hogy javítsa az életüket. Bizonyos földrajzi helyeken vagy helyzetekben lehetetlen, hogy a beteg szükség esetén közvetlen segítséget kapjon. Vegyük például azokat a betegeket, akik:

  • Segítségre van szüksége egy adott hallási helyzetben (például a parkban sétálva, egy bulin való részvételkor vagy otthon), amely nem reprodukálható a hallássérültek irodájában.
  • Mobilitási problémái vannak, vagy nagy távolságban tartózkodik a hallásgondozó szakembertől.
  • Él egy feltörekvő országban / régióban, amely korlátozott számú hallásgondozó szakemberek.

Ezeknek a nehézségeknek a leküzdése érdekében fontos, hogy képes legyen távolról hallásgondozó szolgáltatásokat nyújtani. Ebben az esetben az egészségügyi szakember csevegést vagy videokommunikációt használ a távoli pácienseivel való kapcsolatfelvételhez. Kapcsolatok, akik nehezen hallanak, okostelefont használnak a hallókészülékhez való hozzáférés engedélyezéséhez a távoli munkamenet során. A beteg azonnal tapasztal jobb hallás, mint a hallásgondozó szakember üzembe módosításokat a konfiguráció a hallókészülék valós időben.

Lehetséges használati esetek

Ez a megoldás ideális az egészségügyi ágazat számára. A következő további használati esetek hasonló tervezési mintákkal rendelkeznek:

  • Bármely Bluetooth-kompatibilis eszköz elérhető és távolról hangolható egy ilyen megoldással.
  • Kommunikáció (szöveg, hang, videó) vagy tudáscsere (oktatás, elégedettségi felmérések) távoli környezetben/kontextusban.
  • Globálisan elosztott webes tartalomkezelés.
  • Dolgok internete (IoT)

Módok

Standard mód

Standard módban a illesztő szoftver előkészít egy értesítést, amely tartalmaz néhány konfigurációs JSON-fájlt vagy tartalmat az eszközhöz. Ezt követően a rendszer elküldi az értesítést az Azure Notification Hubnak, amely leküldi az értesítést a felhasználó telefonjára.

Speciális mód

Speciális módban a hallókészülék szakembere a szerelvényszoftver használatával küld részletes konfigurációt az eszközre. Ehhez stabil és megbízható kapcsolatra van szükség a háttérrendszer és az eszköz között, amelyet a SignalR a WebSockets használatával ér el. A végfelhasználó telefonja a csatorna fogadó végén található. A telefonról a Bluetooth-kapcsolat létrehozza a végső kommunikációs kapcsolatot az eszközzel.

Megfontolások

Ezek a szempontok implementálják az Azure Well-Architected Framework alappilléreit, amely a számítási feladatok minőségének javítására használható vezérelvek halmaza. További információ: Microsoft Azure Well-Architected Framework.

Javasoljuk, hogy használjon forgalomkezelőt a különböző fürtök előtt, hogy optimalizálja a régiók közötti késést, és tartalék mechanizmusként, ha a fürtök elérhetetlenné válnak. Az adatbázisokhoz ajánlott írásvédett replikákat használni olyan lekérdezésekhez, amelyek nagy mennyiségű adat betöltését és összesítését igénylik. Javasoljuk, hogy a tartalomkézbesítési hálózat (CDN) használatával globálisan kézbesítsen statikus webfájlokat (.html, .js, képeket stb.) a gyorsítótárazás sebességének javítása érdekében.

Telepítés

A forgatókönyv üzembe helyezésekor a legfontosabb szempont az üzembe helyezés koordinálása a felhőalapú háttérrendszerben és az előtérben (telefonok/eszközök). Ennek eléréséhez fontolja meg a funkciójelző fogalmának használatát.

Menedzsment

Annak érdekében, hogy jobban igazodjon ahhoz az elképzeléshez, hogy az egyes funkcionális tartományok egy adott mikroszolgáltatás használatával foglalkozzanak, hosszú távon lehetőség van az adatbázis több kisebb adatbázisra való felosztására. Ezzel lehetővé válik az egyes mikroszolgáltatásokhoz kapcsolódó folyamatok elvének elkülönítése és önállósága, nem pedig az összes szolgáltatáshoz kapcsolódó adatok egyetlen adatbázisba való koncentrálása. Ennek a célnak a eléréséhez automatizálni kell az adatbázisok kiépítését és kezelését, ami a paaS-adatbázis-szolgáltatás egyik alapvető képessége a felhőben. Az adatbázis-felügyeleti réteget integrálnia kell a megoldásba és az egyesített monitorozási megoldásba.

Figyelés

Fontos az egyes szintek monitorozása, és minden monitorozási szempontot egyetlen gyűjtőbe kell egyesíteni a felhőben. Fontos engedélyezni az összes napló és telemetriai adatpont korrelációját, hogy holisztikus elemzéseket biztosíthasson az összetevők és rétegek között.

Ma a figyelt rétegek a következők:

  • Windows-alkalmazás (szoftver illesztése a hallásgondozó szakember asztalára)
  • Üzemeltetett alkalmazáslogika
  • Felhőszolgáltatások

Méretezés és méretezés

Ügyeljen arra, hogy az Azure Kubernetes-fürtök konfigurációját úgy optimalizálja, hogy megfeleljen a nap és a regionális minták által ingadozó méretezési követelményeknek. Fontolja meg az olvasási számítási feladatok kiszervezését (például lekérdezések összesítését) olvasási replikák használatával az Azure Database for PostgreSQL-ben.

A PostgreSQL TimescaleDB bővítményének használatával hatékonyabban kezelhetők az orvostechnikai eszközökről érkező időhöz kapcsolódó adatok. Fontolja meg egy kibővített megoldás, például az Azure Database for PostgreSQL – Rugalmas skálázás (Citus) használatát a globális skálázás eléréséhez több adatbáziscsomópont kiépítésével.

Biztonság és megfelelőség

A biztonság biztosítékokat nyújt a szándékos támadások és az értékes adatokkal és rendszerekkel való visszaélés ellen. További információ: A biztonsági pillér áttekintése.

Ez a megoldás kezeli a PHI-t és a személyes adatokat. Ezért fontos, hogy orvosi alkalmazásokhoz minősített szolgáltatásokat használjunk (HIPAA-minősítések, nem csak az adatbázisban maradó adatok, hanem a naplók és telemetriai adatok esetében is). További részletekért tekintse meg a Microsoft Adatvédelmi központ HIPAA szakaszát .

A felügyelt identitást minden olyan Azure-szolgáltatásban használni kell, amely támogatja az ilyen típusú jelszó nélküli hitelesítést a jelszókezelés egyszerűsítése érdekében: AKS, PostgreSQL, Redis Cache, Notification Hub, Azure Key Vault és Azure Functions. Tekintse meg az Azure-erőforrások felügyelt identitását támogató összes szolgáltatást.

Költségoptimalizálás

A költségoptimalizálás a szükségtelen kiadások csökkentésének és a működési hatékonyság javításának módjairól szól. További információ: A költségoptimalizálási pillér áttekintése.

Egyetlen régióban történő üzembe helyezés esetén a díjszabási információk például elérhetők a Díjkalkulátorban

Közreműködők

Ezt a cikket a Microsoft tartja karban. Eredetileg a következő közreműködők írták.

Fő szerzők:

Következő lépések

Ha hozzá szeretne kezdeni egy hasonló architektúra bevezetéséhez a vállalat számára, fontolja meg a webszolgáltatások, adatbázisok, például az Azure Database for PostgreSQL, valamint a mobilalkalmazás-fejlesztési technikák és technológiák, például a Xamarin és a .NET Core használatát.

Termékdokumentáció:

Valós idejű kommunikáció:

További információ arról, hogy a WebRTC hogyan biztosít valós idejű kommunikációs képességeket mobilalkalmazások számára a WebRTC projektwebhelyén.

Kiszolgálók bekapcsolása:

Használjon olyan ügyfélkódtárat, mint az Icelink (amelyet az alkalmazás tölt be a telefonra és a hallókészülék-kezelő asztali szoftvere) a turn-kiszolgálók* és a kapcsolat típusainak (tcp, udp, p2p) kezeléséhez a két ügyfél között (szoftver és alkalmazás telefonon való felszerelése). Az ügyfélkódtár:

  • A streamcsatorna létrehozása
  • A kapcsolatok létrehozása
  • Kezeli a kapcsolatot hibák, hiányzó csomagok esetén, automatikusan a sávszélesség variációihoz igazítja a streamelést
  • Kódolja/dekódolja a hívásokat (hang- és/vagy videoképet) a hívások során

*A viszontkiszolgálók olyan hálózati entitások, amelyek a VoIP-hez kapcsolódó protokollokban lévő adathordozók átviteléért felelősek. Ebben a megoldásban világszerte számos adatközpont üzemelteti őket https://xirsys.com/ . Közvetlen kapcsolatot hoz létre két ügyfél között ugyanabban a munkamenetben.