Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Agrupación de recursos del FHIR
Un FHIR Bundle es un contenedor que contiene una colección de recursos del FHIR. AWS HealthLake AWS HealthLake admite dos tipos de paquetes con diferentes comportamientos de procesamiento.
Batch
Transaction
| Característica | Lote | Transacción |
|---|---|---|
| Modelo de procesamiento | Cada operación se realiza correctamente o fracasa de forma independiente. | Todas las operaciones tienen éxito o fallan como una sola unidad atómica. |
| Administración de errores | El procesamiento continúa incluso si las operaciones individuales fallan. | Se produce un error en todo el paquete si se produce un error en una sola operación. |
| Orden de ejecución | La orden de ejecución no está garantizada. | Las operaciones se procesan en el orden especificado. |
| Integridad referencial | No se aplica en todas las operaciones. | Se aplica a los recursos referenciados localmente dentro del paquete. |
| Más adecuado para | Operaciones masivas en las que es aceptable un éxito parcial. | Recursos relacionados que deben crearse o actualizarse juntos. |
Puede agrupar recursos del FHIR del mismo tipo o de tipos diferentes, y estos pueden incluir una combinación de operaciones del FHIRcreate, como, read updatedelete, y. patch Para obtener información adicional, consulte el paquete de recursos
A continuación se muestran ejemplos de casos de uso para cada tipo de paquete.
- Paquetes por lotes
-
-
Cargue varios registros de pacientes no relacionados de diferentes centros durante la sincronización de datos nocturna.
-
Cargue de forma masiva los registros históricos de medicamentos cuando algunos registros puedan tener problemas de validación.
-
Carga datos de referencia, como organizaciones y profesionales, de forma que los errores individuales no afecten a otras entradas.
-
- Paquetes de transacciones
-
-
Cree un paciente con las observaciones y afecciones relacionadas durante un ingreso al servicio de urgencias, donde todos los datos deben registrarse juntos.
-
Actualice la lista de medicamentos del paciente y la información relacionada con las alergias, que debe ser coherente.
-
Registre un encuentro completo con el paciente, las observaciones, los procedimientos y la información de facturación como una sola unidad atómica.
-
importante
Tanto los paquetes de lotes como los de transacciones utilizan la misma estructura Bundle de recursos. La única diferencia es el valor del type campo.
El siguiente ejemplo muestra un paquete de transacciones con varios tipos de recursos y operaciones.
{ "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" } } ] }
Agrupar los recursos del FHIR como entidades independientes
Para agrupar los recursos del FHIR como entidades independientes
-
Recolecta HealthLake
regionydatastoreIdvalora. Para obtener más información, consulte Obtención de propiedades de los almacenes de datos. -
Cree una URL para la solicitud utilizando los valores recopilados para HealthLake
regionydatastoreId. No especifique un tipo de recurso FHIR en la URL. Para ver la ruta URL completa en el siguiente ejemplo, desplázate sobre el botón Copiar.POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/ -
Crea un cuerpo JSON para la solicitud y especifica cada verbo HTTP como parte de los
methodelementos. En el siguiente ejemplo, se utiliza una interacción debatchtipos con elBundlerecurso para crearMedicationrecursosPatienty nuevos. Todas las secciones obligatorias se comentan en consecuencia. Para realizar este procedimiento, guarde el archivo comobatch-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" } } ] } -
Envíe la solicitud . El tipo de
Bundlelote del FHIR utiliza unaPOSTsolicitud con la versión 4 de AWS Signature o SMART previa autorización del FHIR. El siguiente ejemplo de código utiliza la herramienta de línea decurlcomandos con fines de demostración.El servidor devuelve una respuesta que muestra los
MedicationrecursosPatienty los recursos creados como resultado de la solicitudBundlepor lotes.
Condicional PUTs en paquetes
AWS HealthLake admite las actualizaciones condicionales dentro de los paquetes mediante los siguientes parámetros de consulta:
-
_id(independiente) -
_iden combinación con uno de los siguientes:-
_tag -
_createdAt -
_lastUpdated
-
Cuando utilizas la opción condicional PUTs en paquetes, AWS HealthLake evalúa los parámetros de la consulta comparándolos con los recursos existentes y toma medidas en función de los resultados de las coincidencias.
| Escenario | Estado HTTP | Acción emprendida |
|---|---|---|
| Recurso sin ID proporcionado | 201 Creado | Siempre crea un recurso nuevo. |
| Recurso con un nuevo identificador (no coincide) | 201 Creado | Crea un nuevo recurso con el ID especificado. |
| Recurso con un ID existente (coincidencia única) | 200 OK | Actualiza el recurso coincidente. |
| Recurso con un identificador existente (se detectó un conflicto) | Conflicto, 409 | Devuelve un error. No se realiza ningún cambio. |
| Recurso con un identificador existente (los identificadores no coinciden) | 400: solicitud maligna | Devuelve un error. No se realiza ningún cambio. |
| Varios recursos cumplen las condiciones | Condición previa con error, 412 | Devuelve un error. No se realiza ningún cambio. |
En el siguiente paquete de ejemplo con una actualización condicional, el Patient recurso con el identificador FHIR se 476 actualiza solo si _lastUpdated=lt2025-04-20 se cumple la condición.
{ "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" } } ] }
Agrupar los recursos del FHIR como una sola entidad
Para agrupar los recursos del FHIR como una sola entidad
-
HealthLake
regionRecopila ydatastoreIdvalora. Para obtener más información, consulte Obtención de propiedades de los almacenes de datos. -
Cree una URL para la solicitud utilizando los valores recopilados para HealthLake
regionydatastoreId. Incluya el tipo de recurso FHIRBundlecomo parte de la URL. Para ver la ruta URL completa en el siguiente ejemplo, desplázate sobre el botón Copiar.POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Bundle -
Crea un cuerpo JSON para la solicitud, especificando los recursos del FHIR que quieres agrupar. En el siguiente ejemplo, se agrupan dos
Patientrecursos. HealthLake Para realizar este procedimiento, guarde el archivo comobatch-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" ] } ] } } ] } -
Envíe la solicitud . El tipo de
Bundledocumento FHIR utiliza unaPOSTsolicitud con el protocolo de AWS firma Signature versión 4. El siguiente ejemplo de código utiliza la herramienta de línea decurlcomandos con fines de demostración.El servidor devuelve una respuesta que muestra dos
Patientrecursos creados como resultado de la solicitud de tipo deBundledocumento.
Configurar el nivel de validación de los paquetes
Al agrupar los recursos del FHIR, puede especificar opcionalmente un encabezado x-amzn-healthlake-fhir-validation-level HTTP para configurar un nivel de validación para el recurso. Este nivel de validación se establecerá para todas las solicitudes de creación y actualización del paquete. AWS HealthLake actualmente admite los siguientes niveles de validación:
-
strict: Los recursos se validan según el elemento de perfil del recurso o según la especificación R4 si no hay ningún perfil presente. Este es el nivel de validación predeterminado para AWS HealthLake. -
structure-only: Los recursos se validan con el R4 e ignoran los perfiles a los que se hace referencia. -
minimal: Los recursos se validan mínimamente, ignorando ciertas reglas de R4. Los recursos que no superen las comprobaciones de estructura requeridas se search/analytics actualizarán para incluir una advertencia para la auditoría.
Los recursos incluidos con un nivel de validación mínimo pueden incorporarse a un almacén de datos a pesar de no pasar la validación necesaria para la indexación de las búsquedas. En este caso, los recursos se actualizarán para incluir una extensión específica de Healthlake para documentar dichos errores, y las entradas de la respuesta del paquete incluirán los siguientes recursos: 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." } ] } } } ] }
Además, se incluirá el siguiente encabezado de respuesta HTTP con el valor «true»:
x-amzn-healthlake-validation-issues : true
nota
Tenga en cuenta que es posible que los datos ingresados que tengan un formato incorrecto según la especificación R4 no se puedan buscar como se esperaba si se presentan estos errores.
Soporte limitado para el tipo de paquete «mensaje»
HealthLake proporciona un soporte limitado para el tipo de paquete FHIR message mediante un proceso de conversión interno. Este soporte está diseñado para situaciones en las que los paquetes de mensajes no se pueden volver a formatear en su origen, por ejemplo, cuando se ingieren ficheros ADT (admisión, alta, transferencia) de sistemas hospitalarios antiguos.
aviso
Esta función requiere la inclusión explícita de las AWS cuentas en la lista y no impone la semántica de los mensajes R4 ni la integridad referencial del FHIR. Póngase en contacto con AWS Support para solicitar la activación de su cuenta antes de usar paquetes de mensajes.
Diferencias clave con respecto al procesamiento de mensajes estándar
-
Paquetes de mensajes (especificación FHIR): la primera entrada debe ser una
MessageHeaderque haga referencia a otros recursos. Los recursos carecen derequestobjetos individuales y el MessageHeader evento determina las acciones de procesamiento. -
HealthLake Procesamiento: convierte los paquetes de mensajes en paquetes por lotes mediante la asignación automática de operaciones PUT a cada entrada de recursos. Los recursos se procesan de forma independiente sin imponer la semántica de los mensajes ni la integridad referencial.
Limitaciones importantes
-
No se aplican las reglas de procesamiento específicas de los mensajes del FHIR R4
-
No hay integridad transaccional en todos los recursos
-
Las referencias entre recursos no están validadas
-
Requiere la inclusión explícita de cuentas en la lista
Ejemplo de estructura de paquete de mensajes
{ "resourceType": "Bundle", "type": "message", "entry": [ { "resource": { "resourceType": "MessageHeader", "eventCoding": { "system": "http://hl7.org/fhir/us/davinci-alerts/CodeSystem/notification-event", "code": "notification-admit" }, "focus": [{"reference": "Encounter/example-id"}] } }, { "resource": {"resourceType": "Patient", "id": "example-id"} }, { "resource": {"resourceType": "Encounter", "id": "example-id"} } ] }
nota
Cada recurso se almacena de forma independiente, como si se hubiera enviado mediante operaciones PUT individuales. Si se requiere una validación completa de la semántica de los mensajes o de la integridad referencial del FHIR, procese previamente los paquetes de mensajes o implemente una validación a nivel de aplicación antes de enviarlos.
Transacciones de paquetes asíncronas
AWS HealthLake admite el Bundle tipo asíncrono transaction que le permite enviar transacciones con hasta 500 recursos. Al enviar una transacción asíncrona, la pone en HealthLake cola para su procesamiento e inmediatamente devuelve una URL de sondeo. Puedes usar esta URL para comprobar el estado y recuperar la respuesta. Sigue el patrón de paquetes asíncronos del FHIR
Cuándo usar transacciones asíncronas
-
Debe enviar más de 100 recursos (límite sincrónico) en una sola transacción.
-
Desea evitar bloquear su solicitud mientras espera a que se complete el procesamiento de la transacción.
-
Necesita procesar grandes volúmenes de recursos relacionados con un mejor rendimiento.
importante
Los resultados de la encuesta están disponibles durante 90 días después de que se complete la transacción. Después de este período de 90 días, la URL de la encuesta ya no devuelve los resultados. Diseñe su integración para recuperar y almacenar los resultados en esta ventana.
nota
El Bundle tipo síncrono transaction sigue admitiendo hasta 100 recursos y es el modo de procesamiento predeterminado. Si envía un Bundle tipo transaction con más de 100 recursos sin el Prefer: respond-async encabezado, HealthLake devuelve un 422 Unprocessable Entity error. Los paquetes con tipo no batch se admiten para el procesamiento asíncrono; solo los Bundle tipos se transaction pueden enviar de forma asíncrona (con un máximo de 500 operaciones).
Enviar una transacción asíncrona
Para enviar una transacción asíncrona, envíe una POST solicitud al punto final del almacén de datos con el encabezado. Prefer: respond-async El paquete debe tener un tipo. transaction Los paquetes con un tipo no batch se admiten para el procesamiento asíncrono de paquetes.
HealthLake realiza las validaciones iniciales del paquete en el momento de su envío. Si la validación se realiza correctamente, HealthLake devuelve HTTP 202 Accepted con un encabezado de content-location respuesta que contiene la URL de la encuesta.
Para enviar un tipo Bundle asíncrono transaction
-
Envíe una
POSTsolicitud al punto final del almacén de HealthLake datos.POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/ -
Cree un cuerpo JSON para la solicitud con el tipo de paquete
transaction. Para este procedimiento, guarde el archivo comoasync-transaction.json.{ "resourceType": "Bundle", "type": "transaction", "entry": [ { "resource": { "resourceType": "Patient", "active": true, "name": [ { "use": "official", "family": "Smith", "given": ["Jane"] } ], "gender": "female", "birthDate": "1990-01-15" }, "request": { "method": "POST", "url": "Patient" } }, { "resource": { "resourceType": "Observation", "status": "final", "code": { "coding": [ { "system": "http://loinc.org", "code": "85354-9", "display": "Blood pressure panel" } ] }, "subject": { "reference": "urn:uuid:example-patient-id" } }, "request": { "method": "POST", "url": "Observation" } } ] } -
Envíe la solicitud con el
Prefer: respond-asyncencabezado. El tipo deBundletransacción del FHIR utiliza unaPOSTsolicitud con la versión 4 de la AWS firma o SMART con la autorización del FHIR. El siguiente ejemplo de código utiliza la herramienta de línea decurlcomandos con fines de demostración. -
Si el envío se realiza correctamente, el servidor devuelve HTTP 202 Accepted. El encabezado de la
content-locationrespuesta contiene la URL de la encuesta. El cuerpo de la respuesta es unOperationOutcomerecurso.HTTP/1.1 202 Accepted content-location: https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Transaction/transactionId{ "resourceType": "OperationOutcome", "issue": [ { "severity": "information", "code": "informational", "diagnostics": "Submitted Asynchronous Bundle Transaction", "location": [ "https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Transaction/transactionId" ] } ] }
Sondeo del estado de la transacción
Después de enviar una transacción asíncrona, usa la URL de sondeo del encabezado de content-location respuesta para comprobar el estado de la transacción. Envía una GET solicitud a la URL de la encuesta.
nota
En el caso de los almacenes de datos habilitados para SMART o FHIR, el token de autorización debe incluir read permisos sobre el tipo de Transaction recurso para comprobar el estado de la transacción. Para obtener más información sobre SMART en los ámbitos del FHIR, consulte. Los osciloscopios SMART on FHIR OAuth 2.0 son compatibles con HealthLake
Envíe una GET solicitud a la URL de la encuesta. En el siguiente ejemplo, se utiliza la herramienta de línea de curl comandos.
En la siguiente tabla se describen las posibles respuestas.
| Estado HTTP | Significado | Cuerpo de respuesta |
|---|---|---|
| 202: aceptada | La transacción está en cola | OperationOutcomecon el diagnóstico «ENVIADO» |
| 202: aceptada | La transacción se está procesando | OperationOutcomecon el diagnóstico «IN_PROGRESS» |
| 200 OK | La transacción se completó correctamente | Bundlecon tipo transaction-response |
| 4xx/5xx | Transacción fallida | OperationOutcomecon detalles del error |
Los siguientes ejemplos muestran cada tipo de respuesta.
Transacción en cola (202)
{ "resourceType": "OperationOutcome", "id": "transactionId", "issue": [ { "severity": "information", "code": "informational", "diagnostics": "SUBMITTED" } ] }
Procesamiento de transacciones (202)
{ "resourceType": "OperationOutcome", "id": "transactionId", "issue": [ { "severity": "information", "code": "informational", "diagnostics": "IN_PROGRESS" } ] }
Transacción completada (200)
{ "resourceType": "Bundle", "type": "transaction-response", "entry": [ { "response": { "status": "201", "location": "Patient/example-id/_history/1", "etag": "W/\"1\"", "lastModified": "2024-01-15T10:30:00.000Z" } }, { "response": { "status": "201", "location": "Observation/example-id/_history/1", "etag": "W/\"1\"", "lastModified": "2024-01-15T10:30:00.000Z" } } ] }
Transacción fallida (4xx/5xx)
{ "resourceType": "OperationOutcome", "issue": [ { "severity": "error", "code": "exception", "diagnostics": "Transaction failed: conflict detected on resource Patient/example-id" } ] }
Procesando el pedido
Los paquetes de tipo asíncrono transaction están en cola, pero no se procesan siguiendo un orden de envío estricto. HealthLake optimiza el procesamiento en función de la capacidad disponible y la carga del sistema.
importante
No dependa de que las transacciones se procesen en el orden en que se enviaron. Por ejemplo, si envía la transacción A a las 10:00 a.m. y la transacción B a las 10:01 a.m., la transacción B podría completarse antes que la transacción A. Diseñe su solicitud para:
-
Gestione la out-of-order finalización.
-
Utilice la URL de la encuesta para realizar un seguimiento de cada transacción de forma independiente.
-
Implemente la secuenciación a nivel de aplicación si el orden es importante para su caso de uso.
Cuotas y limitaciones
Las siguientes cuotas y límites de tasa se aplican a las transacciones asincrónicas.
| Cuota | Valor | Ajustable |
|---|---|---|
| Máximo de operaciones por transacción asíncrona | 500 | No |
| Máximo de transacciones pendientes por almacén de datos | 500 | Sí |
-
Las transacciones asincrónicas comparten los mismos límites de velocidad de la API definidos en. Cuotas de servicio
-
El sondeo del estado de las transacciones comparte los mismos límites de velocidad de la API que las operaciones de lectura (
GET) en los recursos del FHIR. -
Si se alcanza el límite de transacciones pendientes, los envíos posteriores devuelven un error hasta que se completen las transacciones existentes.
Gestión de errores
En el caso de un paquete de «transacciones», todos los recursos del FHIR contenidos en el paquete se procesan como una operación atómica. Todos los recursos de la operación deben realizarse correctamente o no se procesará ninguna operación del paquete.
Los errores se dividen en dos categorías: los errores de envío, que se HealthLake devuelven de forma sincrónica, y los errores de procesamiento, que se recuperan mediante un sondeo.
Errores de envío
HealthLake valida el paquete en el momento del envío y devuelve los errores de forma sincrónica antes de que la transacción se ponga en cola. Los errores de envío incluyen los errores de validación de recursos del FHIR no válidos, los tipos de recursos no admitidos, la superación del límite de 500 operaciones y el uso del Prefer: respond-async encabezado con paquetes de lotes. Si se ha alcanzado el límite de transacciones pendientes del almacén de datos, HealthLake devuelve un. ThrottlingException Cuando se produce un error de envío, la transacción no se pondrá en cola.
Errores de procesamiento
Los errores de procesamiento se producen después de poner la transacción en cola y se devuelven a través de la URL de sondeo. Estos incluyen los conflictos de transacciones, en los que otra operación modificó un recurso que forma parte de la transacción, y los errores del servidor durante el procesamiento. Cuando se produce un error de procesamiento, no se produce ninguna mutación de recursos para los recursos de la transacción. La URL del sondeo devolverá una OperationOutcome con los detalles del error.