1. Wprowadzenie
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.
- Otwórz bibliotekę interfejsów API konsoli GCP.
- Wybierz swój projekt z listy projektów.
- 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.
- Na stronie interfejsu API kliknij WŁĄCZ.
Uzyskiwanie dostępu do syntetycznego zbioru danych
- 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.
- Otrzymasz e-maila z instrukcjami, jak potwierdzić tę czynność.
- Użyj tej opcji, by odpowiedzieć na e-maila, aby dołączyć do grupy.
- NIE klikaj przycisku . To nie działa.
- 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:
- W konsoli GCP otwórz stronę Projekty. OTWÓRZ STRONĘ PROJEKTY
- Na liście projektów wybierz projekt do usunięcia, a następnie kliknij Usuń.
- 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.