Usando o Patient-everything no serviço FHIR

A operação Patient-everything é usada para fornecer uma visão de todos os recursos relacionados a um paciente. Essa operação pode ser útil para dar aos pacientes acesso a todo o registro ou a um provedor ou outro usuário para executar um download de dados em massa relacionado a um paciente. De acordo com a especificação FHIR® (Fast Healthcare Interoperability Resources), Patient-everything retorna todas as informações relacionadas a um ou mais pacientes descritos no recurso ou contexto no qual essa operação é invocada. No serviço FHIR nos Serviços de Dados de Integridade do Azure (chamado de serviço FHIR), Patient-everything está disponível para efetuar pull de dados relacionados a um paciente específico.

Usar Paciente-tudo

Para chamar Patient-everything, use o seguinte comando:

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

Observação

Você deve especificar uma ID para um paciente específico. Se precisar de todos os dados para todos os pacientes, consulte $export.

O serviço FHIR valida que ele pode encontrar o paciente que corresponde à ID do paciente fornecida. Se um resultado for encontrado, a resposta será um pacote do tipo searchset com as seguintes informações:

  • Recurso do paciente.
  • Recursos que são referenciados diretamente pelo recurso do paciente, exceto referências de link que não são de ver também ou se o link faz referência a seealso um RelatedPerson.
  • Se houver seealso referências de vínculo a outros pacientes, os resultados incluirão a operação Paciente-tudo em relação aos seealso pacientes listados.
  • Recursos no Compartimento do Paciente.
  • Recursos do dispositivo que fazem referência ao recurso do paciente.

Observação

Se o paciente tiver mais de 100 dispositivos vinculados a ele, apenas 100 serão retornados.

Parâmetros patient-everything

O serviço FHIR dá suporte aos seguintes parâmetros de consulta. Todos esses parâmetros são opcionais:

Parâmetro de consulta Descrição
_type Permite que você especifique quais tipos de recursos serão incluídos na resposta. Por exemplo, _type=Encounter retornaria apenas Encounter recursos associados ao paciente.
_Desde Retornará apenas os recursos que foram modificados desde o tempo fornecido.
iniciar Especificar a data de início efetuará pull dos recursos em que a data clínica está após a data de início especificada. Se nenhuma data de início for fornecida, todos os registros antes da data de término estarão no escopo.
end Especificar a data de término efetuará pull dos recursos em que a data clínica está antes da data de término especificada. Se nenhuma data de término for fornecida, todos os registros após a data de início estarão no escopo.

Observação

Essa implementação de Patient-everything não dá suporte ao parâmetro _count.

Em um recurso de paciente, há um elemento chamado link, que vincula um paciente a outros pacientes ou pessoas relacionadas. Esses pacientes vinculados ajudam a dar uma visão holística do paciente original. A referência de link pode ser usada quando um paciente está substituindo outro paciente ou quando dois recursos de pacientes têm informações complementares. Um caso de uso para links é quando uma mensagem do ADT 38 ou 39 HL7v2 vem. Descreve uma atualização para um paciente. Essa atualização pode ser armazenada como uma referência entre dois pacientes no elemento link.

A especificação FHIR tem uma visão geral detalhada dos diferentes tipos de vínculos de pacientes, mas incluímos um resumo de alto nível:

  • substitui – o recurso Paciente substitui um paciente diferente.
  • consulte - O paciente é válido, mas não é considerado a principal fonte de informações. Aponta para outro paciente para recuperar informações adicionais.
  • seealso – o paciente contém um link para outro paciente igualmente válido.
  • substituído por – o recurso Paciente substitui um paciente diferente.

A operação Paciente-tudo no serviço FHIR processa links de pacientes de diferentes maneiras para lhe dar a visão mais holística do paciente.

Observação

Um link também pode referenciar um RelatedPerson. No momento, RelatedPerson os recursos não são processados em Patient-everything e não são retornados no pacote.

No momento, os links de substituição e referência são ignorados pela operação Paciente-tudo e o paciente vinculado não é retornado no pacote.

Conforme descrito, os links seealso fazem referência a outro paciente que é considerado igualmente válido para o original. Após a execução da operação Paciente-tudo, se o paciente tiver seealso vínculos com outros pacientes, a operação executará Patient-everything em cada seealso link. Isso significa que se um paciente se vincular a outros cinco pacientes com um link de tipo seealso , executaremos Patient-everything em cada um desses cinco pacientes.

Observação

Isso é configurado para seguir seealso apenas links de uma camada profunda. Ele não processa os links de seealso um seealso link.

Consulte também diagrama de fluxo.

O tipo de link final é substituído por. Nesse caso, o recurso de paciente original não está mais sendo usado e o replaced-by link aponta para o paciente que deve ser usado. Essa implementação de Patient-everything incluirá por padrão um resultado de operação no início do pacote com um aviso de que o paciente não é mais válido. Esse também será o comportamento quando o Prefer cabeçalho for definido como handling=lenient.

Além disso, você pode definir o Prefer cabeçalho como handling=strict para gerar um erro. Nesse caso, um retorno do código de erro 301 MovedPermanently indica que o paciente atual está desatualizado e retorna a ID do paciente correto incluído no link. O ContentLocation cabeçalho do erro retornado apontará para a solicitação correta e atualizada.

Observação

Se um replaced-by link estiver presente Prefer: handling=lenient e os resultados forem retornados de forma assíncrona em vários pacotes, apenas um resultado de operação será retornado em um pacote.

Ordem de resposta paciente-tudo

A operação Patient-everything retorna resultados em fases:

  1. A fase 1 retorna o Patient recurso em si, além de qualquer generalPractitioner referência de ir de recursos e managingOrganization .
  2. As fases 2 e 3 retornam recursos no compartimento do paciente. Se os start parâmetros de consulta ou end forem especificados, a Fase 2 retornará recursos do compartimento que podem ser filtrados pela data clínica e a Fase 3 retornará recursos do compartimento que não podem ser filtrados pela data clínica. Se nenhum desses parâmetros for especificado, a Fase 2 será ignorada e a Fase 3 retornará todos os recursos do compartimento do paciente.
  3. A fase 4 retornará todos os dispositivos que referenciam o paciente.

Cada fase retornará os resultados em um pacote. Se os resultados abrangem várias páginas, o próximo link no pacote apontará para a próxima página de resultados dessa fase. Depois que todos os resultados de uma fase forem retornados, o próximo link no pacote apontará para a chamada para iniciar a próxima fase.

Se o paciente original tiver algum seealso vínculo, as fases 1 a 4 serão repetidas para cada um desses pacientes.

Exemplos de Patient-everything

Aqui estão alguns exemplos de como usar a operação Patient-everything. Além desses exemplos, temos um arquivo REST de exemplo que ilustra como o seealso comportamento e replaced-by funciona.

Para usar o Patient-everything para consultar "tudo" de um paciente entre 2010 e 2020, use a seguinte chamada:

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

Para usar Patient-everything para consultar a Observação e o Encontro de um paciente, use a seguinte chamada:

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

Para usar o Patient-everything para consultar "tudo" de um paciente desde 2021-05-27T05:00:00Z, use a seguinte chamada:

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

Se um paciente for encontrado para cada uma dessas chamadas, você receberá de volta uma resposta 200 com um Bundle dos recursos correspondentes.

Próximas etapas

Agora que você sabe como usar a operação Paciente-tudo, saiba mais sobre as opções de pesquisa. Para obter mais informações, consulte

FHIR® é uma marca registrada da HL7 e é usado com a permissão da HL7.