Pozyskaj zasoby FHIR (szybkie zasoby Healthcare interoperacyjności) do BigQuery

1. Wprowadzenie

1f4764c4ca4c50d9.png

Ostatnia aktualizacja: 16.05.2020

To ćwiczenie w Codelabs pokazuje wzorzec pozyskiwania danych do pozyskiwania danych o stanie zdrowia w formacie FHIR R4 (zwykłe zasoby) do BigQuery przy użyciu interfejsów Cloud Healthcare FHIR API. Realistyczne dane z testów dotyczących opieki zdrowotnej zostały wygenerowane i udostępnione w zasobniku Google Cloud Storage (gs://hcls_testing_data_fhir_10_patients/).

Z tego modułu dotyczącego kodu nauczysz się:

  • Jak zaimportować zasoby FHIR R4 z GCS do magazynu FHIR w Cloud Healthcare.
  • Jak eksportować dane FHIR z bazy FHIR do zbioru danych w BigQuery.

Czego potrzebujesz do uruchomienia tej wersji demonstracyjnej?

  • Musisz mieć dostęp do projektu GCP.
  • Musisz mieć przypisaną rolę właściciela projektu GCP.
  • Zasoby FHIR R4 w formacie NDJSON (content-structure=RESOURCE)

Jeśli nie masz projektu GCP, wykonaj te czynności, aby go utworzyć.

Zasoby FHIR R4 w formacie NDJSON zostały wstępnie wczytane do zasobnika GCS w tych lokalizacjach:

  • gs://hcls_testing_data_fhir_10_patients/fhir_r4_ndjson/ – zwykłe zasoby

Wszystkie powyższe zasoby mają format pliku nowy wiersz separatora wiersza (NDJSON), ale inna struktura treści:

  • Zwykłe zasoby w formacie ndjson – każdy wiersz w pliku zawiera podstawowy zasób FHIR w formacie JSON (np. Patient, Obserwacja itp.). Każdy plik ndjson zawiera zasoby FHIR tego samego typu. Na przykład plik Patient.ndjson będzie zawierać co najmniej 1 zasób FHIR o typie zasobu = „ Pacjent” a plik Obserwacja.ndjson będzie zawierać co najmniej 1 zasób FHIR o typie zasobu = ‘ Obserwacja”.

Jeśli potrzebujesz nowego zbioru danych, możesz go zawsze wygenerować przy użyciu SyntheaTM. Następnie prześlij go do GCS, zamiast korzystać z zasobnika podanego w ćwiczeniach z programowania.

2. Konfiguracja projektu

Aby włączyć Healthcare API i przyznać wymagane uprawnienia, wykonaj te czynności:

Inicjowanie zmiennych powłoki dla swojego środowiska

Aby znaleźć PROJECT_NUMBER i PROJECT_ID, zapoznaj się z artykułem Identyfikowanie projektów.

<!-- CODELAB: Initialize shell variables -->
export PROJECT_ID=<PROJECT_ID>
export PROJECT_NUMBER=<PROJECT_NUMBER>
export SRC_BUCKET_NAME=hcls_testing_data_fhir_10_patients
export BUCKET_NAME=<BUCKET_NAME>
export DATASET_ID=<DATASET_ID>
export FHIR_STORE=<FHIR_STORE>
export BQ_DATASET=<BQ_DATASET>

Włącz Healthcare API

Wykonując poniższe czynności, włączysz interfejsy Healthcare API w projekcie GCP. Spowoduje to dodanie do projektu konta usługi Healthcare API.

  1. Otwórz bibliotekę interfejsów API konsoli GCP.
  2. Wybierz swój projekt z listy projektów.
  3. W bibliotece interfejsów API wybierz interfejs API, który chcesz włączyć. Jeśli potrzebujesz pomocy w znalezieniu interfejsu API, użyj pola wyszukiwania i filtrów.
  4. Na stronie interfejsu API kliknij WŁĄCZ.

Uzyskiwanie dostępu do syntetycznego zbioru danych

  1. Korzystając z adresu e-mail, którego używasz do logowania się w konsoli Cloud, wyślij na hcls-solutions-external+subscribe@google.com e-maila z prośbą o dołączenie.
  2. Otrzymasz e-maila z instrukcjami, jak potwierdzić tę czynność.
  3. Użyj tej opcji, by odpowiedzieć na e-maila, aby dołączyć do grupy.
  4. NIE klikaj przycisku 525a0fa752e0acae.png. To nie działa.
  5. Po otrzymaniu e-maila z potwierdzeniem możesz przejść do następnego kroku ćwiczenia z programowania.

Tworzenie zasobnika Google Cloud Storage w projekcie GCP

gsutil mb gs://$BUCKET_NAME

Kopiowanie danych syntetycznych do projektu GCP

gsutil -m cp gs://$SRC_BUCKET_NAME/fhir_r4_ndjson/**.ndjson \
gs://$BUCKET_NAME/fhir_r4_ndjson/

Przyznaj uprawnienia

Zanim zaimportujesz zasoby FHIR z Cloud Storage i wyeksportujesz je do BigQuery, musisz przyznać dodatkowe uprawnienia kontom usługi agenta usługi Cloud Healthcare . Więcej informacji znajdziesz w artykule o uprawnieniach magazynu FHIR w Cloud Storage i magazynu FHIR w BigQuery.

Przyznaj uprawnienia administratora miejsca na dane

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member=serviceAccount:service-$PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
  --role=roles/storage.objectViewer

Przyznawanie uprawnień administratora BigQuery

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member=serviceAccount:service-$PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
  --role=roles/bigquery.admin

3. Konfiguracja środowiska

Wykonaj te czynności, aby pozyskać dane z plików NDJSON do zbioru danych usługi Healthcare w BigQuery przy użyciu interfejsów Cloud Healthcare FHIR API:

Utwórz zbiór danych Healthcare i bazę FHIR

tworzenie zbioru danych Healthcare za pomocą interfejsów Cloud Healthcare API.

gcloud beta healthcare datasets create $DATASET_ID --location=us-central1

Utwórz bazę FHIR w zbiorze danych za pomocą interfejsów Cloud Healthcare API

gcloud beta healthcare fhir-stores create $FHIR_STORE \
  --dataset=$DATASET_ID --location=us-central1 --version=r4

4. Zaimportuj dane do magazynu FHIR

Zaimportuj dane testowe z Google Cloud Storage do magazynu FHIR.

Użyjemy wstępnie wczytanych plików z zasobnika GCS. Te pliki zawierają zwykłe zasoby FHIR R4 w formacie NDJSON. W odpowiedzi wyświetli się numer OPERATION_NUMBER, którego możesz użyć podczas weryfikacji.

Importuj zwykłe zasoby z zasobnika GCS w projekcie GCP

gcloud beta healthcare fhir-stores import gcs $FHIR_STORE \
  --dataset=$DATASET_ID --async \
  --gcs-uri=gs://$BUCKET_NAME/fhir_r4_ndjson/**.ndjson \
  --location=us-central1 --content-structure=RESOURCE

Sprawdź

Operacja sprawdzania została zakończona. Działanie może potrwać kilka minut, więc być może trzeba będzie powtórzyć to polecenie kilka razy z pewnym opóźnieniem.

gcloud beta healthcare operations describe OPERATION_NUMBER \
  --dataset=$DATASET_ID --location=us-central1

5. Eksportowanie danych z bazy FHIR do BigQuery

Tworzenie zbioru danych BigQuery

bq mk --location=us --dataset $PROJECT_ID:$BQ_DATASET

Eksportuj dane o opiece zdrowotnej z magazynu FHIR do zbioru danych BigQuery

gcloud beta healthcare fhir-stores export bq $FHIR_STORE \
  --dataset=$DATASET_ID --location=us-central1 --async \
  --bq-dataset=bq://$PROJECT_ID.$BQ_DATASET \
  --schema-type=analytics

W odpowiedzi wyświetli się numer OPERATION_NUMBER, którego możesz użyć podczas weryfikacji.

Sprawdź

Weryfikacja została zakończona pomyślnie

gcloud beta healthcare operations describe OPERATION_NUMBER \
  --dataset=$DATASET_ID --location=us-central1

Sprawdzanie, czy zbiór danych BigQuery ma wszystkie 16 tabel

bq ls $PROJECT_ID:$BQ_DATASET

6. Czyszczenie danych

Aby uniknąć obciążenia konta Google Cloud Platform opłatami za zasoby zużyte w tym samouczku, możesz wyczyścić zasoby utworzone w GCP, aby nie zajmowały Twojego limitu. W przyszłości nie będziemy też naliczać za nie opłat. W poniższych sekcjach opisano, jak usunąć lub wyłączyć te zasoby.

Usuwanie projektu

Najprostszym sposobem na uniknięcie płatności jest usunięcie projektu utworzonego na potrzeby samouczka.

Aby usunąć projekt:

  1. W konsoli GCP otwórz stronę Projekty. OTWÓRZ STRONĘ PROJEKTY
  2. Na liście projektów wybierz projekt do usunięcia, a następnie kliknij Usuń.
  3. W oknie wpisz identyfikator projektu i kliknij Wyłącz, aby usunąć projekt.

Jeśli chcesz zachować projekt, możesz usunąć zbiór danych Cloud Healthcare i zbiór danych BigQuery, wykonując instrukcje opisane poniżej.

Usuwanie zbioru danych Cloud Healthcare API

Wykonaj te czynności, aby usunąć zbiór danych Healthcare API za pomocą konsoli GCP i interfejsu wiersza poleceń gcloud.

Polecenie szybkiego interfejsu wiersza poleceń:

gcloud beta healthcare datasets delete $DATASET_ID --location=us-central1

Usuwanie zbioru danych BigQuery

Wykonaj te czynności, aby usunąć zbiór danych BigQuery przy użyciu różnych interfejsów.

Polecenie szybkiego interfejsu wiersza poleceń:

bq rm -r -f $PROJECT_ID:$DATASET_ID

7. Gratulacje

Gratulujemy ukończenia modułu dotyczącego kodu związanego z pozyskiwaniem danych o stanie zdrowia w BigQuery przy użyciu interfejsów Cloud Healthcare API.

Zaimportowałeś dane syntetyczne zgodne z FHIR z Google Cloud Storage do interfejsów Cloud Healthcare FHIR API.

Dane zostały wyeksportowane do BigQuery z interfejsów Cloud Healthcare FHIR API.

Znasz już najważniejsze kroki, które musisz wykonać, aby rozpocząć korzystanie z BigQuery w Google Cloud Platform w usłudze Healthcare Data Analytics.