Uso de Patient-everything en el servicio 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 dar 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 Fast Healthcare Interoperability Resources (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 el servicio FHIR de Azure Health Data Services (denominado servicio FHIR), patient-everything está disponible para extraer datos relacionados con un paciente específico.

Uso de 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.

El servicio FHIR valida que puede encontrar al paciente que coincida con el identificador de paciente proporcionado. Si se encuentra un resultado, la respuesta será una agrupación de tipo searchset con la siguiente información:

  • Recurso del paciente.
  • Recursos a los que hace referencia directamente el recurso paciente, excepto las referencias de vínculo que no son de ver también 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 del paciente.
  • 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

El servicio 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 ADT 38 o 39 HL7v2. Describe una actualización de un paciente. Esta actualización se puede almacenar como referencia entre dos pacientes en el elemento de vínculo.

La especificación FHIR tiene una descripción detallada de los diferentes tipos de vínculos de pacientes, pero hemos incluido 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 del servicio FHIR procesa los vínculos de pacientes de diferentes maneras para ofrecerle la visión 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

Esto se configura para seguir solo los seealso 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 incluirá de Patient-everything 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 se establezca handling=lenienten .

Además, puede establecer el Prefer encabezado en handling=strict para que produzca 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 la operación en una agrupación.

Orden de respuesta de pacientes y todo

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

  1. La fase 1 devuelve el Patient propio recurso además de las referencias ir de los generalPractitioner recursos y managingOrganization .
  2. La fase 2 y 3 devuelven los recursos en el compartimiento del paciente. Si se especifican los start parámetros de consulta o end , la fase 2 devuelve los recursos del compartimiento que se pueden 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 de la agrupación apuntará a la siguiente página de resultados de esa fase. Una vez que se devuelven 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 vínculos seealso , se repetirán las fases del 1 al 4 para cada uno de esos pacientes.

Ejemplos de paciente-todo

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

Para usar Patient-everything para consultar "todo" de un paciente entre 2010 y 2020, use la siguiente llamada:

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

Para usar Patient-everything para consultar la observación y el encuentro de un paciente, use la siguiente llamada:

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

Para usar Patient-everything para consultar "todo" de 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. Para obtener más información, vea

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