Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Bündelung der FHIR-Ressourcen
Ein FHIR Bundle ist ein Container für eine Sammlung von FHIR-Ressourcen in. AWS HealthLake AWS HealthLake unterstützt zwei Arten von Bundles mit unterschiedlichem Verhalten: oder. batchtransaction
-
Bei einem Batch-Paket wird jede im Paket enthaltene FHIR-Ressource einzeln verarbeitet und protokolliert. Jeder Ressourcenvorgang wird unabhängig von den anderen Ressourcen behandelt.
-
Bei einem Transaktionspaket werden alle im Paket enthaltenen FHIR-Ressourcen als atomare Operation verarbeitet. Alle Ressourcen des Vorgangs müssen erfolgreich sein, oder es werden keine Ressourcenaktualisierungen im Paket festgeschrieben und gespeichert.
Sie können FHIR-Ressourcen desselben oder verschiedener Typen bündeln, und sie können eine Mischung aus anderen in diesem Kapitel definierten FHIR-Interaktionen enthalten (z. B.create,, read updatedelete, undsearch). Weitere Informationen finden Sie unter Resource Bundle
Hauptunterschiede zwischen Paketen vom Typ Batch und Transaktion:
- Stapel
-
-
Unabhängige Operationen, die einzeln erfolgreich sein oder fehlschlagen können
-
Die Verarbeitung wird fortgesetzt, auch wenn einige Operationen fehlschlagen
-
Die Reihenfolge der Ausführung ist nicht garantiert
-
Ideal für Massenoperationen, bei denen ein teilweiser Erfolg akzeptabel ist
-
- Transaktion
-
-
Atomarität garantiert — entweder sind alle erfolgreich oder alle scheitern
-
Behält die referenzielle Integrität für lokal referenzierte Ressourcen (innerhalb des Bundles) bei
-
Die Operationen wurden in der angegebenen Reihenfolge verarbeitet
-
Schlägt vollständig fehl, wenn ein Vorgang fehlschlägt
-
Beispiele für Anwendungsfälle:
-
Batch: Hochladen mehrerer Patientenakten, die nichts miteinander zu tun haben
-
Transaktion: Erstellung eines Patienten mit ähnlichen Beobachtungen und Erkrankungen, bei dem alle gemeinsam erfolgreich sein müssen
Anmerkung
Beide verwenden den Bundle-Ressourcentyp, unterscheiden sich jedoch im Feld „Typ“:
{ "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" } } ] }
Bündelung von FHIR-Ressourcen als unabhängige Einheiten
Um FHIR-Ressourcen als unabhängige Einheiten zu bündeln
-
Sammeln HealthLake
regionund bewertendatastoreId. Weitere Informationen finden Sie unter Eigenschaften des Datenspeichers abrufen. -
Konstruieren Sie mithilfe der gesammelten Werte für HealthLake
regionund eine URL für die AnfragedatastoreId. Geben Sie in der URL keinen FHIR-Ressourcentyp an. Scrollen Sie über die Schaltfläche Kopieren, um den gesamten URL-Pfad im folgenden Beispiel anzuzeigen.POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/ -
Konstruieren Sie einen JSON-Hauptteil für die Anfrage und geben Sie jedes HTTP-Verb als Teil der
methodElemente an. Im folgenden Beispiel wird einebatchTypinteraktion mit derBundleRessource verwendet, um neueMedicationRessourcenPatientzu erstellen. Alle erforderlichen Abschnitte sind entsprechend kommentiert. Speichern Sie die Datei für dieses Verfahren unterbatch-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" } } ] } -
Senden Sie die Anforderung . Der
BundleBatchtyp FHIR verwendet einePOSTAnfrage mit entweder AWS Signature Version 4 oder SMART bei der FHIR-Autorisierung. Im folgenden Codebeispiel wird dascurlBefehlszeilentool zu Demonstrationszwecken verwendet.Der Server gibt eine Antwort zurück, in der die
MedicationRessourcenPatientund die Ressourcen angezeigt werden, die als Ergebnis derBundleBatch-Anfrage erstellt wurden.
PUTs Befriedigend in Paketen
AWS HealthLake unterstützt bedingte Updates innerhalb von Bundles mit den folgenden Abfrageparametern:
-
_id(eigenständig) -
_idin Kombination mit einer der folgenden Optionen:-
_tag -
_createdAt -
_lastUpdated
-
Basierend auf den Ergebnissen der Anpassung der für die vorhandene Ressource bereitgestellten Bedingungen wird Folgendes geschehen, wobei die zugehörigen Ergebniscodes die ergriffenen Maßnahmen angeben:
Bei der Erstellung oder Aktualisierung von FHIR-Ressourcen verarbeitet das System verschiedene Szenarien, die auf der Bereitstellung von Ressourcen-IDs und vorhandenen Übereinstimmungen basieren:
-
Ressourcen ohne IDs werden immer erstellt (201).
-
Ressourcen mit neuen Ressourcen IDs werden erstellt (201).
-
Ressourcen, die bereits vorhanden sind, aktualisieren IDs entweder die passende Ressource (200) oder geben Fehler zurück, wenn ein Konflikt (409) oder die ID nicht übereinstimmt (400).
-
Mehrere übereinstimmende Ressourcen lösen einen Fehler bei der Vorbedingung aus (419).
Im Beispielpaket mit bedingter Aktualisierung 456 wird die Patientenressource mit der FHIR-ID nur aktualisiert, wenn die Bedingung _lastUpdated=lt2025-04-20 erfüllt ist.
{ "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" } } ] }
Bündelung von FHIR-Ressourcen zu einer einzigen Einheit
Um FHIR-Ressourcen zu einer einzigen Einheit zu bündeln
-
Sammeln HealthLake
regionunddatastoreIdschätzen. Weitere Informationen finden Sie unter Eigenschaften des Datenspeichers abrufen. -
Konstruieren Sie mithilfe der gesammelten Werte für HealthLake
regionund eine URL für die AnfragedatastoreId. Nehmen Sie den FHIR-RessourcentypBundleals Teil der URL auf. Scrollen Sie über die Schaltfläche Kopieren, um den gesamten URL-Pfad im folgenden Beispiel anzuzeigen.POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Bundle -
Konstruieren Sie einen JSON-Hauptteil für die Anfrage und geben Sie die FHIR-Ressourcen an, die gruppiert werden sollen. Im folgenden Beispiel werden zwei
PatientRessourcen gruppiert HealthLake. Speichern Sie die Datei für dieses Verfahren unterbatch-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" ] } ] } } ] } -
Senden Sie die Anforderung . Der
BundleDokumenttyp FHIR verwendet einePOSTAnfrage mit dem AWS Signature Version 4-Signaturprotokoll. Im folgenden Codebeispiel wird dascurlBefehlszeilentool zu Demonstrationszwecken verwendet.Der Server gibt eine Antwort zurück, in der zwei
PatientRessourcen angezeigt werden, die als Ergebnis derBundleDokumenttypanforderung erstellt wurden.
Konfiguration der Validierungsebene für Bundles
Beim Bündeln von FHIR-Ressourcen können Sie optional einen x-amzn-healthlake-fhir-validation-level HTTP-Header angeben, um eine Validierungsebene für die Ressource zu konfigurieren. Diese Validierungsebene wird für alle Erstellungs- und Aktualisierungsanforderungen innerhalb des Bundles festgelegt. AWS HealthLake unterstützt derzeit die folgenden Validierungsstufen:
-
strict: Ressourcen werden anhand des Profilelements der Ressource oder der R4-Spezifikation, falls kein Profil vorhanden ist, validiert. Dies ist die Standardvalidierungsebene für AWS HealthLake. -
structure-only: Ressourcen werden anhand von R4 validiert, wobei alle referenzierten Profile ignoriert werden. -
minimal: Ressourcen werden minimal validiert, wobei bestimmte R4-Regeln ignoriert werden. Ressourcen, die die erforderlichen Strukturprüfungen nicht bestehen, search/analytics werden aktualisiert und enthalten nun eine Warnung zur Prüfung.
Ressourcen, die mit der Mindestvalidierungsstufe gebündelt sind, können in einen Datenspeicher aufgenommen werden, obwohl die für die Suchindizierung erforderliche Überprüfung fehlgeschlagen ist. In diesem Fall werden die Ressourcen mit einer Healthlake-spezifischen Erweiterung aktualisiert, um diese Fehler zu dokumentieren, und die Einträge in der Bundle-Antwort werden Ressourcen wie folgt enthalten: 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." } ] } } } ] }
Zusätzlich wird der folgende HTTP-Antwort-Header mit dem Wert „true“ hinzugefügt:
x-amzn-healthlake-validation-issues : true
Anmerkung
Beachten Sie, dass aufgenommene Daten, die gemäß der R4-Spezifikation falsch formatiert sind, möglicherweise nicht wie erwartet durchsucht werden können, wenn diese Fehler vorliegen.