In questa pagina viene spiegato come creare, aggiornare, applicare patch, visualizzare, elencare, recuperare ed eliminare le risorse FHIR.
Una risorsa FHIR può contenere i dati su un paziente, un dispositivo, un'osservazione e altro ancora. Per un elenco completo delle risorse FHIR, consulta l'indice delle risorse FHIR (DSTU2, STU3, R4, o R5).
Gli esempi REST in questa pagina funzionano con un datastore FHIR R4 e non è garantito che funzionino se utilizzi un datastore FHIR DSTU2 o STU3. Se utilizzi un archivio FHIR DSTU2 o STU3, consulta la documentazione FHIR ufficiale per informazioni su come convertire gli esempi nella versione FHIR che stai utilizzando.
Gli esempi Go, Java, Node.js e Python funzionano con un archivio FHIR STU3.
Creazione di una risorsa FHIR
Prima di poter creare risorse FHIR, devi creare un archivio FHIR.
Gli esempi REST e Python mostrano come creare le seguenti risorse FHIR:
- Una risorsa Patient (DSTU2, STU3, R4, e R5)
- Una risorsa Encounter (DSTU2, STU3, R4, e R5) per il paziente
- Una risorsa Observation (DSTU2, STU3, R4, e R5) per l'incontro
Gli esempi per tutte le altre lingue mostrano come creare una risorsa FHIR generica.
Per ulteriori informazioni, vedi
projects.locations.datasets.fhirStores.fhir.create
.
Gli esempi REST riportati di seguito funzionano con gli archivi FHIR R4. Gli esempi Go, Java, Node.js e Python funzionano con gli archivi FHIR STU3.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- LOCATION: la posizione del set di dati
- DATASET_ID: il set di dati padre dell'archivio FHIR
- FHIR_STORE_ID: l'ID datastore FHIR
Corpo JSON della richiesta:
{ "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
cat > request.json << 'EOF' { "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" } EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
@' { "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui questo comando per inviare la richiesta REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Go
Java
Node.js
Python
Dopo aver creato la risorsa Patient, crea una risorsa Encounter per descrivere un'interazione tra il paziente e il medico.
Nel campo PATIENT_ID, sostituisci l'ID della risposta restituita dal server al momento della creazione della risorsa Patient.
Gli esempi REST riportati di seguito funzionano con gli archivi FHIR R4. L'esempio Python funziona con gli archivi FHIR STU3.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- LOCATION: la posizione del set di dati
- DATASET_ID: il set di dati padre dell'archivio FHIR
- FHIR_STORE_ID: l'ID datastore FHIR
- PATIENT_ID: la risposta restituita dal server al momento della creazione della risorsa Patient
Corpo JSON della richiesta:
{ "status": "finished", "class": { "system": "http://hl7.org/fhir/v3/ActCode", "code": "IMP", "display": "inpatient encounter" }, "reasonCode": [ { "text": "The patient had an abnormal heart rate. She was concerned about this." } ], "subject": { "reference": "Patient/PATIENT_ID" }, "resourceType": "Encounter" }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
cat > request.json << 'EOF' { "status": "finished", "class": { "system": "http://hl7.org/fhir/v3/ActCode", "code": "IMP", "display": "inpatient encounter" }, "reasonCode": [ { "text": "The patient had an abnormal heart rate. She was concerned about this." } ], "subject": { "reference": "Patient/PATIENT_ID" }, "resourceType": "Encounter" } EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Encounter"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
@' { "status": "finished", "class": { "system": "http://hl7.org/fhir/v3/ActCode", "code": "IMP", "display": "inpatient encounter" }, "reasonCode": [ { "text": "The patient had an abnormal heart rate. She was concerned about this." } ], "subject": { "reference": "Patient/PATIENT_ID" }, "resourceType": "Encounter" } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui questo comando per inviare la richiesta REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Encounter" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida dell'API Cloud Healthcare per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Healthcare Python.
Per autenticarti nell'API Cloud Healthcare, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Dopo aver creato la risorsa Encounter, crea una risorsa Observation associata alla risorsa Encounter. La risorsa Observation fornisce una misurazione del battito cardiaco del paziente in battiti al minuto (BPM) (80
in bpm
).
Gli esempi REST riportati di seguito funzionano con gli archivi FHIR R4. L'esempio Python funziona con gli archivi FHIR STU3.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- LOCATION: la posizione del set di dati
- DATASET_ID: il set di dati padre dell'archivio FHIR
- FHIR_STORE_ID: l'ID datastore FHIR
- PATIENT_ID: l'ID nella risposta restituita dal server al momento della creazione della risorsa Patient
- ENCOUNTER_ID: l'ID nella risposta restituita dal server al momento della creazione della risorsa Encounter
Corpo JSON della richiesta:
{ "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": 80, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
cat > request.json << 'EOF' { "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": 80, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
@' { "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": 80, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui questo comando per inviare la richiesta REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida dell'API Cloud Healthcare per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Healthcare Python.
Per autenticarti nell'API Cloud Healthcare, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Creare una risorsa FHIR in modo condizionale
Il seguente esempio di curl
mostra come utilizzare il metodo
projects.locations.datasets.fhirStores.fhir.create
per creare in modo condizionale una risorsa FHIR. Il metodo implementa
l'interazione FHIR condizionale create
(DSTU2, STU3, R4, R5).
Puoi utilizzare la creazione condizionale per evitare di creare risorse FHIR duplicate. Ad esempio, ogni risorsa Patient in un server FHIR in genere ha un identificatore univoco, ad esempio un numero di cartella clinica (MRN). Per creare una nuova risorsa Patient e assicurarti che non esista una risorsa Patient con lo stesso MRN, crea in modo condizionale la nuova risorsa utilizzando una query di ricerca. L'API Cloud Healthcare crea la nuova risorsa solo se non ci sono corrispondenze per la query di ricerca.
La risposta del server dipende dal numero di risorse che corrispondono alla query di ricerca:
Corrisponde a | Codice di risposta HTTP | Comportamento |
---|---|---|
Zero | 201 CREATED |
Crea la nuova risorsa. |
Uno | 200 OK |
Non crea una nuova risorsa. |
Più di uno | 412 Precondition Failed |
Non crea una nuova risorsa e restituisce un errore "search criteria are not selective enough" . |
Per utilizzare l'interazione condizionale create
anziché l'interazione create
,
specifica un'intestazione HTTP If-None-Exist
contenente una query di ricerca FHIR
nella richiesta:
If-None-Exist: FHIR_SEARCH_QUERY
Nell'API Cloud Healthcare v1, le operazioni condizionali utilizzano esclusivamente il parametro di ricerca identifier
, se esiste per il tipo di risorsa FHIR, per determinare quali risorse FHIR corrispondono a una query di ricerca condizionale.
REST
L'esempio seguente mostra come creare una risorsa Observation utilizzando un'intestazione HTTP If-None-Exist: identifier=my-code-system|ABC-12345
. L'API Cloud Healthcare
crea la risorsa se e solo se nessuna risorsa Observation esistente corrisponde
alla query identifier=my-code-system|ABC-12345
.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/fhir+json" \ -H "If-None-Exist: identifier=my-code-system|ABC-12345" \ -d @request.json \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation"
Il seguente output di esempio mostra intenzionalmente una richiesta non riuscita. Per visualizzare la risposta a una richiesta riuscita, consulta Creazione di una risorsa FHIR.
Se più risorse Observation corrispondono alla query, l'API Cloud Healthcare restituisce la seguente risposta e la richiesta di creazione condizionale non va a buon fine:
{
"issue": [
{
"code": "conflict",
"details": {
"text": "ambiguous_query"
},
"diagnostics": "search criteria are not selective enough",
"severity": "error"
}
],
"resourceType": "OperationOutcome"
}
Aggiornamento di una risorsa FHIR
Gli esempi riportati di seguito mostrano come utilizzare il metodo projects.locations.datasets.fhirStores.fhir.update
per aggiornare una risorsa FHIR. Il metodo implementa l'interazione di aggiornamento dello standard FHIR (DSTU2, STU3, R4 e R5).
Quando aggiorni una risorsa, aggiorni l'intero contenuto della risorsa. Ciò è in contrasto con l'applicazione di patch a una risorsa, che aggiorna solo una parte di una risorsa.
Se l'archivio FHIR ha
enableUpdateCreate
impostato, la richiesta viene trattata come un upsert (aggiornamento o inserimento) che aggiorna la
risorsa se esiste o la inserisce utilizzando l'ID specificato nella richiesta se
non esiste.
Il corpo della richiesta deve contenere una risorsa FHIR codificata in JSON e le intestazioni della richiesta devono contenere Content-Type: application/fhir+json
. La risorsa deve
contenere un elemento id
con un valore identico all'ID nel percorso REST della
richiesta.
Gli esempi REST riportati di seguito funzionano con gli archivi FHIR R4. Gli esempi Go, Java, Node.js e Python funzionano con gli archivi FHIR STU3.
REST
Gli esempi riportati di seguito mostrano come aggiornare i battiti al minuto (BPM) in una risorsa Observation.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- LOCATION: la posizione del set di dati
- DATASET_ID: il set di dati padre dell'archivio FHIR
- FHIR_STORE_ID: l'ID datastore FHIR
- OBSERVATION_ID: l'ID risorsa dell'osservazione
- PATIENT_ID: l'ID risorsa paziente
- ENCOUNTER_ID: l'ID risorsa di Encounter
- BPM_VALUE: il valore dei battiti al minuto (BPM) nella risorsa Observation aggiornata
Corpo JSON della richiesta:
{ "resourceType": "Observation", "id": "OBSERVATION_ID", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
cat > request.json << 'EOF' { "resourceType": "Observation", "id": "OBSERVATION_ID", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X PUT \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
@' { "resourceType": "Observation", "id": "OBSERVATION_ID", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui questo comando per inviare la richiesta REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PUT `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID" | Select-Object -Expand Content
Explorer API
Copia il corpo della richiesta e apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Incolla il corpo della richiesta in questo strumento, compila gli altri campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
Go
Node.js
Python
Aggiornamento condizionale di una risorsa FHIR
Gli esempi riportati di seguito mostrano come chiamare il metodo
projects.locations.datasets.fhirStores.fhir.conditionalUpdate
per aggiornare una risorsa FHIR che corrisponde a una query di ricerca, anziché identificare la risorsa in base al relativo ID. Il metodo implementa l'interazione di aggiornamento condizionale dello standard FHIR (DSTU2, STU3, R4 e R5).
Un aggiornamento condizionale può essere applicato a una sola risorsa FHIR alla volta.
La risposta restituita dal server dipende dal numero di corrispondenze che si verificano in base ai criteri di ricerca:
- Una corrispondenza: la risorsa viene aggiornata correttamente o viene restituito un errore.
- Più di una corrispondenza: la richiesta
restituisce un errore
412 Precondition Failed
. - Nessuna corrispondenza con un
id
: se i criteri di ricerca non identificano corrispondenze, il corpo della richiesta fornito contiene unid
e l'archivio FHIR haenableUpdateCreate
impostato sutrue
, la risorsa FHIR viene creata con ilid
nel corpo della richiesta. - Nessuna corrispondenza senza
id
: se i criteri di ricerca non identificano corrispondenze e il corpo della richiesta fornito non contiene unid
, la risorsa FHIR viene creata con un ID assegnato dal server come se fosse stata creata utilizzandoprojects.locations.datasets.fhirStores.fhir.create
.
Il corpo della richiesta deve contenere una risorsa FHIR codificata in JSON e le intestazioni della richiesta devono contenere Content-Type: application/fhir+json
.
Nell'API Cloud Healthcare v1, le operazioni condizionali utilizzano esclusivamente il parametro di ricerca identifier
, se esiste per il tipo di risorsa FHIR, per determinare quali risorse FHIR corrispondono a una query di ricerca condizionale.
REST
L'esempio riportato di seguito mostra come inviare una richiesta PUT
mediante curl
e PowerShell per modificare una risorsa Observation utilizzando l'identificatore dell'osservazione (ABC-12345
in my-code-system
). La risorsa Observation fornisce una misurazione del battito cardiaco al minuto (BPM) del paziente.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- LOCATION: la posizione del set di dati
- DATASET_ID: il set di dati padre dell'archivio FHIR
- FHIR_STORE_ID: l'ID datastore FHIR
- PATIENT_ID: l'ID risorsa paziente
- ENCOUNTER_ID: l'ID risorsa di Encounter
- BPM_VALUE: il valore dei battiti al minuto (BPM) nella risorsa Observation
Corpo JSON della richiesta:
{ "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
cat > request.json << 'EOF' { "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X PUT \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
@' { "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui questo comando per inviare la richiesta REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PUT `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345" | Select-Object -Expand Content
Explorer API
Copia il corpo della richiesta e apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Incolla il corpo della richiesta in questo strumento, compila gli altri campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
Applicazione di patch a una risorsa FHIR
Gli esempi riportati di seguito mostrano come chiamare il metodo
projects.locations.datasets.fhirStores.fhir.patch
per applicare una patch a una risorsa FHIR. Il metodo implementa l'interazione
patch standard FHIR
(DSTU2,
STU3,
R4,
e R5).
Quando applichi una patch a una risorsa, aggiorni una parte della risorsa applicando le operazioni specificate in un documento JSON Patch.
La richiesta deve contenere un documento patch JSON e le intestazioni della richiesta devono
contenere Content-Type: application/json-patch+json
.
Gli esempi riportati di seguito mostrano come
modificare una risorsa Observation. La risorsa Observation per i battiti cardiaci al minuto (BPM) di un paziente viene aggiornata mediante l'operazione di modifica replace
.
Gli esempi REST riportati di seguito funzionano con gli archivi FHIR R4. Gli esempi Go, Java, Node.js e Python funzionano con gli archivi FHIR STU3.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- LOCATION: la posizione del set di dati
- DATASET_ID: il set di dati padre dell'archivio FHIR
- FHIR_STORE_ID: l'ID datastore FHIR
- OBSERVATION_ID: l'ID risorsa dell'osservazione
- BPM_VALUE: il valore dei battiti al minuto (BPM) nella risorsa Observation patchata
Corpo JSON della richiesta:
[ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ]
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
cat > request.json << 'EOF' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json-patch+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
@' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui questo comando per inviare la richiesta REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json-patch+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Go
Java
Node.js
Python
Esecuzione di una richiesta PATCH
in un bundle FHIR
Puoi specificare una richiesta PATCH
in un bundle FHIR (solo FHIR R4).
L'esecuzione della richiesta PATCH
in un bundle FHIR consente di applicare patch a molte
risorse FHIR contemporaneamente, anziché dover effettuare singole richieste di patch
per ogni risorsa FHIR.
Per effettuare una richiesta PATCH
in un bundle, specifica le seguenti informazioni in
un oggetto resource
nella richiesta:
- Un campo
resourceType
impostato suBinary
- Un campo
contentType
impostato suapplication/json-patch+json
- Il corpo della patch codificato in base64
Assicurati che l'oggetto resource
abbia il seguente aspetto:
"resource": {
"resourceType": "Binary",
"contentType": "application/json-patch+json",
"data": "WyB7ICJvcCI6ICJyZXBsYWNlIiwgInBhdGgiOiAiL2JpcnRoRGF0ZSIsICJ2YWx1ZSI6ICIxOTkwLTAxLTAxIiB9IF0K"
}
Di seguito viene mostrato il corpo della patch codificato in Base64 nel campo data
:
[
{
"op": "replace",
"path": "/birthdate",
"value": "1990-01-01"
}
]
Gli esempi seguenti mostrano come utilizzare una richiesta PATCH
in un bundle per modificare la risorsa Patient creata in Creazione di una risorsa FHIR in modo che abbia un valore birthDate
pari a 1990-01-01
:
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud
- LOCATION: la posizione del set di dati padre
- DATASET_ID: il set di dati padre dell'archivio FHIR
- FHIR_STORE_ID: l'ID datastore FHIR
- PATIENT_ID: l'ID di una risorsa Patient esistente
Corpo JSON della richiesta:
{ "type": "transaction", "resourceType": "Bundle", "entry": [ { "request": { "method": "PATCH", "url": "Patient/PATIENT_ID" }, "resource": { "resourceType": "Binary", "contentType": "application/json-patch+json", "data": "WyB7ICJvcCI6ICJyZXBsYWNlIiwgInBhdGgiOiAiL2JpcnRoRGF0ZSIsICJ2YWx1ZSI6ICIxOTkwLTAxLTAxIiB9IF0K" } } ] }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
cat > request.json << 'EOF' { "type": "transaction", "resourceType": "Bundle", "entry": [ { "request": { "method": "PATCH", "url": "Patient/PATIENT_ID" }, "resource": { "resourceType": "Binary", "contentType": "application/json-patch+json", "data": "WyB7ICJvcCI6ICJyZXBsYWNlIiwgInBhdGgiOiAiL2JpcnRoRGF0ZSIsICJ2YWx1ZSI6ICIxOTkwLTAxLTAxIiB9IF0K" } } ] } EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
@' { "type": "transaction", "resourceType": "Bundle", "entry": [ { "request": { "method": "PATCH", "url": "Patient/PATIENT_ID" }, "resource": { "resourceType": "Binary", "contentType": "application/json-patch+json", "data": "WyB7ICJvcCI6ICJyZXBsYWNlIiwgInBhdGgiOiAiL2JpcnRoRGF0ZSIsICJ2YWx1ZSI6ICIxOTkwLTAxLTAxIiB9IF0K" } } ] } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui questo comando per inviare la richiesta REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Applicazione condizionale di patch a una risorsa FHIR
Gli esempi riportati di seguito mostrano come chiamare il metodo
projects.locations.datasets.fhirStores.fhir.conditionalPatch
per applicare una patch a una risorsa FHIR che corrisponde a una query di ricerca, anziché
identificare la risorsa in base al suo ID. Il metodo implementa l'interazione di patch condizionale dello standard FHIR (DSTU2, STU3, R4 e R4).
Una patch condizionale può essere applicata a una sola risorsa alla volta. Se i criteri di ricerca identificano più di una corrispondenza, la richiesta
restituisce un errore 412 Precondition Failed
.
Nell'API Cloud Healthcare v1, le operazioni condizionali utilizzano esclusivamente il parametro di ricerca identifier
, se esiste per il tipo di risorsa FHIR, per determinare quali risorse FHIR corrispondono a una query di ricerca condizionale.
REST
Gli esempi seguenti mostrano come inviare una richiesta PATCH
per modificare una risorsa Observation se l'identificatore dell'osservazione è ABC-12345
in my-code-system
.
La risorsa Observation per i battiti cardiaci al minuto (BPM) di un paziente viene aggiornata mediante l'operazione di modifica replace
.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- LOCATION: la posizione del set di dati
- DATASET_ID: il set di dati padre dell'archivio FHIR
- FHIR_STORE_ID: l'ID datastore FHIR
- BPM_VALUE: il valore dei battiti al minuto (BPM) nella risorsa Observation
Corpo JSON della richiesta:
[ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ]
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
cat > request.json << 'EOF' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json-patch+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
@' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui questo comando per inviare la richiesta REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json-patch+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345" | Select-Object -Expand Content
Explorer API
Copia il corpo della richiesta e apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Incolla il corpo della richiesta in questo strumento, compila gli altri campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
Recupero di una risorsa FHIR
Gli esempi riportati di seguito mostrano come recuperare una risorsa FHIR.
Gli esempi REST riportati di seguito funzionano con gli archivi FHIR R4. Gli esempi Go, Java, Node.js e Python funzionano con gli archivi FHIR STU3.
Console
Nella console Google Cloud , vai alla pagina Visualizzatore FHIR.
Nell'elenco a discesa Archivio FHIR, seleziona un set di dati, quindi seleziona un archivio FHIR nel set di dati.
Per filtrare l'elenco dei tipi di risorse, cerca quelli che vuoi visualizzare.
Fai clic sul campo Tipo di risorsa.
Nell'elenco a discesa Proprietà che viene visualizzato, seleziona Tipo di risorsa.
Inserisci un tipo di risorsa.
Per cercare un altro tipo di risorsa, seleziona OR dall'elenco a discesa Operatori visualizzato, quindi inserisci un altro tipo di risorsa.
Nell'elenco dei tipi di risorse, seleziona il tipo di risorsa per la risorsa di cui vuoi ottenere i contenuti.
Nella tabella delle risorse visualizzata, seleziona o cerca una risorsa.
REST
Gli esempi seguenti mostrano come utilizzare il metodo projects.locations.datasets.fhirStores.fhir.read
per ottenere i dettagli della risorsa Observation creata in una sezione precedente.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- LOCATION: la posizione del set di dati
- DATASET_ID: il set di dati padre dell'archivio FHIR
- FHIR_STORE_ID: l'ID datastore FHIR
- OBSERVATION_ID: l'ID risorsa dell'osservazione
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID" | Select-Object -Expand Content
Explorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Completa i campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
Go
Java
Node.js
Python
Recupera tutti i dettagli delle risorse Encounter
Gli esempi riportati di seguito mostrano come visualizzare i dettagli di una risorsa Encounter e di tutte le risorse correlate all'incontro.
Il metodo implementa l'operazione estesa FHIR
Encounter-everything
definita nelle seguenti versioni di FHIR:
REST
Utilizza il metodo projects.locations.datasets.fhirStores.fhir.Encounter-everything
.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: l'ID del tuo Google Cloud progettoLOCATION
: la posizione del set di datiDATASET_ID
: l'ID set di datiFHIR_STORE_ID
: l'ID datastore FHIRENCOUNTER_ID
: l'ID risorsa di Encounter
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Encounter/ENCOUNTER_ID/\$everything"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Encounter/ENCOUNTER_ID/\$everything" | Select-Object -Expand Content
c427ce3e-7677-400e-bc06-33a8cecfdd77
, che è una risorsa sintetica nel bucket Cloud Storage pubblico gs://gcp-public-data--synthea-fhir-data-10-patients/fhir_r4_ndjson/
.
Visualizzazione di tutte le risorse di un alloggiamento del paziente
Gli esempi riportati di seguito mostrano come recuperare tutte le risorse associate a un determinato alloggiamento del paziente
(DSTU2,
STU3,
R4,
e R5).
Per ulteriori informazioni, vedi
projects.locations.datasets.fhirStores.fhir.Patient-everything
.
Gli esempi REST riportati di seguito funzionano con gli archivi FHIR R4. Gli esempi Go, Java, Node.js e Python funzionano con gli archivi FHIR STU3.
curl
Per ottenere le risorse in un alloggiamento del paziente, effettua una richiesta GET
e specifica le seguenti informazioni:
- Il nome del set di dati padre
- Il nome del datastore FHIR
- L'ID del paziente
- Un token di accesso
Il seguente esempio mostra una richiesta GET
mediante curl
:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID/\$everything"
Se la richiesta riesce, il server restituisce una risposta simile a quella dell'esempio seguente in formato JSON:
{ "entry": [ { "resource": { "birthDate": "1970-01-01", "gender": "female", "id": "PATIENT_ID", "name": [ { "family": "Smith", "given": [ "Darcy" ], "use": "official" } ], "resourceType": "Patient" } }, { "resource": { "class": { "code": "IMP", "display": "inpatient encounter", "system": "http://hl7.org/fhir/v3/ActCode" }, "id": "ENCOUNTER_ID", "reasonCode": [ { "text": "The patient had an abnormal heart rate. She was concerned about this." } ], "resourceType": "Encounter", "status": "finished", "subject": { "reference": "Patient/PATIENT_ID" } } }, { "resource": { "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": BPM_VALUE } } } ], "resourceType": "Bundle", "type": "searchset" }
PowerShell
Per ottenere le risorse in un alloggiamento del paziente, effettua una richiesta GET
e specifica le seguenti informazioni:
- Il nome del set di dati padre
- Il nome del datastore FHIR
- L'ID del paziente
- Un token di accesso
Il seguente esempio mostra una richiesta GET
mediante PowerShell:
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-RestMethod ` -Method Get ` -Headers $headers ` -Uri 'https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/RESOURCE_ID/$everything' | ConvertTo-Json
Se la richiesta riesce, il server restituisce una risposta simile a quella dell'esempio seguente in formato JSON:
{ "entry": [ { "resource": { "birthDate": "1970-01-01", "gender": "female", "id": "PATIENT_ID", "name": [ { "family": "Smith", "given": [ "Darcy" ], "use": "official" } ], "resourceType": "Patient" } }, { "resource": { "class": { "code": "IMP", "display": "inpatient encounter", "system": "http://hl7.org/fhir/v3/ActCode" }, "id": "ENCOUNTER_ID", "reasonCode": [ { "text": "The patient had an abnormal heart rate. She was concerned about this." } ], "resourceType": "Encounter", "status": "finished", "subject": { "reference": "Patient/PATIENT_ID" } } }, { "resource": { "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": BPM_VALUE } } } ], "resourceType": "Bundle", "type": "searchset" }
Go
Java
Node.js
Python
Visualizzazione delle risorse di un alloggiamento del paziente filtrate per tipo o data
Gli esempi riportati di seguito mostrano come recuperare tutte le risorse associate a un determinato
alloggiamento del paziente (R4)
filtrate in base a un elenco di tipi e a partire da una data e un'ora specificate.
Per ulteriori informazioni, vedi
projects.locations.datasets.fhirStores.fhir.Patient-everything
.
Gli esempi REST riportati di seguito funzionano con gli archivi FHIR R4.
curl
Per ottenere le risorse in un alloggiamento del paziente di un tipo specifico e a partire da una data specifica, effettua una richiesta GET
e specifica le seguenti informazioni:
- Il nome del set di dati padre
- Il nome del datastore FHIR
- L'ID del paziente
- Una stringa di query contenente un elenco di tipi di risorse separati da virgole e la data di inizio
- Un token di accesso
Il seguente esempio mostra una richiesta GET
mediante curl
:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID/\$everything?_type=RESOURCE_TYPES&_since=DATE"
Se la richiesta riesce, il server restituisce tutte le risorse che corrispondono ai criteri specificati in formato JSON.
PowerShell
Per ottenere le risorse in un alloggiamento del paziente di un tipo specifico e a partire da una data specifica, effettua una richiesta GET
e specifica le seguenti informazioni:
- Il nome del set di dati padre
- Il nome del datastore FHIR
- L'ID del paziente
- Una stringa di query contenente un elenco di tipi di risorse separati da virgole e la data di inizio
- Un token di accesso
Il seguente esempio mostra una richiesta GET
mediante PowerShell:
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-RestMethod ` -Method Get ` -Headers $headers ` -Uri 'https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/RESOURCE_ID/$everything?_type=RESOURCE_TYPES&_since=DATE' | ConvertTo-Json
Se la richiesta riesce, il server restituisce tutte le risorse che corrispondono ai criteri specificati in formato JSON.
Elenco delle versioni delle risorse FHIR
Puoi elencare le versioni cronologiche di una risorsa FHIR, incluse la versione corrente e le eventuali versioni eliminate. In questo modo, puoi:
- Tieni traccia delle modifiche apportate a cartelle cliniche, farmaci o piani di cura.
- Se una risorsa FHIR contiene dati errati, puoi visualizzare le versioni precedenti per determinare quando sono stati inseriti i dati errati e recuperare le informazioni corrette.
- Garantisci la conformità alle normative fornendo audit trail completi.
Gli esempi REST riportati di seguito funzionano con gli archivi FHIR R4. Gli esempi Go, Java, Node.js e Python funzionano con gli archivi FHIR STU3.
Console
Nella console Google Cloud , vai alla pagina Visualizzatore FHIR.
Nel menu Archivio FHIR, seleziona un set di dati, quindi seleziona un archivio FHIR nel set di dati.
Per filtrare l'elenco dei tipi di risorse FHIR, cerca i tipi di risorse che vuoi visualizzare.
Fai clic sul campo Tipo di risorsa.
Nell'elenco a discesa Proprietà che viene visualizzato, seleziona Tipo di risorsa.
Inserisci un tipo di risorsa FHIR.
Nell'elenco dei tipi di risorse FHIR, seleziona un tipo di risorsa.
Nella tabella delle risorse FHIR visualizzata, seleziona o cerca una risorsa.
Per visualizzare e confrontare le versioni cronologiche della risorsa FHIR, fai clic sulla scheda Panoramica e poi segui questi passaggi:
- Per visualizzare le versioni cronologiche della risorsa FHIR, fai clic su Visualizza versioni cronologiche nella stessa riga di ID versione. Nel riquadro Seleziona una versione della risorsa, seleziona la versione e poi fai clic su Conferma. I dati nella versione vengono inseriti nelle schede Panoramica, Elementi e JSON.
- Per confrontare due versioni della risorsa FHIR, nella stessa riga di ID versione, fai clic su Confronta le versioni delle risorse. Nel riquadro Seleziona le versioni della risorsa da confrontare, seleziona due versioni della risorsa e poi fai clic su Conferma. Le due versioni della risorsa vengono visualizzate in una visualizzazione differenziale, con la prima versione selezionata a sinistra e la seconda a destra.
REST
Utilizza il metodo projects.locations.datasets.fhirStores.fhir.history
.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: l'ID del tuo Google Cloud progettoLOCATION
: la posizione del set di datiDATASET_ID
: il set di dati padre dell'archivio FHIRFHIR_STORE_ID
: l'ID datastore FHIRRESOURCE_TYPE
: il tipo di risorsa FHIRRESOURCE_ID
: l'ID risorsa FHIR
Per inviare la richiesta, scegli una di queste opzioni:
curl
Gli esempi riportati di seguito mostrano come elencare tutte le versioni di una risorsa Observation. Questa risorsa è stata aggiornata una sola volta dopo la creazione originale per modificare i battiti cardiaci al minuto (BPM) del paziente.Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/_history"
PowerShell
Gli esempi riportati di seguito mostrano come elencare tutte le versioni di una risorsa Observation. Questa risorsa è stata aggiornata una sola volta dopo la creazione originale per modificare i battiti cardiaci al minuto (BPM) del paziente.Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/_history" | Select-Object -Expand Content
{ "entry": [ { "resource": { "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-02T00:00:00+00:00", "versionId": "MTU0MTE5MDk5Mzk2ODcyODAwMA" }, "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": 85 } } }, { "resource": { "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-01T00:00:00+00:00", "versionId": "MTU0MTE5MDg4MTY0MzQ3MjAwMA" }, "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": 75 } } } ], "resourceType": "Bundle", "type": "history" }
Go
Java
Node.js
Python
Recupero di una versione di una risorsa FHIR
Gli esempi riportati di seguito mostrano come recuperare una versione specifica di una risorsa FHIR.
Per trovare una versione specifica, puoi elencare le versioni della risorsa FHIR
e poi visualizzare le informazioni relative a quella versione. L'ID versione è contenuto nel campo
"versionId"
. Ad esempio, vedi il seguente corpo JSON in cui sono evidenziati gli ID versione per la risorsa Observation nella sezione Elenco delle versioni di una risorsa FHIR:
{ "entry": [ { "resource": { "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-02T00:00:00+00:00", "versionId": "MTU0MTE5MDk5Mzk2ODcyODAwMA" }, ... { "resource": { "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-01T00:00:00+00:00", "versionId": "MTU0MTE5MDg4MTY0MzQ3MjAwMA" }, ... }
Gli esempi seguenti utilizzano le risorse create nella sezione Creazione di una risorsa FHIR e mostrano come visualizzare una risorsa Observation. Gli esempi REST funzionano con gli archivi FHIR R4. Gli esempi Go, Node.js e Python funzionano con gli archivi FHIR STU3.
Console
Nella console Google Cloud , vai alla pagina Visualizzatore FHIR.
Nel menu Archivio FHIR, seleziona un set di dati, quindi seleziona un archivio FHIR nel set di dati.
Per filtrare l'elenco dei tipi di risorse FHIR, cerca i tipi di risorse che vuoi visualizzare.
Fai clic sul campo Tipo di risorsa.
Nell'elenco a discesa Proprietà che viene visualizzato, seleziona Tipo di risorsa.
Inserisci un tipo di risorsa FHIR.
Nell'elenco dei tipi di risorse FHIR, seleziona un tipo di risorsa.
Nella tabella delle risorse FHIR visualizzata, seleziona o cerca una risorsa.
Per visualizzare una versione specifica della risorsa FHIR:
- Fai clic sulla scheda Panoramica.
- Nella stessa riga di ID versione, fai clic su Visualizza versioni cronologiche.
- Nel riquadro Seleziona una versione della risorsa, seleziona la versione e poi fai clic su Conferma. I dati nella versione vengono inseriti nelle schede Panoramica, Elementi e JSON.
REST
Utilizza il metodo projects.locations.datasets.fhirStores.fhir.vread
.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: l'ID del tuo Google Cloud progettoLOCATION
: la posizione del set di datiDATASET_ID
: il set di dati padre dell'archivio FHIRFHIR_STORE_ID
: l'ID datastore FHIRRESOURCE_TYPE
: il tipo di risorsa FHIRRESOURCE_ID
: l'ID risorsa FHIRRESOURCE_VERSION
: la versione della risorsa FHIR
Per inviare la richiesta, scegli una di queste opzioni:
curl
Gli esempi riportati di seguito mostrano come elencare tutte le versioni di una risorsa Observation. Questa risorsa è stata aggiornata una sola volta dopo la creazione originale per modificare i battiti cardiaci al minuto (BPM) del paziente.Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/_history/RESOURCE_VERSION"
PowerShell
Gli esempi riportati di seguito mostrano come elencare tutte le versioni di una risorsa Observation. Questa risorsa è stata aggiornata una sola volta dopo la creazione originale per modificare i battiti cardiaci al minuto (BPM) del paziente.Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/_history/RESOURCE_VERSION" | Select-Object -Expand Content
{ "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-01T00:00:00+00:00", "versionId": "MTU0MTE5MDg4MTY0MzQ3MjAwMA" }, "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": 75 } }
Go
Java
Node.js
Python
Eliminazione di una risorsa FHIR
Gli esempi riportati di seguito mostrano come chiamare il metodo
projects.locations.datasets.fhirStores.fhir.delete
per eliminare una risorsa FHIR Observation.
Indipendentemente dall'esito dell'operazione, il server restituisce un codice di stato HTTP 200 OK
. Per verificare che la risorsa sia stata eliminata correttamente, cercala o recuperala e verifica se esiste.
Gli esempi REST riportati di seguito funzionano con gli archivi FHIR R4. Gli esempi Go, Java, Node.js e Python funzionano con gli archivi FHIR STU3.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- LOCATION: la posizione del set di dati
- DATASET_ID: il set di dati padre dell'archivio FHIR
- FHIR_STORE_ID: l'ID datastore FHIR
- OBSERVATION_ID: l'ID risorsa dell'osservazione
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID" | Select-Object -Expand Content
Explorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Completa i campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
Go
Java
Node.js
Python
Eliminare in modo condizionale una risorsa FHIR
Nell'API Cloud Healthcare v1, le operazioni condizionali utilizzano esclusivamente il parametro di ricerca identifier
, se esiste per il tipo di risorsa FHIR, per determinare quali risorse FHIR corrispondono a una query di ricerca condizionale.
Una risorsa FHIR corrisponde alla query ?identifier=my-code-system|ABC-12345
se e solo se il identifier.system
della risorsa
è my-code-system
e il suo identifier.value
è ABC-12345
. Se una risorsa FHIR
corrisponde alla query, l'API Cloud Healthcare la elimina.
Se la query utilizza il parametro di ricerca identifier
e corrisponde a più risorse FHIR, l'API Cloud Healthcare restituisce un errore "412 - Condition not selective enough"
.
Per eliminare singolarmente le risorse:
- Cerca ogni risorsa per ottenere il relativo ID univoco assegnato dal server.
- Elimina singolarmente ogni risorsa utilizzando l'ID.
Gli esempi riportati di seguito mostrano come eliminare in modo condizionale una risorsa FHIR che corrisponde a una query di ricerca,
anziché identificare la risorsa FHIR in base al suo ID.
La query di ricerca corrisponde ed elimina una risorsa Observation utilizzando l'identificatore dell'osservazione (ABC-12345
in my-code-system
).
REST
Utilizza il metodo projects.locations.datasets.fhirStores.fhir.conditionalDelete
.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: l'ID del tuo Google Cloud progettoLOCATION
: la posizione del set di datiDATASET_ID
: il set di dati padre dell'archivio FHIRFHIR_STORE_ID
: l'ID datastore FHIR
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345" | Select-Object -Expand Content
Explorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Completa i campi obbligatori e fai clic su Esegui.
Dovresti ricevere un codice di stato riuscito (2xx) e una risposta vuota.
Eliminazione delle versioni cronologiche di una risorsa FHIR
Gli esempi riportati di seguito mostrano come eliminare tutte le versioni cronologiche di una risorsa FHIR utilizzando il metodo projects.locations.datasets.fhirStores.fhir.Resource-purge
.
La chiamata al metodo projects.locations.datasets.fhirStores.fhir.Resource-purge
è limitata agli utenti (chiamanti) con il ruolo
roles/healthcare.fhirStoreAdmin
; gli utenti con il ruolo roles/healthcare.fhirResourceEditor
non possono
chiamare il metodo. Per consentire a un chiamante di eliminare le versioni cronologiche di una risorsa FHIR:
- Assicurati che il chiamante abbia il ruolo
roles/healthcare.fhirStoreAdmin
. - Crea un ruolo IAM personalizzato
con l'autorizzazione
healthcare.fhirResources.purge
e assegna il ruolo al chiamante.
Gli esempi utilizzano le risorse create nella sezione Creazione di una risorsa FHIR e mostrano come eliminare le versioni cronologiche di una risorsa Observation.
Gli esempi REST riportati di seguito funzionano con gli archivi FHIR R4. Gli esempi Go, Java, Node.js e Python funzionano con gli archivi FHIR STU3.
REST
Utilizza il metodo projects.locations.datasets.fhirStores.fhir.Resource-purge
.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: l'ID del tuo Google Cloud progettoLOCATION
: la posizione del set di datiDATASET_ID
: il set di dati padre dell'archivio FHIRFHIR_STORE_ID
: l'ID datastore FHIRRESOURCE_TYPE
: il tipo di risorsa FHIRRESOURCE_ID
: l'ID risorsa FHIR
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/$purge"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/$purge" | Select-Object -Expand Content
Dovresti ricevere un codice di stato riuscito (2xx) e una risposta vuota.