Skip to content

Actualización de DiagnosticReport

Documentación sobre el proceso de actualización de un DiagnosticReport.

Solicitud

Headers

  • Content-Type: application/fhir+json
  • If-Match: (opcional) W/"version"
    El header If-Match se utiliza para evitar conflictos de concurrencia al actualizar recursos FHIR. Debe enviarse con el valor del ETag obtenido previamente del recurso para garantizar que la actualización solo se aplique si el recurso no fue modificado desde la última lectura. Si el ETag coincide, la actualización se realiza correctamente; si no coincide, el servidor responde con 412 Precondition Failed, evitando sobrescrituras accidentales de cambios realizados por otros clientes. Más información

Estructura

El resourceType es DiagnosticReport (recurso FHIR R4 DiagnosticReport) y únicamente puede contener los campos que están permitidos ser modificados/actualizados.

  • diagnosticReport (Recurso DiagnosticReport)

    • resourceType: "DiagnosticReport"

    • status: Estado del informe (ver documentación).
      Tener en cuenta que registered NO es un estado válido para la actualización de un DiagnosticReport. Ver diagrama de flujo de estados

      • partial: El informe está en proceso de elaboración y puede contener datos incompletos o no verificados.
      • preliminary: El informe incluye los primeros resultados que han sido verificados, aunque no todos los resultados son definitivos.
      • final: El informe está completo y ha sido verificado por la persona autorizada.
      • amended: Tras su finalización, el informe ha sido modificado. Esto incluye cualquier cambio en los resultados, el diagnóstico, el texto narrativo u otro contenido del informe emitido.
      • corrected: Tras su finalización, el informe ha sido modificado para corregir un error en el mismo o en los resultados a los que se hace referencia.
      • appended: Tras su finalización, el informe ha sido modificado mediante la adición de nuevo contenido. El contenido existente permanece sin cambios.
      • cancelled: El informe no está disponible porque la medición no se inició o no se completó (lo que a veces también se denomina "abortado").
      • entered-in-error: El informe fue retirado tras su publicación final anterior. Este registro electrónico nunca debería haber existido, aunque es posible que se hayan tomado decisiones reales basándose en él. (Si se ha producido alguna actividad real, el estado debería ser "cancelado" en lugar de "introducido por error").
      • unknown: El sistema de origen/autor desconoce cuál de los estados se aplica actualmente a esta observación. Nota: Este concepto no debe utilizarse para "otro": se presume que se aplica uno de los estados enumerados, pero el sistema de origen/autor desconoce cuál.
    • conclusion: Texto breve con el resultado o interpretación.

    • presentedForm: Documento adjunto (preferentemente un archivo PDF) (1..*). Tener en cuenta que si ya se había subido algún documento, este será reemplazado por el nuevo documento enviado.

      • contentType: Tipo de contenido del documento (preferentemente "application/pdf").
      • title: Título del documento.
      • data: Documento en base64.
      • hash: Hash del documento.
      • creation: Fecha de creación del documento. Se puede enviar en hora local o en UTC. Quralo la almacena en formato UTC.
PATCH/fhir/r4/DiagnosticReport/{id}

Permite la actualización de un informe de resultados existente en Quralo. El {id} corresponde al identificador del informe en Quralo.

Ejemplo de Payload

json
{
  "resourceType": "DiagnosticReport",
  "status": "final",
  "conclusion": "Valores dentro de rangos normales.",
  "presentedForm": [
    {
      "contentType": "application/pdf",
      "title": "Informe PDF",
      "data": "JVBERi0xLjMKJZOMi54gUmVwb3J0TGFiIEdlbmVyYXRlZCBQREYgZG9jdW1lbnQgaHR0cDovL3d3dy5yZXBvcnRsYWIuY29tCjEgMCBvYmoKPDwKL0YxIDIgMCBSCj4+CmVuZG9iagoyIDAgb2JqCjw8Ci9CYXNlRm9udCAvSGVsdmV0aWNhIC9FbmNvZGluZyAvV2luQW5zaUVuY29kaW5nIC9OYW1lIC9GMSAvU3VidHlwZSAvVHlwZTEgL1R5cGUgL0ZvbnQKPj4KZW5kb2JqCjMgMCBvYmoKPDwKL0NvbnRlbnRzIDcgMCBSIC9NZWRpYUJveCBbIDAgMCA1OTUuMjc1NiA4NDEuODg5OCBdIC9QYXJlbnQgNiAwIFIgL1Jlc291cmNlcyA8PAovRm9udCAxIDAgUiAvUHJvY1NldCBbIC9QREYgL1RleHQgL0ltYWdlQiAvSW1hZ2VDIC9JbWFnZUkgXQo+PiAvUm90YXRlIDAgL1RyYW5zIDw8Cgo+PiAKICAvVHlwZSAvUGFnZQo+PgplbmRvYmoKNCAwIG9iago8PAovUGFnZU1vZGUgL1VzZU5vbmUgL1BhZ2VzIDYgMCBSIC9UeXBlIC9DYXRhbG9nCj4+CmVuZG9iago1IDAgb2JqCjw8Ci9BdXRob3IgKFwoYW5vbnltb3VzXCkpIC9DcmVhdGlvbkRhdGUgKEQ6MjAyNjA0MjkwMDAyMTArMDAnMDAnKSAvQ3JlYXRvciAoXCh1bnNwZWNpZmllZFwpKSAvS2V5d29yZHMgKCkgL01vZERhdGUgKEQ6MjAyNjA0MjkwMDAyMTArMDAnMDAnKSAvUHJvZHVjZXIgKFJlcG9ydExhYiBQREYgTGlicmFyeSAtIHd3dy5yZXBvcnRsYWIuY29tKSAKICAvU3ViamVjdCAoXCh1bnNwZWNpZmllZFwpKSAvVGl0bGUgKFwoYW5vbnltb3VzXCkpIC9UcmFwcGVkIC9GYWxzZQo+PgplbmRvYmoKNiAwIG9iago8PAovQ291bnQgMSAvS2lkcyBbIDMgMCBSIF0gL1R5cGUgL1BhZ2VzCj4+CmVuZG9iago3IDAgb2JqCjw8Ci9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvRmxhdGVEZWNvZGUgXSAvTGVuZ3RoIDg1Cj4+CnN0cmVhbQpHYXBRaDBFPUYsMFVcSDNUXHBOWVReUUtrP3RjPklQLDtXI1UxXjIzaWhQRU1fSCJaZyNaWVNWVGpWYk1YQ2tzTUJgWmAiKCEqNWUiVFs9UyU/TH4+ZW5kc3RyZWFtCmVuZG9iagp4cmVmCjAgOAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwNzMgMDAwMDAgbiAKMDAwMDAwMDEwNCAwMDAwMCBuIAowMDAwMDAwMjExIDAwMDAwIG4gCjAwMDAwMDA0MTQgMDAwMDAgbiAKMDAwMDAwMDQ4MiAwMDAwMCBuIAowMDAwMDAwNzY1IDAwMDAwIG4gCjAwMDAwMDA4MjQgMDAwMDAgbiAKdHJhaWxlcgo8PAovSUQgCls8OGQ4NmExNzMyMDNkNzc3NTIyNTZlYTJiMDhjOTYxMjg+PDhkODZhMTczMjAzZDc3NzUyMjU2ZWEyYjA4Yzk2MTI4Pl0KJSBSZXBvcnRMYWIgZ2VuZXJhdGVkIFBERiBkb2N1bWVudCAtLSBkaWdlc3QgKGh0dHA6Ly93d3cucmVwb3J0bGFiLmNvbSkKCi9JbmZvIDUgMCBSCi9Sb290IDQgMCBSCi9TaXplIDgKPj4Kc3RhcnR4cmVmCjk5OAolJUVPRgo=",
  "hash": "ef98d6a05fb49226ec4b05b4d9f7db1b8aab624223166800680f328ad7812d66",
  "creation": "2024-07-09T10:00:00Z"
}
]
}

Estados de DiagnosticReport

Respuestas

A continuación se listan las posibles respuestas.

Caso exitoso

Código: 204 No Content

La actualización se realizó con éxito. El recurso no devuelve contenido en el cuerpo de la respuesta.

Importante – Verificación de la actualización

Se recomienda realizar una lectura del recurso (GET /fhir/r4/DiagnosticReport/{id}) para verificar que los cambios se hayan aplicado correctamente y obtener la nueva versión del recurso.

Casos de error

En todos los casos se responde con OperationOutcome detallando el error.

Código: 400 Bad Request

Si el Payload no es válido.

Headers

  • If-Match: W/"<RESOURCE_VERSION>"
  • Content-Type: application/fhir+json

Ejemplo de Respuesta

json
{
    "resourceType": "OperationOutcome",
    "issue": [
        {
            "severity": "error",
            "code": "exception",
            "diagnostics": "presentedForm must include data/hash or url"
        }
    ]
}

Código: 401 Unauthorized

Si no se envía un Token de acceso.

Headers

  • If-Match: W/"<RESOURCE_VERSION>"
  • Content-Type: application/fhir+json

Ejemplo de Respuesta

json
{
    "resourceType": "OperationOutcome",
    "issue": [
        {
            "severity": "error",
            "code": "security",
            "diagnostics": "Authentication is required to access this resource."
        }
    ]
}

Código: 404 Not Found

Si el identificador del informe enviado en la URL no existe.

Headers

  • If-Match: W/"<RESOURCE_VERSION>"
  • Content-Type: application/fhir+json

Ejemplo de Respuesta

json
{
    "resourceType": "OperationOutcome",
    "issue": [
        {
            "severity": "error",
            "code": "not-found",
            "diagnostics": "Diagnostic report 364238c9-acfb-4207-bb60-a4d1d31d4fca not found"
        }
    ]
}

Código: 412 Precondition Failed

Si el número de versión enviado en el header If-Match no coincide con la versión más reciente del recurso.

Headers

  • If-Match: W/"<RESOURCE_VERSION>"
  • Content-Type: application/fhir+json

Ejemplo de Respuesta

json
{
    "resourceType": "OperationOutcome",
    "issue": [
        {
            "severity": "error",
            "code": "conflict",
            "diagnostics": "Version mismatch. Target version: 3, Current version: 4"
        }
    ]
}

Código: 413 Payload Too Large

Si el Payload excede el tamaño máximo permitido.

Headers

  • If-Match: W/"<RESOURCE_VERSION>"
  • Content-Type: application/fhir+json

Ejemplo de Respuesta

json
{
  "resourceType": "OperationOutcome",
  "issue": [
      {
          "severity": "error",
          "code": "too-costly",
          "diagnostics": "Request body exceeds the allowed size limit."
      }
  ]
}

Código: 422 Unprocessable Entity

Si se intenta enviar uno o varios campos que no están habilitados para ser modificados.

Headers

  • If-Match: W/"<RESOURCE_VERSION>"
  • Content-Type: application/fhir+json

Ejemplo de Respuesta

json
{
  "resourceType": "OperationOutcome",
  "issue": [
      {
          "severity": "error",
          "code": "business-rule",
          "diagnostics": "The following fields are immutable or not supported for update: code"
      }
  ]
}

Documentación de Quralo