Pular para o conteúdo principal

Diretrizes

Introdução


As diretrizes no Nilo Care são estruturas que organizam o cuidado ao paciente, podendo representar desde protocolos clínicos formais baseados em evidências até orientações operacionais para a equipe assistencial sobre tarefas e responsabilidades ao longo do acompanhamento.

Essas diretrizes são utilizadas tanto para garantir o rigor técnico do tratamento quanto para apoiar a gestão interna, organizando fluxos assistenciais, tarefas dos profissionais e rotinas operacionais dos clientes.

Tipos de Diretrizes: Linha de Cuidado e Protocolo

Na aba de Diretrizes do Nilo Care, são apresentados dois tipos principais de organização do cuidado: Linha de Cuidado e Protocolo. Cada um possui características específicas, adequadas a diferentes contextos clínicos e operacionais.

Tela de Diretrizes no Nilo Care, com distinção entre Linha de Cuidado e Protocolo.

Figura 1: Tela de Diretrizes no Nilo Care, com distinção entre Linha de Cuidado e Protocolo.

Linha de Cuidado

  • Representam uma ação contínua, com acompanhamento que pode se estender por tempo indeterminado.
  • Embora seja possível encerrar uma linha de cuidado, ela geralmente está associada a condições crônicas ou ao monitoramento recorrente do paciente.

Exemplos: acompanhamento de pacientes com diabetes ou hipertensão, que exigem atenção prolongada e ajustes ao longo do tempo.

Protocolo

  • Possuem início, meio e fim bem definidos.
  • Indicados para situações com escopo delimitado e tempo de execução determinado.

Exemplo: um protocolo pós-operatório, que acompanha o paciente por um período específico após uma cirurgia, com tarefas sequenciais e encerramento programado.

Pré-requisitos para Aplicação de Diretrizes


Para que um paciente seja corretamente alocado em uma diretriz no Nilo Care, alguns critérios mínimos precisam ser atendidos. Esses pré-requisitos garantem que a aplicação da diretriz seja coerente com a estrutura assistencial e a lógica clínica definida na plataforma.

Requisitos obrigatórios

  • Equipe de cuidado definida: o paciente deve estar vinculado a uma equipe de cuidado no momento da inserção.
  • Especialidades compatíveis com a diretriz: a equipe de cuidado deve conter ao menos um profissional para cada especialidade exigida pela diretriz. Caso alguma especialidade esteja ausente, a aplicação será bloqueada.

Exemplo: se a linha de cuidado Diabetes exige as especialidades Medicina de Família e Comunidade e Enfermagem da Saúde da Família, a equipe de cuidado pode conter:

  • Profissional A com especialidade Medicina de Família e Comunidade e Profissional B com especialidade Enfermagem da Saúde da Família
  • Profissional A com ambas as especialidades Medicina de Família e Comunidade e Enfermagem da Saúde da Família.

Estrutura da Diretriz na API: PlanDefinition


No padrão FHIR, o recurso PlanDefinition representa a definição da diretriz. Ele contém a estrutura clínica e operacional que orienta o cuidado ao paciente, incluindo:

  • Nome e identificação da diretriz
  • Finalidade clínica ou operacional
  • Vigência da diretriz (início e fim, se aplicável)
Implementação FHIR:
{{landing_zone_api_url}}/fhir/resources/PlanDefinition

No Nilo Care, cada diretriz criada na interface é representada pelo recurso PlanDefinition na base FHIR. Esse recurso é consultável via API e serve como base para a criação de planos de cuidado individuais (CarePlan).

Relação entre Diretriz, Paciente e Plano de Cuidado

Para aplicar uma diretriz, é necessário relacionar os seguintes elementos:

  • Diretriz (PlanDefinition): define as regras, lógica e tarefas da diretriz.
  • Paciente (Patient): representa o indivíduo que será acompanhado.
  • Plano de Cuidado (CarePlan): representa a aplicação da diretriz a um paciente específico, com status que define o modo de aplicação (automática ou direta).

Aplicação de Diretrizes via Integração


Um plano de cuidado (CarePlan, no padrão FHIR) representa a aplicação de uma diretriz a um paciente. É esse recurso que vincula o paciente a uma sequência de tarefas e objetivos definidos previamente na diretriz (PlanDefinition). Se já existir um CarePlan ativo para o mesmo par subject (Paciente) e instantiatesCanonical (PlanDefinition), a requisição será tratada como atualização. Caso contrário, será uma inserção do paciente na linha de cuidado.

No Nilo Care, a alocação de pacientes em diretrizes pode ser feita via integração de duas formas distintas:

Aplicação Assíncrona

  • O CarePlan é enviado com status: draft.
  • Indica que o paciente está na fila de alocação.
  • A inserção efetiva acontece posteriormente, conforme o motor de regras da plataforma avalia a capacidade das equipes de cuidado.

Esse é o modelo padrão quando a plataforma precisa verificar se a equipe de cuidado tem capacidade para atender o paciente antes de aplicá-lo na diretriz.

Aplicação Síncrona

  • O CarePlan é enviado com status: active.
  • A inserção é realizada no momento da requisição, sem passar pelo motor de regras.
  • É indicado para cenários que demandam sincronia imediata, como situações clínicas urgência.

Após a inserção, a geração das tarefas e a associação dos profissionais ocorrem de forma assíncrona, podendo levar até 30 minutos.

important

Existe uma taxa de aplicação para diretrizes pela API de 500 requisições/minuto.

Remoção de paciente de uma linha de cuidado

Para remover, envie uma atualização no CarePlan com status igual a revoked. Isso cancelará todas as atividades futuras associadas.

Possíveis Erros

Linha de cuidado inativa

Erro retornado

{
"issue": [
{
"code": "structure",
"details": {
"text": "CarePlan with status revoked can't be updated."
},
"expression": [
"CarePlan.status"
],
"severity": "error"
}
],
"resourceType": "OperationOutcome"
}

Houve a tentativa de ativar uma linha de cuidado de já estava inativa no paciente. Isso acontece quando se tenta atualizar uma linha de cuidado que foi previamente aplicada ao paciente, e não está mais ativa. É importante verificar o atributo identifier, caso ele já exista, o sistema vai tentar atualizar esse recurso, e linhas inativas não podem ser reativadas. Caso se queira aplicar novamente a linha de cuidado ao mesmo paciente é preciso fornecer um novo e único identifier. A implementação é feita assim para garantir que seja possível traçar uma linha de tempo de todo o histórico do paciente a uma linha de cuidado, quando ele entrou e saiu em cada uma das associações.

Exemplo de payload que gera o erro

{
"resourceType": "CarePlan",
"status": "active",
"intent": "order",
"identifier": [
{
"system": "https://acmesaude.com.br/CarePlan",
"value": "12345",
}
],
"subject": {
"identifier": {
"system": "https://servicos.receita.fazenda.gov.br/servicos/cpf/",
"value": "16929009865"
}
},
"instantiatesCanonical": [
"https://landing-zone-api.nilo.services/fhir/resources/PlanDefinition/65d9241c-8c89-4dc3-bb9f-7dd05f949dab"
]
}

Paciente já associado a linha de cuidado

Erro retornado

{
"issue": [
{
"code": "structure",
"details": {
"text": "Subject with identifier value 1013441 and instantiatesCanonical ['https://landing-zone-api.nilo.services/fhir/resources/PlanDefinition/65d9241c-8c89-4dc3-bb9f-7dd05f949dab'] already exists"
},
"expression": [
"CarePlan.instantiatesCanonical,subject"
],
"severity": "error"
}
],
"resourceType": "OperationOutcome"
}

O paciente já está associado a essa linha de cuidado. Cada paciente só pode estar associado a uma linha de cuidado uma vez. Para garantir isso, o sistema verifica se já existe um registro que combina o paciente (subject.identifier) com a diretriz correspondente (instantiatesCanonical). Se essa associação já estiver ativa, ela não poderá ser reaplicada; se existir, mas precisar de atualização, o sistema fará esse ajuste automaticamente.

Exemplo de payload que gera o erro

{
"resourceType": "CarePlan",
"status": "active",
"intent": "order",
"identifier": [
{
"system": "https://acmesaude.com.br/CarePlan",
"value": "12345",
}
],
"subject": {
"identifier": {
"system": "https://servicos.receita.fazenda.gov.br/servicos/cpf/",
"value": "16929009865"
},
"type": "Patient"
},
"instantiatesCanonical": [
"https://landing-zone-api.nilo.services/fhir/resources/PlanDefinition/65d9241c-8c89-4dc3-bb9f-7dd05f949dab"
]
}

Paciente não existe ou não está ativo

Erro retornado

{
"issue": [
{
"code": "structure",
"details": {
"text": "Patient with identifier https://servicos.receita.fazenda.gov.br/servicos/cpf/|16929009865 does not exist or is not active"
},
"expression": [
"CarePlan.subject"
],
"severity": "error"
}
],
"resourceType": "OperationOutcome"
}

Esse erro é retornado sempre que o paciente referenciado no campo subject não for encontrado ou não estiver ativo. É importante garantir que o paciente exista e esteja ativo antes de associá-lo a uma linha de cuidado.

Exemplo de payload que gera o erro

{
"resourceType": "CarePlan",
"status": "active",
"intent": "order",
"identifier": [
{
"system": "https://acmesaude.com.br/CarePlan",
"value": "12345",
}
],
"instantiatesCanonical": [
"https://landing-zone-api.nilo.services/fhir/resources/PlanDefinition/55abeab0-eef7-4662-b9d1-29178e3cc7e9"
],
"subject": {
"identifier": {
"system": "https://servicos.receita.fazenda.gov.br/servicos/cpf/",
"value": "16929009865"
}
}
}

Paciente está duplicado

Erro retornado

{
"issue": [
{
"code": "structure",
"details": {
"text": "Too many matches for identifier https://servicos.receita.fazenda.gov.br/servicos/cpf/|16929009865"
},
"expression": [
"CarePlan.subject"
],
"severity": "error"
}
],
"resourceType": "OperationOutcome"
}

Esse erro é retornado sempre que forem encontrados mais de um registro para o paciente referenciado no campo subject. É importante garantir que o paciente seja único na base de dados para evitar inconsistências.

Exemplo de payload que gera o erro

{
"resourceType": "CarePlan",
"status": "active",
"intent": "order",
"identifier": [
{
"system": "https://acmesaude.com.br/CarePlan",
"value": "12345",
}
],
"instantiatesCanonical": [
"https://landing-zone-api.nilo.services/fhir/resources/PlanDefinition/55abeab0-eef7-4662-b9d1-29178e3cc7e9"
],
"subject": {
"identifier": {
"system": "https://servicos.receita.fazenda.gov.br/servicos/cpf/",
"value": "16929009865"
}
}
}

Paciente não está associado a uma equipe de cuidado

Erro retornado

{
"issue": [
{
"code": "structure",
"details": {
"text": "patient_without_care_team"
},
"expression": [
"CarePlan.?"
],
"severity": "error"
}
],
"resourceType": "OperationOutcome"
}

Esse erro é retornado sempre que o paciente referenciado no campo subject não estiver associado a uma equipe de cuidados. É importante garantir que o paciente esteja vinculado a uma equipe antes de prosseguir com a associação a uma linha de cuidado.

Exemplo de payload que gera o erro

{
"resourceType": "CarePlan",
"status": "active",
"intent": "order",
"identifier": [
{
"system": "https://acmesaude.com.br/CarePlan",
"value": "12345",
}
],
"instantiatesCanonical": [
"https://landing-zone-api.nilo.services/fhir/resources/PlanDefinition/55abeab0-eef7-4662-b9d1-29178e3cc7e9"
],
"subject": {
"identifier": {
"system": "https://servicos.receita.fazenda.gov.br/servicos/cpf/",
"value": "41008787884"
}
}
}

Existe tarefa sem responsável

Erro retornado

{
"issue": [
{
"code": "structure",
"details": {
"text": "todo_without_responsible"
},
"expression": [
"CarePlan.?"
],
"severity": "error"
}
],
"resourceType": "OperationOutcome"
}

Não há um profissional com a especialidade necessária na equipe para realizar uma ou mais tarefas da diretriz. É preciso revisar a formação da equipe de cuidado associada ao paciente e corrigi-la adicionando profissionais às especialidades faltantes.

Exemplo de payload que gera o erro

{
"resourceType": "CarePlan",
"status": "draft",
"intent": "order",
"identifier": [
{
"system": "https://acmesaude.com.br/CarePlan",
"value": "12345",
}
],
"instantiatesCanonical": [
"https://landing-zone-api.nilo.services/fhir/resources/PlanDefinition/xyz"
],
"subject": {
"identifier": {
"system": "https://servicos.receita.fazenda.gov.br/servicos/cpf/",
"value": "41008787884"
}
}
}