Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Raggruppamento di risorse FHIR
Un FHIR Bundle è un contenitore per una raccolta di risorse FHIR in. AWS HealthLake AWS HealthLake supporta due tipi di pacchetti con comportamenti diversi: o. batchtransaction
-
Per un pacchetto «batch», ogni risorsa FHIR contenuta nel pacchetto viene elaborata e registrata singolarmente. Ogni operazione relativa alle risorse viene gestita indipendentemente dalle altre risorse.
-
Per un pacchetto di «transazioni», tutte le risorse FHIR contenute nel pacchetto vengono elaborate come un'operazione atomica. Tutte le risorse dell'operazione devono avere esito positivo, altrimenti non viene eseguito alcun aggiornamento delle risorse nel pacchetto e archiviato.
È possibile raggruppare risorse FHIR dello stesso tipo o di tipo diverso e queste possono includere una combinazione di altre interazioni FHIR definite in questo capitolo (ad esempiocreate, readupdate, delete e). search Per ulteriori informazioni, vedere Resource Bundle
Principali differenze tra i pacchetti Batch e quelli di tipo Transaction:
- Batch
-
-
Operazioni indipendenti che possono avere successo o fallire individualmente
-
L'elaborazione continua anche se alcune operazioni falliscono
-
Ordine di esecuzione non garantito
-
Ideale per operazioni di massa in cui è accettabile un successo parziale
-
- Transaction
-
-
Atomicità garantita: o tutti hanno successo o tutti falliscono
-
Mantiene l'integrità referenziale per le risorse referenziate localmente (all'interno di Bundle)
-
Operazioni elaborate nell'ordine specificato
-
Fallisce completamente se un'operazione fallisce
-
Casi d'uso di esempio:
-
Batch: caricamento di più cartelle cliniche di pazienti non correlate
-
Transazione: creazione di un paziente con osservazioni e condizioni correlate in cui tutti devono avere successo insieme
Nota
Entrambi utilizzano il tipo di risorsa Bundle ma differiscono nel campo «tipo»:
{ "resourceType": "Bundle", "type": "transaction", "entry": [ { "fullUrl": "urn:uuid:4f6a30fb-cd3c-4ab6-8757-532101f72065", "resource": { "resourceType": "Patient", "id": "new-patient", "active": true, "name": [ { "family": "Johnson", "given": [ "Sarah" ] } ], "gender": "female", "birthDate": "1985-08-12", "telecom": [ { "system": "phone", "value": "555-123-4567", "use": "home" } ] }, "request": { "method": "POST", "url": "Patient" } }, { "fullUrl": "urn:uuid:7f83f473-d8cc-4a8d-86d3-9d9876a3248b", "resource": { "resourceType": "Observation", "id": "blood-pressure", "status": "final", "code": { "coding": [ { "system": "http://loinc.org", "code": "85354-9", "display": "Blood pressure panel" } ], "text": "Blood pressure panel" }, "subject": { "reference": "urn:uuid:4f6a30fb-cd3c-4ab6-8757-532101f72065" }, "effectiveDateTime": "2023-10-15T09:30:00Z", "component": [ { "code": { "coding": [ { "system": "http://loinc.org", "code": "8480-6", "display": "Systolic blood pressure" } ] }, "valueQuantity": { "value": 120, "unit": "mmHg", "system": "http://unitsofmeasure.org", "code": "mm[Hg]" } }, { "code": { "coding": [ { "system": "http://loinc.org", "code": "8462-4", "display": "Diastolic blood pressure" } ] }, "valueQuantity": { "value": 80, "unit": "mmHg", "system": "http://unitsofmeasure.org", "code": "mm[Hg]" } } ] }, "request": { "method": "POST", "url": "Observation" } }, { "resource": { "resourceType": "Appointment", "id": "appointment-123", "status": "booked", "description": "Annual physical examination", "start": "2023-11-15T09:00:00Z", "end": "2023-11-15T09:30:00Z", "participant": [ { "actor": { "reference": "urn:uuid:4f6a30fb-cd3c-4ab6-8757-532101f72065" }, "status": "accepted" } ] }, "request": { "method": "PUT", "url": "Appointment/appointment-123" } }, { "request": { "method": "DELETE", "url": "MedicationRequest/med-request-456" } } ] }
Raggruppamento delle risorse FHIR come entità indipendenti
Raggruppare le risorse FHIR come entità indipendenti
-
Raccogli HealthLake
regionedatastoreIdvalorizza. Per ulteriori informazioni, consulta Ottenere le proprietà dell'archivio dati. -
Costruisci un URL per la richiesta utilizzando i valori raccolti per HealthLake
regionedatastoreId. Non specificate un tipo di risorsa FHIR nell'URL. Per visualizzare l'intero percorso dell'URL nell'esempio seguente, scorri il pulsante Copia.POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/ -
Costruisci un corpo JSON per la richiesta, specificando ogni verbo HTTP come parte degli elementi.
methodL'esempio seguente utilizza un'interazionebatchdi tipo con laBundlerisorsa per creare nuove risorse.PatientMedicationTutte le sezioni obbligatorie vengono commentate di conseguenza. Ai fini di questa procedura, salva il file con nome.batch-independent.json{ "resourceType": "Bundle", "id": "bundle-batch", "meta": { "lastUpdated": "2014-08-18T01:43:30Z" }, "type": "batch", "entry": [ { "resource": { "resourceType": "Patient", "meta": { "lastUpdated": "2022-06-03T17:53:36.724Z" }, "text": { "status": "generated", "div": "Some narrative" }, "active": true, "name": [ { "use": "official", "family": "Jackson", "given": [ "Mateo", "James" ] } ], "gender": "male", "birthDate": "1974-12-25" }, "request": { "method": "POST", "url": "Patient" } }, { "resource": { "resourceType": "Medication", "id": "med0310", "contained": [ { "resourceType": "Substance", "id": "sub03", "code": { "coding": [ { "system": "http://snomed.info/sct", "code": "55452001", "display": "Oxycodone (substance)" } ] } } ], "code": { "coding": [ { "system": "http://snomed.info/sct", "code": "430127000", "display": "Oral Form Oxycodone (product)" } ] }, "form": { "coding": [ { "system": "http://snomed.info/sct", "code": "385055001", "display": "Tablet dose form (qualifier value)" } ] }, "ingredient": [ { "itemReference": { "reference": "#sub03" }, "strength": { "numerator": { "value": 5, "system": "http://unitsofmeasure.org", "code": "mg" }, "denominator": { "value": 1, "system": "http://terminology.hl7.org/CodeSystem/v3-orderableDrugForm", "code": "TAB" } } } ] }, "request": { "method": "POST", "url": "Medication" } } ] } -
Inviare la richiesta . Il tipo di
Bundlebatch FHIR utilizza unaPOSTrichiesta con autorizzazione AWS Signature Version 4 o SMART on FHIR. Il seguente esempio di codice utilizza lo strumento da riga dicurlcomando a scopo dimostrativo.Il server restituisce una risposta che mostra le
MedicationrisorsePatiente le risorse create a seguito dellaBundlerichiesta di tipo batch.
Condizionale PUTs nei pacchetti
AWS HealthLake supporta gli aggiornamenti condizionali all'interno dei pacchetti utilizzando i seguenti parametri di query:
-
_id(autonomo) -
_idin combinazione con uno dei seguenti:-
_tag -
_createdAt -
_lastUpdated
-
In base ai risultati della corrispondenza alle condizioni fornite alla risorsa esistente, si verificherà quanto segue con i codici di risultato associati che indicano l'azione intrapresa:
Durante la creazione o l'aggiornamento delle risorse FHIR, il sistema gestisce diversi scenari in base alla fornitura degli ID delle risorse e alle corrispondenze esistenti:
-
Le risorse senza IDs vengono sempre create (201).
-
IDs Vengono create risorse con nuovo (201).
-
Le risorse esistenti IDs aggiornano la risorsa corrispondente (200) o restituiscono errori in caso di conflitto (409) o mancata corrispondenza degli ID (400).
-
Più risorse corrispondenti generano un errore di precondizione (419).
Nell'esempio Bundle with conditional update, la risorsa Patient with FHIR ID 456 verrà aggiornata solo se la condizione è soddisfatta. _lastUpdated=lt2025-04-20
{ "resourceType": "Bundle", "id": "bundle-batch", "meta": { "lastUpdated": "2014-08-18T01:43:30Z" }, "type": "batch", "entry": [ { "resource": { "resourceType": "Patient", "id": "476", "meta": { "lastUpdated": "2022-06-03T17:53:36.724Z" }, "active": true, "name": [ { "use": "official", "family": "Jackson", "given": [ "Mateo", "James" ] } ], "gender": "male", "birthDate": "1974-12-25" }, "request": { "method": "PUT", "url": "Patient?_id=476&_lastUpdated=lt2025-04-20" } }, { "resource": { "resourceType": "Medication", "id": "med0310", "contained": [ { "resourceType": "Substance", "id": "sub03", "code": { "coding": [ { "system": "http://snomed.info/sct", "code": "55452001", "display": "Oxycodone (substance)" } ] } } ], "code": { "coding": [ { "system": "http://snomed.info/sct", "code": "430127000", "display": "Oral Form Oxycodone (product)" } ] }, "form": { "coding": [ { "system": "http://snomed.info/sct", "code": "385055001", "display": "Tablet dose form (qualifier value)" } ] }, "ingredient": [ { "itemReference": { "reference": "#sub03" }, "strength": { "numerator": { "value": 5, "system": "http://unitsofmeasure.org", "code": "mg" }, "denominator": { "value": 1, "system": "http://terminology.hl7.org/CodeSystem/v3-orderableDrugForm", "code": "TAB" } } } ] }, "request": { "method": "POST", "url": "Medication" } } ] }
Raggruppamento delle risorse FHIR come un'unica entità
Per raggruppare le risorse FHIR come un'unica entità
-
Raccolta HealthLake
regione valori.datastoreIdPer ulteriori informazioni, consulta Ottenere le proprietà dell'archivio dati. -
Costruisci un URL per la richiesta utilizzando i valori raccolti per HealthLake
regionedatastoreId. Includi il tipo di risorsa FHIRBundlecome parte dell'URL. Per visualizzare l'intero percorso dell'URL nell'esempio seguente, scorri il pulsante Copia.POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Bundle -
Costruisci un corpo JSON per la richiesta, specificando le risorse FHIR da raggruppare. L'esempio seguente raggruppa due risorse in.
PatientHealthLake Ai fini di questa procedura, salva il file con nomebatch-single.json.{ "resourceType": "Bundle", "id": "bundle-minimal", "language": "en-US", "identifier": { "system": "urn:oid:1.2.3.4.5", "value": "28b95815-76ce-457b-b7ae-a972e527db4f" }, "type": "document", "timestamp": "2020-12-11T14:30:00+01:00", "entry": [ { "fullUrl": "urn:uuid:f40b07e3-37e8-48c3-bf1c-ae70fe12dabf", "resource": { "resourceType": "Composition", "id": "f40b07e3-37e8-48c3-bf1c-ae70fe12dabf", "status": "final", "type": { "coding": [ { "system": "http://loinc.org", "code": "60591-5", "display": "Patient summary Document" } ] }, "date": "2020-12-11T14:30:00+01:00", "author": [ { "reference": "urn:uuid:45271f7f-63ab-4946-970f-3daaaa0663ff" } ], "title": "Patient Summary as of December 7, 2020 14:30" } }, { "fullUrl": "urn:uuid:45271f7f-63ab-4946-970f-3daaaa0663ff", "resource": { "resourceType": "Practitioner", "id": "45271f7f-63ab-4946-970f-3daaaa0663ff", "active": true, "name": [ { "family": "Doe", "given": [ "John" ] } ] } } ] } -
Inviare la richiesta . Il tipo di
Bundledocumento FHIR utilizza unaPOSTrichiesta con protocollo di AWS firma Signature Version 4. Il seguente esempio di codice utilizza lo strumento da riga dicurlcomando a scopo dimostrativo.Il server restituisce una risposta che mostra due
Patientrisorse create a seguito della richiesta delBundletipo di documento.
Configurazione del livello di convalida per i pacchetti
Quando raggruppate le risorse FHIR, potete facoltativamente specificare un'intestazione x-amzn-healthlake-fhir-validation-level HTTP per configurare un livello di convalida per la risorsa. Questo livello di convalida verrà impostato per tutte le richieste di creazione e aggiornamento all'interno del pacchetto. AWS HealthLake attualmente supporta i seguenti livelli di convalida:
-
strict: Le risorse vengono convalidate in base all'elemento del profilo della risorsa o alla specifica R4 se non è presente alcun profilo. Questo è il livello di convalida predefinito per. AWS HealthLake -
structure-only: Le risorse vengono convalidate rispetto a R4, ignorando i profili di riferimento. -
minimal: Le risorse vengono convalidate minimamente, ignorando alcune regole R4. Le risorse che non superano i controlli di struttura richiesti search/analytics verranno aggiornate per includere un avviso per l'audit.
Le risorse associate al livello di convalida minimo possono essere inserite in un Datastore nonostante la convalida non riuscita richiesta per l'indicizzazione della ricerca. In questo caso, le risorse verranno aggiornate per includere un'estensione specifica di Healthlake per documentare tali errori e le voci contenute nella risposta del Bundle includeranno le seguenti risorse: OperationOutcome
{ "resourceType": "Bundle", "type": "batch-response", "timestamp": "2025-08-25T22:58:48.846287342Z", "entry": [ { "response": { "status": "201", "location": "Patient/195abc49-ba8e-4c8b-95c2-abc88fef7544/_history/1", "etag": "W/\"1\"", "lastModified": "2025-08-25T22:58:48.801245445Z", "outcome": { "resourceType": "OperationOutcome", "issue": [ { "severity": "error", "code": "processing", "details": { "text": "FHIR resource in payload failed FHIR validation rules." }, "diagnostics": "FHIR resource in payload failed FHIR validation rules." } ] } } } ] }
Inoltre, la seguente intestazione di risposta HTTP verrà inclusa con il valore «true»:
x-amzn-healthlake-validation-issues : true
Nota
Tieni presente che i dati inseriti in formato non corretto secondo la specifica R4 potrebbero non essere ricercabili come previsto se questi errori sono presenti.