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

1. Wprowadzenie

1f4764c4ca4c50d9.png

Ostatnia aktualizacja: 16 maja 2020 r.

W tym samouczku przedstawiamy wzorzec pozyskiwania danych, który umożliwia pozyskiwanie danych dotyczących opieki zdrowotnej w formacie FHIR R4 (zwykłe zasoby) do BigQuery za pomocą interfejsów Cloud Healthcare FHIR API. Wygenerowaliśmy dla Ciebie realistyczne dane testowe dotyczące opieki zdrowotnej i udostępniliśmy je w zasobniku Cloud Storage (gs://hcls_testing_data_fhir_10_patients/).

Z tego modułu dowiesz się:

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

Czego potrzebujesz, aby uruchomić tę wersję demonstracyjną?

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

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

Zasoby FHIR R4 w formacie NDJSON zostały wstępnie załadowane 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 JSON oddzielony znakami nowego wiersza (NDJSON), ale różnią się strukturą treści:

  • Zwykłe zasoby w formacie ndjson – każdy wiersz w pliku zawiera podstawowy zasób FHIR w formacie JSON (np. Pacjent, 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 wartości resourceType = „ Patient”, a plik Observation.ndjson będzie zawierać co najmniej 1 zasób FHIR o wartości resourceType = „ Observation”.

Jeśli potrzebujesz nowego zbioru danych, możesz go wygenerować za pomocą narzędzia SyntheaTM. Następnie prześlij go do GCS zamiast używać zasobnika podanego w samouczku.

2. Konfiguracja projektu

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

Inicjowanie zmiennych powłoki w środowisku

Aby znaleźć NUMER_PROJEKTUIDENTYFIKATOR_PROJEKTU, 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łączanie interfejsu Healthcare API

Wykonanie tych czynności spowoduje włączenie interfejsów Healthcare API w projekcie GCP. Spowoduje to dodanie do projektu konta usługi interfejsu Healthcare API.

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

Uzyskiwanie dostępu do syntetycznego zbioru danych

  1. Z adresu e-mail, którego używasz do logowania się w konsoli Cloud, wyślij e-maila na adres hcls-solutions-external+subscribe@google.com z prośbą o dołączenie.
  2. Otrzymasz e-maila z instrukcjami, jak potwierdzić działanie.
  3. Skorzystaj z opcji odpowiedzi na e-maila, aby dołączyć do grupy.
  4. NIE klikaj przycisku 525a0fa752e0acae.png. Nie działa.
  5. Gdy otrzymasz e-maila z potwierdzeniem, możesz przejść do następnego kroku w tym przewodniku.

Tworzenie zasobnika 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/

Przyznawanie uprawnień

Przed zaimportowaniem zasobów FHIR z Cloud Storage i wyeksportowaniem ich do BigQuery musisz przyznać dodatkowe uprawnienia kontu usługi agenta usługi Cloud Healthcare . Więcej informacji znajdziesz w sekcjach Uprawnienia do Cloud Storage w bazie FHIR i Uprawnienia do BigQuery w bazie FHIR.

Przyznawanie uprawnień administratora usługi Storage

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

Aby pozyskać dane z plików NDJSON do zbioru danych dotyczących opieki zdrowotnej w BigQuery za pomocą interfejsów Cloud Healthcare FHIR API, wykonaj te czynności:

Tworzenie zbioru danych Healthcare i bazy FHIR

Tworzenie zbioru danych Healthcare za pomocą interfejsów Cloud Healthcare API

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

Tworzenie bazy 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. Importowanie danych do bazy FHIR

Zaimportuj dane testowe z Google Cloud Storage do bazy FHIR.

Będziemy używać wstępnie załadowanych plików z zasobnika GCS. Pliki te zawierają zwykłe zasoby FHIR R4 w formacie NDJSON. W odpowiedzi otrzymasz OPERATION_NUMBER, którego możesz użyć w kroku weryfikacji.

Importowanie zwykłych zasobów 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

Zweryfikuj

Operacja weryfikacji została zakończona. Wykonanie tej operacji może potrwać kilka minut, więc może być konieczne powtórzenie tego polecenia 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

Utwórz zbiór danych BigQuery

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

Eksportowanie danych opieki zdrowotnej z bazy 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 otrzymasz OPERATION_NUMBER, którego możesz użyć w kroku weryfikacji.

Zweryfikuj

Operacja weryfikacji zakończona

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

Sprawdź, czy zbiór danych BigQuery zawiera wszystkie 16 tabel

bq ls $PROJECT_ID:$BQ_DATASET

6. Czyszczenie danych

Aby uniknąć obciążenia konta Google Cloud Platform opłatami za zasoby użyte w tym samouczku, możesz usunąć utworzone w GCP zasoby, aby nie zajmowały miejsca w ramach limitu i nie były w przyszłości obciążane opłatami. W sekcjach poniżej znajdziesz informacje o tym, jak usunąć te zasoby lub je wyłączyć.

Usuwanie projektu

Najprostszym sposobem na uniknięcie płatności jest usunięcie projektu utworzonego w tym samouczku.

Aby usunąć projekt:

  1. W konsoli GCP otwórz stronę Projekty. OTWÓRZ STRONĘ PROJEKTÓW
  2. Z listy projektów wybierz projekt, który chcesz usunąć, i 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, postępując zgodnie z poniższymi instrukcjami.

Usuwanie zbioru danych Cloud Healthcare API

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

Szybkie polecenie interfejsu wiersza poleceń:

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

Usuwanie zbioru danych BigQuery

Wykonaj kroki, aby usunąć zbiór danych BigQuery za pomocą różnych interfejsów.

Szybkie polecenie interfejsu wiersza poleceń:

bq rm -r -f $PROJECT_ID:$DATASET_ID

7. Gratulacje

Gratulacje! Udało Ci się ukończyć ćwiczenie z kodowania dotyczące pozyskiwania danych opieki zdrowotnej w BigQuery za pomocą interfejsów Cloud Healthcare API.

Dane syntetyczne zgodne ze standardem FHIR R4 zostały zaimportowane z Google Cloud Storage do interfejsów Cloud Healthcare FHIR API.

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

Znasz już najważniejsze kroki, które musisz wykonać, aby rozpocząć analizę danych dotyczących opieki zdrowotnej za pomocą BigQuery na platformie Google Cloud.