1. Giriş
Bu codelab'de güvenli, ölçeklenebilir ve uyumlu yenilikçi sağlık hizmetleri çözümleri oluşturmak için OHS (Open Health Stack) ve Google Cloud Healthcare API'yi nasıl kullanacağımızı öğreneceğiz. Bu güçlü araçların bir arada kullanılması, sağlık çalışanları ve geliştiricilerinin hasta bakımını ve sonuçları önemli ölçüde iyileştirebilecek veriye dayalı çözümler üretmesini sağlıyor.
Kullanıcıların Google Cloud'da FHIR hasta kayıtlarını yönetebilmesini sağlamak için Android-FHIR SDK'sını kullanan bir mobil uygulamada Open Health Stack ve Google Cloud Healthcare API'nin gücünden yararlanmayı planlıyoruz.
Şimdi uygulama adımlarına göz atalım.
Neler oluşturacaksınız?
Bu uygulamada,
- Anket oluşturmak için yapılandırılmış veri yakalama kitaplığını, yanıtın FHIR içeriğini depolamak için FHIR Engine kitaplığını kullanacağız.
- Ardından veriler Cloud Healthcare API kullanılarak Cloud FHIR Deposu'na yüklenir
- Yüklemeden önce Firebase kullanarak kimlik doğrulaması yapacağız.
Yukarıdaki şema, akışı göstermektedir. Her bir bileşen hakkında ayrıntılı açıklama için blogu okuyun.
2. Şartlar
- Chrome veya Firefox gibi bir tarayıcı
- Faturalandırmanın etkin olduğu bir Google Cloud projesi
- Android Studio'nun son sürümü
- Android Emülatör kurulumu (fiziksel Android cihazınızı da kullanabilirsiniz)
Projenizi oluşturma
- Google Cloud Console'daki proje seçici sayfasında bir Google Cloud projesi seçin veya oluşturun.
- Cloud projeniz için faturalandırmanın etkinleştirildiğinden emin olun. Bir projede faturalandırmanın etkin olup olmadığını nasıl kontrol edeceğinizi öğrenin.
- Gerekli API'leri (BigQuery, Healthcare API) etkinleştirin
Cloud Shell'i etkinleştirme
- Google Cloud'da çalışan ve bq ile önceden yüklenmiş olarak gelen bir komut satırı ortamı olan Cloud Shell'i kullanacaksınız:
Cloud Console'da sağ üst köşedeki Cloud Shell'i Etkinleştir'i tıklayın:
- Cloud Shell'e bağlandıktan sonra, kimliğinizin doğrulanmış olduğunu ve projenin proje kimliğinize ayarlanmış olduğunu göreceksiniz. Projeniz ayarlanmamışsa ayarlamak için aşağıdaki komutu kullanın:
gcloud config set project <YOUR_PROJECT_ID>
gcloud komutları ve kullanımı için belgelere bakın.
3. Healthcare API Kurulumu
- Healthcare API'nin etkinleştirildiğinden emin olun: Google Cloud Console API kitaplığına gidin, Healthcare API'yi arayın, ETKİNLEŞTİR'i tıklayın, API'yi tıklayın ve Healthcare Hizmet Hesabı'nı projeye ekleyin
- Hizmet Hesabına BigQuery yönetici izinleri verme İzin vermek için Cloud Shell terminalinde aşağıdaki gcloud komutunu çalıştırın:
gcloud projects add-iam-policy-binding <<YOUR_PROJECT_ID>> \
--member=serviceAccount:service-<<PROJECT_NUMBER>>@gcp-sa-healthcare.iam.gserviceaccount.com --role=roles/bigquery.admin
Not: PROJECT_ID ve PROJECT_NUMBER bilgilerinizi konsolda bulabilirsiniz. Tanım için doc'a bakın.
Sağlık Hizmetleri Veri Kümesi Oluşturma
Cloud Shell'de aşağıdaki komutu çalıştırarak Healthcare veri kümesini oluşturun:
gcloud beta healthcare datasets create <<DATASET_ID>> --location=us-central1
Konumu bir bölgeye ayarlayın.
FHIR Datastore'u oluşturma
Cloud Shell'de, FHIR veri deposunu oluşturmak için aşağıdaki komutu çalıştırın:
gcloud beta healthcare fhir-stores create <<FHIR_STORE>> \
--dataset=<<DATASET_ID>> --location=us-central1 --version=r4
Konumu bir bölgeye ayarlayın.
4. BigQuery Kurulumu ve Akışı
Bu eğitimde, FHIR Deposu verilerinin BigQuery Veri Kümesine kaydedilmesi sayesinde BigQuery ve BQML'nin gücünden yararlanarak veriler sorgulanabilir, programlanabilir ve analiz edilebilir.
BigQuery Veri Kümesi Oluşturma
BigQuery veri kümesi, tablo koleksiyonudur. Bir veri kümesindeki tüm tablolar aynı veri konumunda depolanır. Bir veri kümesi ve tablolarına erişimi sınırlamak için özel erişim denetimleri de ekleyebilirsiniz.
Cloud Shell'de aşağıdaki komutu çalıştırın:
bq mk --location=us-central1 --dataset <<PROJECT_ID>>:<<BQ_DATASET>>
Konumu bir bölgeye ayarlayın.
BigQuery Akışı Oluşturma
FHIR deposunda bir FHIR kaynağı oluşturulduğunda, güncellendiğinde, yama aldığında veya silindiğinde kaynak değişikliklerini BigQuery'ye aktarmak için akış gereklidir. Her deponun en fazla 10 akış yapılandırmasına sahip olmasına izin verilir.
- Google Cloud Healthcare konsolu, tarayıcı sayfasına gidin
- Yeni oluşturulan DATASET'i tıklayın
- Yeni oluşturulan DATA STORE'u () tıklayın
- YENİ YAYIN YAPILANDIRMASI EKLE'yi tıklayın
- Listeden yeni oluşturulan BigQuery Veri Kümesini seçin. Şema türü olarak "Analytics V2" ve "Patient" Kaynak Türü (İstediğiniz sayıda kaynak türü seçebilirsiniz) ve Bitti düğmesini tıklayın
Bu kadar basit. FHIR depolama verilerini kaydetmeye ve BigQuery'ye aktarmaya hazırsınız.
5. Cloud Functions (Healthcare API'yi kullanarak R4 Verilerini FHIR Datastore'a yazma)
Cloud Functions, kodunuzu kolayca yazmanıza ve sunucusuz bir şekilde buluta dağıtmanıza olanak tanır. Ölçeklenebilir, kullandıkça ödemeye dayalı, etkinliğe dayalı ve teknoloji ile dil desteği açısından açık bir platformdur. Diğer özellikler için belgeleri inceleyin.
Yazacağımız işlev, Cloud Healthcare API'yi kullanarak FHIR R4 biçiminde gelen verilerin kimlik doğrulamasını ve FHIR Veri Deposu'na yazılmasını sağlamayı amaçlar. Cloud Functions işlevini oluşturmak için:
- Cloud İşlevleri'ne gidin ve İŞLEV OLUŞTUR'u tıklayın
- Adı fhir-datastore-proxy, bölgeyi us-central1 ve Kimlik doğrulama seçeneğini "Kimlik Doğrulaması Zorunlu Kıl" olarak belirleyin.
- Çalışma zamanı, derleme, bağlantılar ve güvenlik ayarlarını genişletin. Beş Çalışma zamanı ortamı değişkeni ekleyeceksiniz:
Ad: CLOUD_FUNCTIONS_ENDPOINT | Değer: İşlevin URL uç noktası. Bunu yukarıdaki Kimlik doğrulama bloğunda görürsünüz ve şu biçimde olur: https://us-central1-PROJECT_ID.cloudfunctions.net/fhir-datastore-proxy
Ad: PROJECT_ID | Değer: proje kimliğiniz
Ad: DATASET_LOCATION | Değer: FHIR Datastore'unuzun konumu
Ad: DATASET_ID | Değer: Healthcare Datastore Kimliği
Ad: FHIR_STORE_ID | Değer: FHIR Mağaza Kimliği
- Kodumuzu ekleyeceğimiz sonraki sayfaya gitmek için İleri'ye basın.
- Bir satır içi düzenleyici görüntülenir. Dil olarak Java 17'yi seçin ve HelloHttpFunction.java sınıfına gidin. Dosyayı FhirDatastoreProxy.java olarak yeniden adlandırın. Giriş noktasını gcfv2.FhirDatastoreProxy olarak değiştirmeyi de unutmayın.
- Depo'daki kodu kopyalayıp satır içi düzenleyiciye yapıştırın
- pom.xml dosyasına gidin ve kod deposundaki pom dosyasını satır içi düzenleyiciye kopyalayın.
- DAĞIT'ı tıkladığınızda işleviniz kısa bir süre içinde oluşturulup çalıştırılacaktır
Not:
- Bu işlevde kullanılan Cloud Healthcare API, Healthcare API'ye gelen isteklerin kimliğini doğrulamak için Uygulama Varsayılan Kimlik Bilgilerini kullanır
- Android uygulamasından çağrı yapabilmek için dağıtılan işlev URL'sini kaydedin. Şu ana kadar Android uygulamasının FHIR verilerini BigQuery'ye ayrı ayrı Healthcare API kullanarak yazması için gereken tüm parçaları oluşturduk. Şimdi tüm parçaların birbirine bağlı olduğundan ve bir anket gönderildiğinde API'nin çağrıldığından emin olalım.
6. Android Projesi ve Firebase Kurulumu
Android Studio'nun son sürümünü kullanacağız ve Android Emulator kurulumunu kullanacağız (fiziksel Android cihazınızı da kullanabilirsiniz). Hazır olduğunda aşağıdaki adımları uygulayın:
- FHIR Uygulama Örnekleri deposunu klonlama: https://github.com/google/fhir-app-examples
- Android Studio'yu açın, Projeyi İçe Aktar'ı (Gradle, Eclipse ADT vb.) seçin ve daha önce indirdiğiniz kaynak kodundan cloudfunction'u/ klasörü seçin.app/google-services.json'u açın. Boş ve doldurulması gerekiyor.
./gradlew signreport kullanarak SHA-1 anahtarı oluşturun ve hata ayıklama varyantının altındaki SHA1 alanını not edin
Firebase Konsolu'nu kullanarak (1. ve 2. adımları uygulayın) Firebase Konsolu'nu kullanarak uygulamayı Firebase'e ekleyin. "SHA-1 imza sertifikası hatalarını ayıkla" alanına, önceki adımdaki değeri girin
google-services.json'u indirin ve Firebase'deki içeriği uygulama klasöründeki boş dosyaya değiştirin
Firebase SDK'sı derleme Gradle dosyalarına zaten eklenmiş
- FhirApplication.kt'yi açın ve baseUrl alanını Cloud Functions işlevinizin URL'sine ayarlayın.
- "Projenizi Gradle dosyalarıyla senkronize edin"i seçin Studio araç çubuğundan
Uygulamanın kurulum ve bağımlılık dahil etme bölümünü tamamladık.
7. Anket Oluşturma ve Yanıtlama
Depodaki Anket kurulumu zaten hazır. Kodun üzerinden geçelim:
- FragmentContainerView'un app/src/main/res/layout/activity_main.xml dosyasındaki ConstraintLayout içinde bulunduğundan emin olun
- Parçayı oluşturmak için QuestionnaireFragment'ta JSON kodlu bir FHIR Anketi olduğundan emin olun
Bu durumda json - " new-patient-registration-paginated.json" parçasını oluşturmak için kullanılır. MainActivity.kt, AddPatientFragment.kt ve AddPatientViewModel.kt dosyalarını kontrol edin.
Parçayı, json'u ve modeli doğruladığımıza göre şimdi uygulamayı çalıştırın ve anketteki alanlar için yanıtlar girmeyi deneyin.
Dize, tarih, sayısal alanlar ve diğer koşulların doğrulandığını göreceksiniz.
Oluşturulan kaydınızı görmek için uygulamayı çalıştırıp günlüğe kontrol edebilirsiniz.
Parça kullanma hakkında daha fazla bilgiyi buradan edinebilirsiniz. Anket parçası ve yanıt kurulumuyla ilgili anlatacaklarımız bu kadar.
8. FHIRStore ve BigQuery Veri Kümesi Sonuç Ekranı
Artık kurulum ve güncellemeler hazır olduğuna göre "Projeyi Gradle Dosyalarıyla Senkronize Et"i tıklayın. İşlem tamamlandığında
- Uygulamayı Android Emulator'da çalıştırın ve anketinizin yüklenmesini izleyin
- Soruları yanıtlayın ve üstteki Gönder'i tıklayın
- "Hasta kaydedildi" mesajını göreceksiniz uygulamada
FHIR Mağazası Sonucunu Göster
Google Cloud Healthcare FHIRViewer konsoluna gidin
FHIR Store'unuzu seçip sorgunuzu seçin ve ARAMAYI ÇALIŞTIR'a basın. Arama sonuçlarını hemen aşağıda göreceksiniz. .
BigQuery Veri Kümesi Sonucunu Göster
Google Cloud BigQuery konsoluna ve Gezgin bölmesinde bu proje için oluşturduğunuz veri kümesine gidin.
Önizle'yi tıkladığınızda BigQuery veri kümesindeki Healthcare FHIR Deposu'nda bulduğunuz sayı ve sonuç verileri gösterilir.
Artık bulut veri kümesine kaydettiğiniz FHIR verileri üzerinde artık BigQuery SQL, Analiz ve ML işlemleri gerçekleştirebilirsiniz.
9. Arama ve Çevrimdışı Özellikleri
OHS destekli Android FHIR SDK uygulamasında çevrimdışı özelliği etkinleştirmek için, burada ele aldığımız uygulamada etkinleştirilmesi gereken tasarım kurallarına uyduğunuzdan emin olun.
FHIR kaynaklarını aramak için iki yöntem kullanırız:
- Google Cloud Console'da FHIR Görüntüleyici
- GET veya POST isteklerinin kullanıldığı FHIR Arama Yöntemi
10. Uygulama Demosu
Uygulamamız geliştirildiğine göre üzerinde deneyelim ve sonucu bulutta görelim.
11. Temizleme
Bu yayında kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini istemiyorsanız şu adımları uygulayın:
- Google Cloud konsolunda Kaynakları yönetin sayfasına gidin
- Proje listesinden silmek istediğiniz projeyi seçin ve ardından Sil’i tıklayın
- İletişim kutusuna proje kimliğini yazın ve projeyi silmek için Kapat'ı tıklayın
12. Tebrikler
Tebrikler! Bu projede, Cloud Healthcare API'yi kullanarak yalnızca 7 adımda Cloud Healthcare API'yi kullanarak Cloud Healthcare API'yi kullanarak Hasta FHIR verilerini bulut sağlık hizmetleri FHIR Deposu ve BigQuery veri kümelerinde depolayıp sorgulamak üzere bir Android uygulamasını başarıyla oluşturduk:
- Android uygulamasını kurun
- Google Cloud Healthcare API'yi kurma
- Sağlık Hizmetleri Veri Kümesi ve FHIR Deposu oluşturuldu
- BigQuery Veri Kümesi Oluşturuldu
- FHIR Datastore verilerini BigQuery veri kümesine yazacak şekilde BigQuery akışı yapılandırıldı
- R4 verilerini FHIR Datastore'a yazmak için bir Cloud Functions işlevi dağıtıldı
- Anket yanıtı gönderildiğinde Android uygulamasından Cloud Functions tetiklendi
Adımlar net olduğuna göre hasta FHIR düzenlemesini buluta senkronize etmek için aynı adımları deneyebilirsiniz.