Membangun sistem telehealth di Azure

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

Artikel ini menjelaskan cara membangun sistem telehealth menggunakan platform cloud Azure.

Sistem

Gambaran umum arsitektur komponen Azure yang disertakan dalam sistem telehealth.

Unduh file Visio arsitektur ini.

Alur kerja

Solusi tersebut dibangun di atas empat pilar, antara lain:

  • Klien
  • Komponen komunikasi
  • API dan logika bisnis
  • Layanan penyimpanan dan infrastruktur

Di sisi kiri diagram arsitektur, ada klien dalam dua grup, tenaga kesehatan dan pasien. Tenaga kesehatan menggunakan perangkat lunak yang sesuai dan klien portal web untuk berkomunikasi dengan pasien mereka. Sementara itu, pasien menggunakan aplikasi seluler yang terhubung ke perangkat medis melalui koneksi Bluetooth. Komunikasi bolak-balik ini dicapai dengan menggunakan layanan backend:

  • API publik
  • Layanan mikro internal yang bertanggung jawab atas alur kerja seperti panggilan video melalui Web RTC atau komunikasi klien-ke-klien menggunakan Signal. signal adalah pustaka perangkat lunak untuk Microsoft ASP.NET yang memungkinkan kode server untuk mengirim pemberitahuan asinkron ke aplikasi web sisi klien.

Status layanan ini bertahan di beberapa layanan Azure (di sisi kanan diagram) seperti Azure Database for PostgreSQL. File media disimpan di akun penyimpanan Azure. Semua log dari semua layanan dikumpulkan dalam solusi pengelogan terpusat yang menggunakan Azure Application Insights. Terakhir, komunikasi asinkron dapat dicapai antara klien melalui pemberitahuan push menggunakan bantuan Azure Notification Hub.

Solusinya disiapkan sedemikian rupa agar:

  • Mendapatkan manfaat skalabilitas layanan cloud yang berjalan di backend.

  • Meningkatkan otonomi tim yang membangun solusi. Setiap tim mengawasi domain fungsional dan mendorong evolusi komponen mereka. Karena domain fungsi tidak tumpang tindih, setiap tim dapat berinovasi dengan kecepatannya sendiri. Selain itu, karena basis kode layanan ini bersifat independen, alur CI/CD untuk seluruh solusi disederhanakan.

  • Membangun mekanisme komunikasi dan koordinasi antar-layanan yang diperlukan oleh distribusi fungsionalitas di seluruh layanan mikro. Solusi yang dijelaskan dalam dokumen ini menggunakan Azure Cache for Redis untuk menyelesaikan tugas ini.

  • Mencapai pemantauan terpusat dan meningkatkan kemampuan untuk memecahkan masalah solusi.

  • Manajemen rahasia, kredensial, sertifikat, dan kunci yang disederhanakan memanfaatkan identitas terkelola untuk mengamankan komunikasi antar layanan.

Komponen

  • Azure Database for PostgreSQL menyimpan data pengguna (pasien dan tenaga kesehatan) serta data terkait perangkat. Layanan ini dipilih karena stabil, ringan, dan tidak memiliki penguncian vendor.
  • Azure Kubernetes Service menghosting logika bisnis aplikasi dan memberikan kemudahan penyebaran dan fleksibilitas untuk penyesuaian. Layanan ini juga mengabstraksikan solusi dari perangkat keras aktual yang digunakan di bawahnya.
  • Azure Cache for Redis menghosting data sementara yang digunakan untuk data layanan intra (data bersama). Layanan dapat dibuat kembali dari database jika data yang ada di cache sudah kedaluwarsa
  • Azure Notification Hub memberi tahu pasien tentang konten yang masuk: obrolan, panggilan video, pengaturan konfigurasi perangkat.
  • Azure Functions menjadwalkan tugas. Misalnya, komunikasi luas ke sejumlah besar pengguna, koordinasi pekerjaan analitik di backend (agregasi…).
  • Azure Application Insights memusatkan sinyal/kejadian dari sistem (log, telemetri dari log dari layanan mikro, frontend, dan perangkat) untuk tujuan pemecahan masalah.
  • Microsoft Azure Content Delivery Network (CDN) digunakan untuk pemeliharaan dan pembaruan (pengiriman file skrip java) ke portal web dan untuk mengirimkan file media (video, gambar) melalui portal. Semua konten ini disimpan di akun penyimpanan Azure di latar belakang.
  • Azure Traffic Manager menyeimbangkan beban antar-lokasi geografis.
  • Azure SignalR memungkinkan kode server mengirim pemberitahuan asinkron ke aplikasi web sisi klien. Perangkat pengguna akhir dapat dikonfigurasi dalam mode Standar atau Tingkat Lanjut.

Alternatif

Di sisi database, layanan database PaaS lainnya dapat digunakan. Saat menghosting logika aplikasi, daripada menggunakan Azure Kubernetes Service, Anda dapat mempertimbangkan untuk menggunakan Azure App Service.

Detail skenario

Detailnya didasarkan pada implementasi pelanggan nyata yang menghubungkan organisasi layanan kesehatan profesional dengan pasien jarak mereka. Meskipun ada cara lain untuk membangun sistem semacam ini, solusi yang dijelaskan telah berhasil dalam memungkinkan komunikasi antara pasien dan penyedia layanan jarak jauh mereka, serta menyetel perangkat medis yang dibawa pasien dari jarak jauh.

Ada sekitar 700 juta orang yang menderita gangguan pendengaran. Namun, hanya 10% dari mereka yang menggunakan alat bantu dengar untuk meningkatkan kehidupan mereka. Dalam beberapa geografi atau situasi, tidak mungkin bagi pasien untuk mendapatkan bantuan langsung ketika diperlukan. Misalnya, pertimbangkan pasien yang:

  • Perlu bantuan dalam situasi pendengaran tertentu (misalnya, saat berjalan di taman, menghadiri pesta, atau berada di rumah), yang tidak dapat direproduksi di kantor profesional layanan pendengaran.
  • Memiliki masalah mobilitas atau tinggal di tempat yang jauh dari tenaga kesehatan untuk pendengaran mereka.
  • Tinggal di negara/wilayah berkembang yang memiliki jumlah tenaga kesehatan untuk pendengaran yang terbatas.

Untuk mengatasi kesulitan ini, penting untuk memiliki kemampuan untuk menyediakan layanan perawatan pendengaran dari jarak jauh. Dalam kasus ini, tenaga kesehatan menggunakan komunikasi obrolan atau video untuk berinteraksi dengan pasien jarak jauh mereka. Orang dengan gangguan pendengaran menggunakan smartphone untuk memungkinkan akses ke alat bantu dengar selama sesi jarak jauh. Pasien segera mengalami peningkatan pendengaran saat tenaga kesehatan untuk pendengaran menyebarkan perubahan pada konfigurasi perangkat alat bantu dengar secara real time.

Kemungkinan kasus penggunaan

Solusi ini sangat ideal untuk industri perawatan kesehatan. Kasus penggunaan tambahan berikut memiliki pola desain yang serupa:

  • Perangkat berkemampuan Bluetooth apa pun dapat diakses dan disetel dari jarak jauh menggunakan solusi semacam ini.
  • Komunikasi (teks, suara, video) atau pertukaran pengetahuan (pendidikan, survei kepuasan) dalam pengaturan/konteks jarak jauh.
  • Manajemen konten web yang didistribusikan secara global.
  • Internet of Things (IoT)

Mode

Mode standar

Dalam mode Standar, perangkat lunak yang sesuai menyiapkan pemberitahuan, yang berisi beberapa file atau konten JSON konfigurasi untuk perangkat. Notifikasi kemudian diteruskan ke Azure Notification Hub, yang mendorong notifikasi ke telepon pengguna.

Mode Tingkat Lanjut

Dalam mode Tingkat Lanjut, ahli alat bantu dengar menggunakan perangkat lunak yang sesuai untuk mendorong konfigurasi terperinci ke perangkat. Ini membutuhkan koneksi yang stabil dan andal antara backend dan perangkat, yang dicapai SignalR dengan menggunakan WebSockets. Telepon pengguna akhir berada di sisi penerima alur ini. Dari telepon, koneksi Bluetooth membuat tautan komunikasi terakhir dengan perangkat.

Pertimbangan

Pertimbangan ini mengimplementasikan pilar Azure Well-Architected Framework, yang merupakan serangkaian tenet panduan yang dapat digunakan untuk meningkatkan kualitas beban kerja. Untuk informasi selengkapnya, lihat Microsoft Azure Well-Architected Framework.

Sebaiknya gunakan pengelola lalu lintas di depan kluster yang berbeda untuk mengoptimalkan latensi antar-wilayah dan sebagai mekanisme fallback jika kluster menjadi tidak tersedia. Untuk database, sebaiknya gunakan replika baca-saja untuk kueri yang memerlukan pemuatan dan pengagregasian data dalam jumlah besar. Sebaiknya kirim file web statis (.html, .js, gambar, dll.) secara global menggunakan jaringan pengiriman konten (CDN) untuk meningkatkan kecepatan melalui penembolokan.

Penyebaran

Aspek terpenting yang perlu dipertimbangkan saat menyebarkan skenario ini adalah koordinasi penyebaran di seluruh backend dan frontend berbasis cloud (ponsel/perangkat). Pertimbangkan untuk menggunakan konsep bendera fitur untuk mencapai hal ini.

Manajemen

Untuk lebih selaras dengan gagasan agar setiap domain fungsional ditangani menggunakan layanan mikro tertentu, jangka panjang, ada peluang untuk membagi database menjadi beberapa database yang lebih kecil. Melakukannya akan memungkinkan isolasi prinsip dan otonomi alur yang terkait dengan setiap layanan mikro, daripada memusatkan data yang terkait dengan semua layanan ke dalam satu database. Untuk mencapai tujuan ini, diperlukan penyediaan automasi dan pengelolaan database tersebut, yang merupakan salah satu kemampuan inti dari layanan database PaaS di cloud. Lapisan manajemen database tersebut harus diintegrasikan dalam solusi serta ke dalam solusi pemantauan terpadu.

Pemantauan

Penting untuk memantau setiap tingkatan, dan setiap faset pemantauan harus digabungkan ke dalam satu wadah di cloud. Penting untuk mengaktifkan korelasi semua log dan titik data telemetri ini untuk memastikan wawasan holistik di seluruh komponen dan lapisan.

Saat ini, lapisan yang dipantau meliputi:

  • Aplikasi Windows (perangkat lunak yang sesuai dengan desktop tenaga kesehatan untuk pendengaran)
  • Logika aplikasi yang dihosting
  • Layanan cloud

Ukuran dan penskalaan

Pastikan untuk mengoptimalkan konfigurasi kluster Azure Kubernetes agar sesuai dengan persyaratan skala yang berfluktuasi dengan waktu atau pola regional. Pertimbangkan untuk menurunkan beban kerja baca (seperti mengagregasi kueri) dengan menggunakan Replika Baca di Azure Database for PostgreSQL.

Menggunakan ekstensi TimescaleDB dari PostgreSQL akan memungkinkan penanganan yang lebih efisien atas data terkait waktu dari perangkat medis. Pertimbangkan untuk menggunakan solusi peluasan skala seperti Azure Database for PostgreSQL – Hyperscale (Citus) untuk mencapai skala global dengan menyediakan beberapa simpul database.

Keamanan dan kepatuhan

Keamanan memberikan jaminan terhadap serangan yang disukai dan penyalahgunaan data dan sistem berharga Anda. Untuk informasi selengkapnya, lihat Gambaran Umum pilar keamanan.

Solusi ini menangani PHI dan data pribadi. Dengan demikian, penting untuk menggunakan layanan yang disertifikasi untuk aplikasi medis (sertifikasi HIPAA, tidak hanya untuk data yang tetap ada dalam database tetapi juga data log dan telemetri). Untuk detailnya, lihat bagian HIPAA di Microsoft Trust Center.

Identitas terkelola harus digunakan pada semua layanan Azure yang mendukung jenis autentikasi tanpa kata sandi ini untuk menyederhanakan manajemen kata sandi: AKS, PostgreSQL, Redis Cache, Notification Hub, Azure Key Vault, dan Azure Functions. Lihat semua layanan yang mendukung identitas terkelola untuk sumber daya Azure.

Pengoptimalan biaya

Optimalisasi biaya adalah tentang mencari cara untuk mengurangi pengeluaran yang tidak perlu dan meningkatkan efisiensi operasional. Untuk informasi selengkapnya, lihat Gambaran umum pilar pengoptimalan biaya.

Untuk penyebaran di satu wilayah, contoh informasi harga tersedia di Kalkulator Harga

Kontributor

Artikel ini dikelola oleh Microsoft. Ini awalnya ditulis oleh kontributor berikut.

Penulis utama:

Langkah berikutnya

Untuk mulai menerapkan arsitektur yang sebanding untuk bisnis Anda, pertimbangkan untuk membangun keterampilan seputar layanan web, database seperti Azure Database for PostgreSQL, dan teknik dan teknologi pengembangan aplikasi seluler seperti .NET MAUI.

Dokumentasi produk:

Komunikasi real time:

Informasi selengkapnya tentang bagaimana WebRTC menyediakan kemampuan komunikasi real time ke aplikasi seluler tersedia di situs proyek WebRTC.

Mengubah server:

Gunakan pustaka klien seperti Icelink (dimuat oleh aplikasi di telepon dan oleh perangkat lunak yang sesuai dari desktop ahli alat bantu dengar) untuk mengelola server turn* dan jenis koneksi (tcp, udp, p2p) antara dua klien (perangkat lunak dan aplikasi yang sesuai di telepon). Pustaka klien:

  • Membuat saluran streaming
  • Membuat koneksi
  • Mengelola koneksi jika terjadi kesalahan, paket hilang, secara otomatis menyesuaikan streaming dengan variasi bandwidth
  • Mengkodekan/mendekode panggilan (audio dan/atau video) selama panggilan

*Server turn adalah entitas jaringan yang bertanggung jawab untuk menyampaikan media dalam protokol yang terkait dengan VoIP. Dalam solusi ini server ini di-host oleh https://xirsys.com/ di beberapa pusat data di seluruh dunia. Membuat koneksi langsung antara dua klien di bawah sesi yang sama.