Skip to navigation

Conduta

A conduta é o que o profissional orientou ao encerrar o atendimento: o retorno marcado, o exame solicitado, os sinais de alarme explicados ao paciente. É texto de prontuário, escrito à mão pela equipe — na tela do atendimento ela aparece no bloco Condutas e orientações.

No FHIR esse conjunto é o RequestGroup: um recurso por atendimento, reunindo todas as condutas dele. Como a avaliação clínica, ele nasce junto com o atendimento e carrega o identificador do atendimento de origem.

Este recurso é somente leitura. POST /fhir/resources/RequestGroup não é uma operação suportada — veja Cadastrar ou atualizar para o que acontece se você tentar. Para registrar uma conduta por integração, o caminho é a Condição — veja Como registrar uma conduta.

Campos

A coluna No Nilo Care traz o rótulo com que o dado aparece para a equipe; são rótulos, não caminhos de navegação.

Todos os campos são de resposta — nenhum deles é enviado por você.

CampoSempre presenteO que significaNo Nilo Care
resourceTypesimConstante RequestGroup—
identifiersimIdentificador Nilo, sempre o do atendimento de origem—
statussimConstante active—
intentsimConstante order—
subjectsimO paciente do atendimento, por um identificador delePaciente
encountersimO atendimento a que as condutas pertencemAtendimento
action[]nãoUma entrada por conduta com texto. Ausente quando não há nenhumaCondutas e orientações
action[].descriptionsim, havendo itemO texto da conduta, inteiroo texto da conduta
action[].resourcesim, havendo itemConstante Clinical conduct—
idsimIdentificador Nilo FHIR do recurso, usado na leitura por ID—
metasimMetadados da gravação: versão e data da última alteração—

Um atendimento sem nenhuma conduta escrita produz o recurso mesmo assim — e nele o campo action não vem. Não é uma lista vazia: a chave some do JSON. Um cliente que faça resource.action.length quebra; trate a ausência do campo como “nenhuma conduta”.

A ausência não significa que o atendimento não existe: significa que ninguém escreveu conduta nele.

Condutas sem texto não entram na lista. Se a equipe abriu uma conduta e não escreveu nada, ela não aparece aqui, nem como item vazio — e um atendimento cujas condutas sejam todas vazias cai no caso acima, sem action.

Na tela, as condutas de um atendimento aparecem concatenadas num campo só, e o editor trabalha sobre a primeira delas. A separação em itens existe aqui e na Condição, não lá: um atendimento que a sua integração gravou com três condutas é visto pela equipe como um texto único.

status e intent são constantes e não informam nada sobre o atendimento nem sobre a conduta. status: active não quer dizer que o atendimento está aberto — quem diz isso é o status do atendimento. E intent: order não distingue tipos de conduta: todas saem iguais.

action[].resource não é uma referência

Ele tem a forma de uma referência FHIR, mas traz apenas display, com o valor constante Clinical conduct — em inglês, e igual em todos os itens. Não tente resolvê-lo, e não o use para classificar a conduta: ele não aponta para recurso nenhum e não carrega informação.

Campos que a Nilo não usa

O RequestGroup canônico tem muito mais do que esta integração produz: instantiatesCanonical, instantiatesUri, basedOn, replaces, groupIdentifier, priority, code, authoredOn, author, reasonCode, reasonReference e note. Dentro de action, também title, textEquivalent, code, documentation, condition, relatedAction, timing, participant, type, groupingBehavior, selectionBehavior, requiredBehavior, precheckBehavior, cardinalityBehavior e as sub-ações. Como esta referência descreve só o que é suportado, nenhum deles aparece no schema — e, como não há escrita, também não há como preenchê-los.

Repare em author: a conduta não traz quem a escreveu. A plataforma guarda esse dado, e ele não é exposto em nenhum campo deste recurso.

Cadastrar ou atualizar

Não existe. Este recurso não tem caminho de escrita nesta API — nem para criar, nem para atualizar, nem para apagar.

Um POST /fhir/resources/RequestGroup não é uma operação suportada e não devolve um erro de validação tratável: a chamada falha com erro inesperado do servidor (500). Não escreva tratamento em cima desse comportamento — ele não é contrato, e nada é gravado de qualquer forma.

Dentro de uma carga em lote o erro é limpo, e igualmente definitivo: a entrada é recusada com Resource RequestGroup not supported.

Como registrar uma conduta

Há dois caminhos, e os dois levam o conteúdo em note[]:

Cada página tem o exemplo e as regras — inclusive o efeito colateral de criar um atendimento quando você não informa um. Escolha um dos dois: gravar a mesma conduta pelos dois cria registros diferentes.

Os dois caminhos não se comportam igual quando o atendimento já tem conduta. Pela Condição, um atendimento de hipótese diagnóstica tem uma conduta só: a chamada atualiza a que está lá e descarta as demais — veja O atendimento para os limites disso. Pela Solicitação de serviço, cada chamada grava uma conduta nova.

A conduta que você grava não aparece aqui na hora. Este recurso é produzido a partir do atendimento, e escrever uma conduta não regrava o atendimento. A conduta nova só entra em action[] na próxima vez que o atendimento em si for salvo.

Para ler de volta o que você acabou de gravar, leia a Condição — ela é atualizada na hora. Vale o mesmo para conduta acrescentada, editada ou removida pela equipe no Nilo Care sem tocar no atendimento.

A mesma conduta em dois lugares, com formatos diferentes

Cada conduta aparece duas vezes nesta API, e o texto não vem igual nas duas:

Aqui, em action[].descriptionNo recurso próprio da conduta, em note[]
FormaUm item por conduta, com o texto inteiroUma anotação por linha do texto
Quebras de linhaPreservadas dentro do descriptionViram a divisão entre os itens de note[]
AtualizaçãoSó quando o atendimento é regravadoImediata

Se você processa o texto da conduta, escolha um dos dois e fique com ele. Somar os dois duplica o conteúdo, e compará-los caractere a caractere não funciona — a divisão em linhas é justamente o que difere.

“O recurso próprio da conduta” não é sempre a Condição. Quem decide é o desfecho do atendimento: num atendimento de sugestão terapêutica a conduta sai como pedido de serviço, e num de resultado de exame sai como procedimento. Nos dois casos não existe Condition correspondente, e uma busca de condições por verification-status=provisional não encontra essas condutas.

O RequestGroup, esse, é sempre o mesmo, qualquer que seja o desfecho: uma entrada por conduta com texto, sem distinção de tipo. Se você precisa do inventário completo das condutas de um atendimento, é por aqui — não pela Condição.

Buscar

GET
/fhir/resources/RequestGroup
curl -G https://landing-zone-api.nilo.services/fhir/resources/RequestGroup \
-H "x-api-key: <apiKey>" \
-d _count=50 \
-d _lastUpdated=eq2013-01-14 \
--data-urlencode encounter:identifier=https://www.acmesaude.com.br/integracao/atendimento/|55162 \
--data-urlencode identifier=https://landing-zone-api.nilo.services/fhir/resources/NamingSystem/care-api--appointment-v3|55162 \
-d intent=order \
--data-urlencode patient:identifier=https://www.acmesaude.com.br/integracao/paciente/|507823709 \
-d status=active \
--data-urlencode subject:identifier=https://www.acmesaude.com.br/integracao/paciente/|507823709

A resposta é sempre um Bundle do tipo searchset:

Response
{
"resourceType": "Bundle",
"type": "searchset",
"entry": [
{
"fullUrl": "https://landing-zone-api.nilo.services/fhir/resources/RequestGroup/4e71b8c0-95a3-4d26-8f14-3b072ad9e561",
"resource": {
"encounter": {
"identifier": {
"system": "https://www.acmesaude.com.br/integracao/atendimento/",
"value": "55162",
"use": "usual"
},
"type": "Encounter"
},
"identifier": [
{
"system": "https://landing-zone-api.nilo.services/fhir/resources/NamingSystem/care-api--appointment-v3",
"value": "55162",
"use": "usual"
}
],
"intent": "order",
"resourceType": "RequestGroup",
"status": "active",
"subject": {
"identifier": {
"system": "https://www.acmesaude.com.br/integracao/paciente/",
"value": "507823709",
"use": "usual"
},
"type": "Patient"
},
"action": [
{
"description": "Retorno em 15 dias.\nOriento sinais de alarme.",
"resource": {
"display": "Clinical conduct"
}
},
{
"description": "Solicitado hemograma completo.",
"resource": {
"display": "Clinical conduct"
}
}
],
"id": "4e71b8c0-95a3-4d26-8f14-3b072ad9e561",
"meta": {
"lastUpdated": "2026-04-16T19:32:09.114000Z",
"versionId": "MTc4NjAyMTQ1MjkwNTAwMDM2Nw"
}
},
"search": {
"mode": "match"
}
},
{
"fullUrl": "https://landing-zone-api.nilo.services/fhir/resources/RequestGroup/a9d3f215-70b6-4c81-95e0-2f48c7b1d603",
"resource": {
"encounter": {
"identifier": {
"system": "https://www.acmesaude.com.br/integracao/atendimento/",
"value": "55163",
"use": "usual"
},
"type": "Encounter"
},
"identifier": [
{
"system": "https://landing-zone-api.nilo.services/fhir/resources/NamingSystem/care-api--appointment-v3",
"value": "55163",
"use": "usual"
}
],
"intent": "order",
"resourceType": "RequestGroup",
"status": "active",
"subject": {
"identifier": {
"system": "https://www.acmesaude.com.br/integracao/paciente/",
"value": "507823709",
"use": "usual"
},
"type": "Patient"
},
"id": "a9d3f215-70b6-4c81-95e0-2f48c7b1d603",
"meta": {
"lastUpdated": "2026-04-17T10:05:41.802000Z",
"versionId": "MTc4NjAyMTQ1MjkwNTAwMDM3MA"
}
},
"search": {
"mode": "match"
}
}
],
"link": []
}

Busca sem resultados não é erro: volta 200 com um Bundle cujo entry é uma lista vazia. Trate a ausência de resultados pela lista vazia, não esperando um 404.

Response
{
"resourceType": "Bundle",
"type": "searchset",
"entry": [],
"link": []
}

Parâmetros de busca suportados

NomeTipoDescriçãoExpressão
identifiertokenIdentificador do recurso, em system|valueRequestGroup.identifier
patient:identifierreferencePaciente, pelo identificador deleRequestGroup.subject.identifier
subject:identifierreferenceO mesmo campo que patient:identifierRequestGroup.subject.identifier
encounter:identifierreferenceAtendimento das condutas, pelo identificador deleRequestGroup.encounter.identifier
statustokenAceito, e inútil: o valor é sempre activeRequestGroup.status
intenttokenAceito, e inútil: o valor é sempre orderRequestGroup.intent
_lastUpdateddateData da última gravação no store, com os prefixos eq, ge, le—

encounter:identifier é a busca mais direta desta página: um atendimento tem no máximo um recurso de conduta, e é o mesmo identificador que você já usa para ler o atendimento.

Só a forma :identifier funciona neste recurso. As referências são gravadas sem o campo reference — só com identifier e type —, e a busca por referência sem o modificador procura justamente em reference. Por isso patient=Patient/{id}, subject=… e encounter=Encounter/{id} devolvem Bundle vazio, não erro. É a mesma situação da avaliação clínica.

Qual identificador o subject carrega é decidido referência a referência, não de uma vez por implantação. Na configuração que usa identificadores externos, cada referência sai com o identificador do seu sistema se o recurso apontado tiver um; se não tiver, cai silenciosamente no identificador Nilo. Confira o que veio na resposta antes de montar a busca em volume — vale para subject e para encounter.

O identifier do próprio recurso é a exceção: ele nunca depende da implantação e nunca é o seu. É sempre o identificador Nilo do atendimento de origem, no system …/NamingSystem/care-api--appointment-v3 — o mesmo valor que aparece nos identificadores do atendimento correspondente. Para chegar às condutas a partir da sua própria chave, o caminho é encounter:identifier, não identifier.

Recursos de atendimentos antigos podem trazer também um identificador no system …/NamingSystem/care-api--appointment, sem o -v3. É o mesmo atendimento.

Vários parâmetros canônicos do RequestGroup existem e não encontram nada aqui, porque a plataforma não preenche o campo correspondente: author, authored, code, group-identifier, instantiates-canonical, instantiates-uri, participant e priority.

Não há como buscar pelo texto de uma conduta: action[].description não tem parâmetro de busca no FHIR R4.

A paginação é por _count e _page_token; havendo página seguinte, o Bundle traz a URL pronta em link.

Ler por ID

GET
/fhir/resources/RequestGroup/:id
curl https://landing-zone-api.nilo.services/fhir/resources/RequestGroup/id \
-H "x-api-key: <apiKey>"

Diferente da busca, esta leitura não devolve um Bundle — mas também não devolve o recurso nu. A resposta é um envelope com fullUrl, search e resource, e as condutas estão em resource. Ler action na raiz da resposta não encontra nada.

Response
{
"fullUrl": "https://landing-zone-api.nilo.services/fhir/resources/RequestGroup/4e71b8c0-95a3-4d26-8f14-3b072ad9e561",
"resource": {
"encounter": {
"identifier": {
"system": "https://www.acmesaude.com.br/integracao/atendimento/",
"value": "55162",
"use": "usual"
},
"type": "Encounter"
},
"identifier": [
{
"system": "https://landing-zone-api.nilo.services/fhir/resources/NamingSystem/care-api--appointment-v3",
"value": "55162",
"use": "usual"
}
],
"intent": "order",
"resourceType": "RequestGroup",
"status": "active",
"subject": {
"identifier": {
"system": "https://www.acmesaude.com.br/integracao/paciente/",
"value": "507823709",
"use": "usual"
},
"type": "Patient"
},
"action": [
{
"description": "Retorno em 15 dias.\nOriento sinais de alarme.",
"resource": {
"display": "Clinical conduct"
}
}
],
"id": "4e71b8c0-95a3-4d26-8f14-3b072ad9e561",
"meta": {
"lastUpdated": "2026-04-16T19:32:09.114000Z",
"versionId": "MTc4NjAyMTQ1MjkwNTAwMDM2Nw"
}
},
"search": {
"mode": "match"
}
}

A leitura por ID responde 404 quando o id não existe — inclusive quando o atendimento de origem foi apagado no Nilo Care. Se você guarda o conteúdo, guarde o conteúdo, não o id.

Quando as condutas ficam disponíveis

As condutas são sincronizadas logo depois do atendimento, mas não no mesmo instante: gravar ou atualizar um atendimento e ler as condutas dele em seguida pode não encontrar nada ainda. Se o seu fluxo é escrever um atendimento e ler as condutas dele, reconsulte em vez de tratar a primeira resposta vazia como definitiva.

A ordem é essa mesma: o atendimento é gravado primeiro e as condutas depois. Se a gravação do atendimento falhar, o recurso de conduta não chega a existir — não há conduta órfã de um atendimento que não foi gravado.

O que a integração não cobre

Não há escrita neste recurso, e três dados que a plataforma guarda não têm campo aqui:

  • quem escreveu cada conduta;
  • quando cada conduta foi escrita — só a data de gravação do recurso inteiro, em meta;
  • a distinção entre os tipos de conduta, que existe na Condição correspondente e some aqui.

Para o atendimento em si, veja Atendimentos; para a entrevista clínica e o exame físico do mesmo atendimento, Avaliação clínica; para os diagnósticos e para a escrita de conduta, Condição.