Actualización de un recurso del FHIR - AWS HealthLake

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.

Actualización de un recurso del FHIR

La update interacción del FHIR crea una nueva versión actual para un recurso existente o crea una versión inicial si aún no existe ningún recurso para ese recurso. id Para obtener información adicional, consulte la documentación de updatela API R4 RESTful del FHIR.

Para actualizar un recurso del FHIR

  1. HealthLake regionRecopila y datastoreId valora. Para obtener más información, consulte Obtención de propiedades de los almacenes de datos.

  2. Determine el tipo de Resource FHIR que desea actualizar y recopile el id valor asociado. Para obtener más información, consulte Tipos de recurso.

  3. Cree una URL para la solicitud utilizando los valores recopilados para HealthLake region ydatastoreId. Incluya también el Resource tipo FHIR y su correspondienteid. Para ver la ruta URL completa en el siguiente ejemplo, desplázate sobre el botón Copiar.

    PUT https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Resource/id
  4. Cree un JSON cuerpo para la solicitud, especificando las actualizaciones de datos del FHIR que se van a realizar. Para este procedimiento, guarde el archivo comoupdate-patient.json.

    { "id": "2de04858-ba65-44c1-8af1-f2fe69a977d9", "resourceType": "Patient", "active": true, "name": [ { "use": "official", "family": "Doe", "given": [ "Jane" ] }, { "use": "usual", "given": [ "Jane" ] } ], "gender": "female", "birthDate": "1985-12-31" }
  5. Envíe la solicitud . La update interacción con el FHIR utiliza una PUT solicitud con la versión 4 de AWS Signature o SMART previa autorización del FHIR. En el siguiente curl ejemplo, se actualiza un Patient recurso en. HealthLake Para ver el ejemplo completo, desplázate sobre el botón Copiar.

    SigV4

    Autorización SigV4

    curl --request PUT \ 'https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id' \ --aws-sigv4 'aws:amz:region:healthlake' \ --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \ --header "x-amz-security-token:$AWS_SESSION_TOKEN" \ --header 'Accept: application/json' \ --data @update-patient.json

    Su solicitud devolverá un código de estado 200 HTTP si se actualiza un recurso existente o un código de estado 201 HTTP si se crea un recurso nuevo.

    SMART on FHIR

    Ejemplo de autorización SMART on FHIR para el tipo IdentityProviderConfigurationde datos.

    { "AuthorizationStrategy": "SMART_ON_FHIR", "FineGrainedAuthorizationEnabled": true, "IdpLambdaArn": "arn:aws:lambda:your-region:your-account-id:function:your-lambda-name", "Metadata": "{\"issuer\":\"https://ehr.example.com\", \"jwks_uri\":\"https://ehr.example.com/.well-known/jwks.json\",\"authorization_endpoint\":\"https://ehr.example.com/auth/authorize\",\"token_endpoint\":\"https://ehr.token.com/auth/token\",\"token_endpoint_auth_methods_supported\":[\"client_secret_basic\",\"foo\"],\"grant_types_supported\":[\"client_credential\",\"foo\"],\"registration_endpoint\":\"https://ehr.example.com/auth/register\",\"scopes_supported\":[\"openId\",\"profile\",\"launch\"],\"response_types_supported\":[\"code\"],\"management_endpoint\":\"https://ehr.example.com/user/manage\",\"introspection_endpoint\":\"https://ehr.example.com/user/introspect\",\"revocation_endpoint\":\"https://ehr.example.com/user/revoke\",\"code_challenge_methods_supported\":[\"S256\"],\"capabilities\":[\"launch-ehr\",\"sso-openid-connect\",\"client-public\",\"permission-v2\"]}" }

    La persona que llama puede asignar permisos en la lambda de autorización. Para obtener más información, consulte OAuth osciloscopios 2.0.

    AWS Console

    1. Inicie sesión en la página Ejecutar consultas de la HealthLake consola.

    2. En la sección de configuración de consultas, realice las siguientes selecciones.

    • ID de almacén de datos: elija un ID de almacén de datos para generar una cadena de consulta.

    • Tipo de consulta: elijaUpdate (PUT).

    • Tipo de recurso: elija el tipo de recurso FHIR que desee actualizar o crear.

    • Cuerpo de la solicitud: cree un cuerpo JSON para la solicitud y especifique los datos del FHIR con los que se va a actualizar el recurso.

    3. Elija Ejecutar consulta.

Actualización de los recursos del FHIR en función de las condiciones

La actualización condicional permite actualizar un recurso existente en función de algunos criterios de búsqueda de identificación, en lugar de hacerlo mediante el FHIR id lógico. Cuando el servidor procesa la actualización, realiza una búsqueda utilizando sus capacidades de búsqueda estándar para el tipo de recurso, con el objetivo de resolver una única lógica id para la solicitud.

La acción que realice el servidor depende del número de coincidencias que encuentre:

  • No hay coincidencias, no id se proporciona en el cuerpo de la solicitud: el servidor crea el recurso FHIR.

  • No hay coincidencias, id se ha proporcionado y el recurso aún no existe con el id: el servidor trata la interacción como una interacción entre actualizar y crear.

  • No hay coincidencias, id se ha proporcionado y ya existe: el servidor rechaza la actualización con un 409 Conflict error.

  • Una coincidencia, no id se proporcionó ningún recurso O (recurso id proporcionado y coincide con el recurso encontrado): el servidor realiza la actualización con el recurso coincidente como se indica anteriormente, donde, si el recurso se actualizó, el servidor DEVOLVERÁ un200 OK.

  • Una coincidencia, recurso id proporcionado pero no coincide con el recurso encontrado: el servidor devuelve un 409 Conflict error que indica que la especificación del identificador de cliente era un problema, preferiblemente con un OperationOutcome

  • Varias coincidencias: el servidor devuelve un 412 Precondition Failed error que indica que los criterios del cliente no fueron lo suficientemente selectivos, preferiblemente con un OperationOutcome

En el siguiente ejemplo, se actualiza un Patient recurso cuyo nombre es peter, su fecha de nacimiento es el 1 de enero de 2000 y su número de teléfono es 1234567890.

PUT https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?name=peter&birthdate=2000-01-01&phone=1234567890

Configurar el nivel de validación para las actualizaciones de recursos

Al actualizar un recurso del FHIR, puede especificar opcionalmente un encabezado x-amzn-healthlake-fhir-validation-level HTTP para configurar un nivel de validación para el recurso. 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 actualizados con el 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:

{ "url": "http://healthlake.amazonaws.com/fhir/StructureDefinition/validation-issue", "valueString": "{\"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.