Google Cloud FHIR APIs: Data Ingestion, Management, and Analytics
Kalyan Pamarthy & Dharmesh Patel, Google Cloud Healthcare
HL7 FHIR DevDays 2020, Virtual Edition, November 17–20, 2020 | @FirelyTeam | #fhirdevdays | www.devdays.com/november-2020
HL7®, FHIR® and the flame Design mark are the registered trademarks of Health Level Seven International and are used with permission. About us
Kalyan Pamarthy Dharmesh Patel Product Manager Solutions Manager Google Cloud Healthcare API Google Cloud Healthcare API
2 ● Learn about the Google Cloud Healthcare API & Managed FHIR capabilities
● Preview recently launched features - OSS and Managed APIs
● See Managed FHIR capabilities in action! Cloud Healthcare API ● Let’s Build! Google Cloud FHIR APIs ● Leveraging Synthetic Data to Benchmark Thursday, Nov 19th, 5:15 pm-6:00 pm CET a Cloud-Based FHIR API Onix Friday, Nov 20th, 2:00 pm-2:45 pm ET ● Building FHIR Analytics and AI Applications Thursday, Nov 19th, 5:15 pm-5:35 pm CET
● FHIR Analytics using OHDSI Tools on Cloud Thursday, Nov 19th, 5:40 pm-6:00 pm CET 1. Google Cloud Healthcare - FHIR APIs
5 Accelerate your healthcare solution development
● Primary API surface for healthcare specific data management in the Google Cloud Platform.
● Fully managed, Standards based serverless, REST APIs ○ FHIR (DSTU2, STU3 and R4) ○ HL7v2 ○ DICOM
● Value add capabilities (e.g De-Identification, Data Transformation, NLP) ● Stores PHI data in compliance with regulations (e.g HIPAA) Healthcare API ● Integrated with other Google Cloud applications (e.g BigQuery) ● Integrated with Google Cloud components (e.g Cloud PubSub, Cloud Functions)
● Support for Smart on FHIR Apps with Apigee API Management cloud.google.com/healthcare
Generally Available + new features in Preview Supported FHIR ● DSTU2, STU3 & R4 Support Versions
● Import and Export FHIR resources in ndJSON from/to Google Cloud Import & Export Storage ● Export to BigQuery - Streaming and Batch
Standard FHIR ● Resource Create/Read/Update/Patch/History/Delete Operations CRUD
● FHIR Search Cloud Healthcare Advanced FHIR ● Patient $Everything Operations FHIR APIs ● Execute Bundle (Batch & Transaction)
Notifications ● Pub/Sub notifications on changes to FHIR server
De-identification ● Standard and custom configurations to de-identify FHIR resources New IG Support & ● Configure and validate structured definitions Profiles ● Configure and validate IGs such as US Core, CARIN and DaVinci profiles
New Bulk Data ● $ export (System Level) with _type and _since
Cloud Healthcare Conditional ● Conditionally update and delete FHIR resources that match a search Update/Delete query FHIR APIs
Observation ● Retrieves the N most recent Observation resources for a subject Last$n matching search criteria specified as query parameters
● Translates a code from one value set to another using a concept map, Terminology or user provided concept maps to translate any code system to another $translate code 2. Google Cloud Healthcare - Data Transformation
10 New
CCD to FHIR ● Transform CCD XML documents to FHIR https://github.com/GoogleCloudPlatform/healthcare-data-harmonization/tree/master/mapping_configs/cda_fhir_r4
New DICOM to FHIR ● Transform DICOM studies to FHIR https://github.com/GoogleCloudPlatform/healthcare-data-harmonization/tree/master/mapping_configs/dicom_fhir_r4
HL7v2 to FHIR ● Transform HL7v2 messages to FHIR Cloud Healthcare https://github.com/GoogleCloudPlatform/healthcare-data-harmonization/tree/master/mapping_configs/hl7v2_fhir_r4 FHIR APIs
https://github.com/GoogleCloudPlatform/healthcare-data-harmonization { { "segmentId": "XAD", "use": "Work", "fields": { Transformation "text": "55 Fruit Street Massachusetts General "1": "55 Fruit Street", Hospital Boston MA 02114 USA", "2": "Massachusetts General Hospital", library "line": [ "3": "Boston", "55 Fruit Street" "4": "MA", ], "5": "02114", "city": "Boston", "6": "USA", "district": 100, "7": "Work", "state": "MA", "8": "Other geographic designation", "zipCode": "02114", use: XAD.7 "9": "100" "country": "USA", text: " ", XAD.1, XAD.2, XAD.3, XAD.4, } "type": "physical" XAD.5, XAD.6 => _StrJoin } } line: XAD.1 => _ListOf city: XAD.3 district: XAD.9 state: XAD.4 Sample maps: zipCode: XAD.5 - HL7v2 to FHIR for ADT_A01 country: XAD.6 Supports repeated and nested structures, and ORU_R01 initially type: "physical" terminology mapping, unit harmonization,
- FHIR to OMOP clinical entity extraction, user-defined - OMOP to FHIR Whistle mapping config functions - CCD to FHIR Healthcare API Cloud Data Fusion OSS Dataflow
FHIR Import API Fully managed, cloud-native data integration Reference Cloud Dataflow (Apache service for building and managing ETL and ELT Beam) pipeline to converting streaming data pipelines. HL7v2 messages to FHIR resources
With a graphical interface and a broad open Whistle Cloud Cloud source library of preconfigured connectors Storage config Healthcare and transformations, Cloud Data Fusion shie s https://github.com/GoogleCloudPlatform/healthcare-data-harmonization an organization’s focus away from code and FHIR Export API integration to insights and action.
Cloud Whistle BigQuery Healthcare config
HL7v2 → FHIR API
Cloud Whistle Cloud Healthcare config Healthcare 3. Google Cloud Healthcare - FHIR De-identification
14 Proprietary + Confidential Proprietary + Confidential
Raw FHIR Redacted Evaluation Analytics data DelD FHIR data and validation Secure sharing AI/ML training and prediction Proprietary + Confidential Proprietary + Confidential
Original (FHIR) record De-identified FHIR record Proprietary + Confidential
Leverage the Google Cloud Healthcare Project deployed (from start to API serverless capabilities to receive finish) in 3 weeks ADT, ORU, ORM & MDM messages, transform to FHIR and project into COVID monitoring dashboards BigQuery for analytics at scale (circa available for C-Suite 2M messages per day):- Drill down : Health System > HL7 > FHIR > BigQuery > Looker Hospital > Unit > Patient All components running in Google Cloud, with multiple (5) feeds from HL7 Data latency circa 2-3 minutes interface engines. Processing 1000 messages per minute through the data pipeline. Proprietary + Confidential
1
2 replace sensitive data with a fixed character, ex. “John” > “****”
3 replace input with a category label, ex. “John” > “[NAME]”
4 shie by a random number of days, with the option to maintain chronological order between dates belonging to the same patient or population
5 replace input with a hashed value generated using a (customer-defined) encryption key Demo time! Ingest, Manage and Analyze Healthcare Data using FHIR
A. B. D. E. Configure Ingest C. Export Analyze FHIR Server HL7v2 De-identify Data to Data using in Google Data in FHIR Store GCS & BigQuery Cloud FHIR Store BigQuery & Looker
22 Configure FHIR API in Google Cloud
A. B. D. E. Configure Ingest C. Export Analyze FHIR Server HL7v2 De-identify Data to Data using in Google Data in FHIR Store GCS & BigQuery Cloud FHIR Store BigQuery & Looker
1 2 3 4 5 Create FHIR Import Enable Ingest FHIR Browse Store Impl. Guide Impl. Guide Data FHIR Data
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://healthcare.googleapis.com/v1alpha2/projects/ha-portal/locations/us-central1/datas ets/default-dataset/fhirStores/default-fhir-store"
23 Ingest HL7v2 data in FHIR Store
A. B. D. E. Configure Ingest C. Export Analyze FHIR Server HL7v2 De-identify Data to Data using in Google Data in FHIR Store GCS & BigQuery Cloud FHIR Store BigQuery & Looker
HL7v2 HL7v2 HL7v2 FHIR
Simulated EHR MLLP Cloud FHIR HL7v2 Store Adapter1 Dataflow2 Store
Cloud Pub/Sub 1. https://github.com/GoogleCloudPlatform/mllp 2. https://github.com/GoogleCloudPlatform/healthcare-data-harmonization-dataflow 3. https://github.com/GoogleCloudPlatform/healthcare-data-harmonization/tree/master/mapping_configs/hl7v2_fhir_r4 24 De-identify FHIR Store
A. B. D. E. Configure Ingest C. Export Analyze FHIR API in HL7v2 De-identify Data to Data using Google Data in FHIR Store GCS & BigQuery Cloud FHIR Store BigQuery & Looker
De-identify
FHIR Store FHIR Store (FHIR Data with PII/PHI) (De-identified FHIR Data)
25 Export Data to Cloud Storage & BigQuery
A. B. D. E. Configure Ingest C. Export Analyze FHIR API in HL7v2 De-identify Data to Data using Google Data in FHIR Store GCS & BigQuery Cloud FHIR Store BigQuery & Looker
:export
FHIR Store BigQuery
$export
Cloud Storage
26 Analyze Data using Looker
A. B. E. D. Configure Ingest C. Analyze Stream FHIR API in HL7v2 De-identify Data using Data to Google Data in FHIR Store BigQuery BigQuery Cloud FHIR Store & Looker
BigQuery Looker
27 Let’s Build: Google Cloud FHIR APIs Let’s Build! on Thursday Thursday, Nov 19th, 5:15pm - 6pm CET
1. Submit a request for the Google Cloud Sandbox environment (QwikLab) at bit.ly/google-cloud-fhir
2. You will receive instructions to access the Google Cloud Sandbox Environment (QwikLab)
3. During the Let’s Build, we will walk through setting up a Cloud FHIR server and using FHIR APIs with synthetic data
4. Follow along and ask questions!
28 Email us or find us on Zulip to chat about FHIR@Google
Kalyan Pamarthy Dharmesh Patel Product Manager Solutions Manager Google Cloud Healthcare API Google Cloud Healthcare API [email protected] [email protected]
29