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.

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 Comunidadee Profissional B com especialidadeEnfermagem da Saúde da Família - Profissional A com ambas as especialidades
Medicina de Família e ComunidadeeEnfermagem 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 comstatus: 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 comstatus: 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.
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"
}
}
}