1. Wprowadzenie

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_PROJEKTU i IDENTYFIKATOR_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.
- Otwórz Bibliotekę API konsoli GCP.
- Na liście projektów wybierz swój projekt.
- 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.
- Na stronie interfejsu API kliknij WŁĄCZ.
Uzyskiwanie dostępu do syntetycznego zbioru danych
- 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.
- Otrzymasz e-maila z instrukcjami, jak potwierdzić działanie.
- Skorzystaj z opcji odpowiedzi na e-maila, aby dołączyć do grupy.
- NIE klikaj przycisku
. Nie działa. - 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:
- W konsoli GCP otwórz stronę Projekty. OTWÓRZ STRONĘ PROJEKTÓW
- Z listy projektów wybierz projekt, który chcesz usunąć, i 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, 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.