Patient-everything en FHIR

La operación Patient-everything se usa para proporcionar una vista de todos los recursos relacionados con un paciente. Esta operación puede ser útil para proporcionar a los pacientes acceso a su registro completo o a un proveedor u otro usuario para realizar una descarga masiva de datos relacionada con un paciente. Según la especificación de FHIR, Patient-everything devuelve toda la información relacionada con uno o varios pacientes descritos en el recurso o contexto en el que se invoca esta operación. En Azure API for FHIR, Patient-everything está disponible para extraer datos relacionados con un paciente específico.

Usar patient-everything

Para llamar a Patient-everything, use el siguiente comando:

GET {FHIRURL}/Patient/{ID}/$everything

Nota:

Tendrá que especificar un identificador para un paciente específico. Si necesita todos los datos para todos los pacientes, vea $export.

Azure API for FHIR valida que puede encontrar el paciente que coincide con el identificador de paciente proporcionado. Si se encuentra un resultado, la respuesta será un lote de tipo searchset con la siguiente información:

  • Recurso de paciente
  • Recursos a los que hace referencia directamente el recurso paciente, excepto las referencias de vínculo que no son de seealso o si el seealso vínculo hace referencia a .RelatedPerson
  • Si hay seealso referencias de vínculo a otros pacientes, los resultados incluirán la operación Patient-everything en los seealso pacientes enumerados.
  • Recursos en el compartimiento de pacientes
  • Recursos de dispositivo que hacen referencia al recurso del paciente.

Nota:

Si el paciente tiene más de 100 dispositivos vinculados, solo se devolverán 100.

Parámetros de patient-everything

Azure API for FHIR admite los siguientes parámetros de consulta. Todos estos parámetros son opcionales:

Parámetro de consulta Descripción
_type Permite especificar los tipos de recursos que se van a incluir en la respuesta. Por ejemplo, _type=Encounter devolvería solo Encounter los recursos asociados al paciente.
_Desde Solo devolverá los recursos que se han modificado desde el momento indicado.
start Si se especifica la fecha de inicio, se extraerán los recursos en los que su fecha clínica sea posterior a la fecha de inicio especificada. Si no se proporciona ninguna fecha de inicio, todos los registros anteriores a la fecha de finalización están en el ámbito.
end Si se especifica la fecha de finalización, se extraerán los recursos en los que su fecha clínica sea anterior a la fecha de finalización especificada. Si no se proporciona ninguna fecha de finalización, todos los registros posteriores a la fecha de inicio están en el ámbito.

Nota:

Esta implementación de Patient-everything no admite el parámetro _count.

En un recurso de paciente, hay un elemento denominado vínculo, que vincula a un paciente a otros pacientes o personas relacionadas. Estos pacientes vinculados ayudan a dar una visión holística del paciente original. La referencia de vínculo se puede usar cuando un paciente reemplaza a otro paciente o cuando dos recursos de pacientes tienen información complementaria. Un caso de uso para los vínculos es cuando aparece un mensaje de ADT 38 o 39 HL7v2. El ADT38/39 describe una actualización a un paciente. Esta actualización se puede almacenar como referencia entre dos pacientes en el elemento link.

La especificación FHIR tiene una visión general detallada de los diferentes tipos de vínculos de pacientes, pero este es un resumen de alto nivel:

  • replaces: el recurso Patient reemplaza a un paciente diferente.
  • consulte: el paciente es válido, pero no se considera la fuente principal de información. Apunta a otro paciente para recuperar información adicional.
  • seealso : el paciente contiene un vínculo a otro paciente que es igualmente válido.
  • replaced-by : el recurso Patient reemplaza a un paciente diferente.

La operación Patient-everything en Azure API for FHIR procesa los vínculos de pacientes de diferentes maneras para proporcionarle la vista más holística del paciente.

Nota:

Un vínculo también puede hacer referencia a .RelatedPerson En este momento, RelatedPerson los recursos no se procesan en Patient-everything y no se devuelven en la agrupación.

En este momento, los vínculos de reemplazo y referencia se omiten mediante la operación Patient-everything y el paciente vinculado no se devuelve en la agrupación.

Como se describe, los vínculos seealso hacen referencia a otro paciente que se considera igualmente válido para el original. Después de ejecutar la operación Patient-everything, si el paciente tiene seealso vínculos a otros pacientes, la operación ejecuta Patient-everything en cada seealso vínculo. Esto significa que si un paciente se vincula a otros cinco pacientes con un vínculo de tipo seealso , ejecutaremos Patient-everything en cada uno de esos cinco pacientes.

Nota:

Se configura para seguir seealso solo los vínculos de una capa profunda. No procesa los vínculos de seealso un seealso vínculo.

Consulte también el diagrama de flujo.

El tipo de vínculo final se reemplaza por. En este caso, el recurso de paciente original ya no se usa y el replaced-by vínculo apunta al paciente que se debe usar. Esta implementación de Patient-everything incluirá de forma predeterminada un resultado de operación al principio del lote con una advertencia de que el paciente ya no es válido. Esto también será el comportamiento cuando el Prefer encabezado esté establecido en handling=lenient.

Además, puede establecer el Prefer encabezado en handling=strict para iniciar un error en su lugar. En este caso, una devolución del código de error 301 MovedPermanently indica que el paciente actual no está actualizado y devuelve el identificador del paciente correcto que se incluye en el vínculo. El ContentLocation encabezado del error devuelto apuntará a la solicitud correcta y actualizada.

Nota:

Si hay un replaced-by vínculo presente Prefer: handling=lenient y los resultados se devuelven de forma asincrónica en varios conjuntos, solo se devuelve un resultado de operación en una agrupación.

Orden de respuesta paciente-todo

La operación Patient-everything devuelve resultados en fases:

  1. La fase 1 devuelve el Patient propio recurso además de las referencias de ir de los generalPractitioner recursos y managingOrganization .
  2. La fase 2 y 3 devuelven recursos en el compartimiento del paciente. Si se especifican los parámetros de consulta de inicio o finalización, la fase 2 devuelve recursos del compartimiento que se puede filtrar por su fecha clínica y la fase 3 devuelve recursos del compartimiento que no se pueden filtrar por su fecha clínica. Si no se especifica ninguno de estos parámetros, se omite la fase 2 y la fase 3 devuelve todos los recursos del compartimiento de pacientes.
  3. La fase 4 devolverá todos los dispositivos que hagan referencia al paciente.

Cada fase devolverá resultados en una agrupación. Si los resultados abarcan varias páginas, el siguiente vínculo del lote apuntará a la página siguiente de resultados para esa fase. Una vez devueltos todos los resultados de una fase, el siguiente vínculo del lote apuntará a la llamada para iniciar la siguiente fase.

Si el paciente original tiene algún seealso vínculo, se repetirán las fases 1 a 4 para cada uno de esos pacientes.

Ejemplos de patient-everything

Estos son algunos ejemplos de uso de la operación Patient-everything. Además de los ejemplos, tenemos un archivo REST de ejemplo que ilustra cómo funciona el seealso comportamiento y replaced-by .

Para usar Patient-everything para consultar entre 2010 y 2020, use la siguiente llamada:

GET {FHIRURL}/Patient/{ID}/$everything?start=2010&end=2020

Para usar $patient-everything a fin de consultar los valores Observation (Observación) y Encounter (Encuentro) de un paciente, use la siguiente llamada:

GET {FHIRURL}/Patient/{ID}/$everything?_type=Observation,Encounter 

Para usar $patient-everything para consultar "todo" lo relativo a un paciente desde 2021-05-27T05:00:00Z, use la siguiente llamada:

GET {FHIRURL}/Patient/{ID}/$everything?_since=2021-05-27T05:00:00Z 

Si se encuentra un paciente para cada una de estas llamadas, obtendrá una respuesta 200 con un Bundle de los recursos correspondientes.

Pasos siguientes

Ahora que sabe cómo usar la operación Patient-everything, puede obtener información sobre las opciones de búsqueda.

FHIR® es una marca registrada de HL7 y se usa con su permiso.