Tudo sobre o paciente no 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, Patient-everything retorna todas as informações relacionadas a um ou mais pacientes descritos no recurso ou contexto no qual essa operação é invocada. Na API do Azure para 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.
A API do Azure para FHIR valida que 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 seealso ou se o link faz referência a
seealso
umRelatedPerson
. - Se houver
seealso
referências de vínculo a outros pacientes, os resultados incluirão a operação Paciente-tudo em relação aosseealso
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
A API do Azure para 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.
Processando links de pacientes
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. O ADT38/39 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 aqui está 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.
Detalhes dos links do paciente-tudo do paciente
A operação Paciente-tudo na API do Azure para FHIR processa links de pacientes de diferentes maneiras para fornecer 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.
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:
- A fase 1 retorna o
Patient
recurso em si, além de qualquergeneralPractitioner
referência de ir de recursos emanagingOrganization
. - As fases 2 e 3 retornam recursos no compartimento do paciente. Se os parâmetros de consulta inicial ou final 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.
- 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 dos exemplos, temos um arquivo REST de exemplo que ilustra como o seealso
comportamento e replaced-by
funciona.
Para usar o Patient-everything para consultar entre 2010 e 2020, use a seguinte chamada:
GET {FHIRURL}/Patient/{ID}/$everything?start=2010&end=2020
Para usar $patient-tudo 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 $patient-tudo 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.
FHIR® é uma marca registrada da HL7 e é usado com a permissão da HL7.