Grupo de pacientes
Um grupo de pacientes é uma etiqueta de organização da carteira: Gestantes de alto risco, Pós-operatório, Piloto de telemedicina. Todo paciente pertence a pelo menos um.
No FHIR o recurso é o Group, e ele é mínimo: guarda
só o nome.
A participação dos pacientes não está aqui. O Group do FHIR tem um campo member[], e
esta integração não o usa — nem na leitura, nem na escrita. Quem diz a que grupos um
paciente pertence é o recurso do paciente.
Para colocar ou tirar um paciente de um grupo, veja Paciente. Para listar os pacientes de um grupo, você precisa percorrer os pacientes: não há busca que faça o caminho inverso.
Campos
A leitura devolve dois identificadores Nilo para o mesmo grupo, nos system
…/NamingSystem/sorting-hat-api--cohort e …/NamingSystem/care-api--cohort, com o mesmo
value. O segundo é preservado por compatibilidade; os dois funcionam na busca e nas
referências.
Campos que a Nilo não usa
O Group canônico traz code, quantity, managingEntity, characteristic e — o mais
importante — member[]. Nenhum deles é lido.
A referência lista só os campos suportados, não os permitidos: a API não recusa quem manda
os outros, e eles ficam guardados no recurso, voltando nas leituras seguintes sem nunca terem
significado nada. Um member[] enviado assim parece a lista de pacientes do grupo, e não é.
Criar ou renomear
A resposta é o recurso gravado, sem envelope:
Guarde o id: é por ele que se faz a leitura direta.
O mesmo POST cria e renomeia. Reenviando um identifier que já corresponde a um grupo, ele é
renomeado — e os pacientes dele não são afetados.
O nome é único por prestador, e a comparação ignora caixa e acento: São João,
Sao Joao e são joão são o mesmo nome. Criar um grupo com um nome que já existe responde
409, e renomear para um nome já usado também. É o único 409 deste recurso.
Dentro de uma carga em lote, o conflito é
reportado no response.status daquela entrada, como 409, sem interromper o processamento
das demais.
Apagar um grupo
Enviar active: false apaga o grupo. A resposta é 204, sem corpo.
Não é uma desativação: é uma remoção. O grupo deixa de existir, e o id que você já leu
passa a responder 404. Não há como reativá-lo — só criar outro.
Um grupo com pacientes não pode ser apagado. A chamada é recusada com
The Group cannot be deactivated as it contains patients. Tire os pacientes do grupo antes —
o que se faz pelo recurso de cada paciente, não por aqui.
Criar um grupo já com active: false também é recusado: não faz sentido nascer apagado.
Este é um dos poucos endpoints da API que respondem 204. Um POST de grupo que devolve 204
em vez de 200 significa que o grupo foi apagado, não que a chamada falhou.
Não reenvie o id que veio de uma leitura. Com id no corpo, a resposta do apagamento é
200 com o recurso, não 204 — e é fácil concluir que nada aconteceu. Monte o payload de
apagamento com identifier, name e active: false, só.
Buscar
A resposta é sempre um Bundle do tipo searchset:
Busca sem resultados não é erro: volta 200 com um Bundle cujo entry é uma lista vazia.
Parâmetros de busca suportados
Não há busca por nome. O Group do FHIR R4 não define parâmetro de busca sobre name — e
como o name é o único dado do recurso, a busca útil é listar tudo e filtrar do seu lado. São
listas curtas.
Os demais parâmetros canônicos do Group existem e não encontram nada, porque a plataforma
não preenche o campo correspondente: code, member, managing-entity,
characteristic, value, exclude e characteristic-value.
Repare em member: não há como perguntar “quais grupos este paciente tem” pelo Group. A
resposta está no recurso do paciente.
A paginação é por _count e _page_token; havendo página seguinte, o Bundle traz a URL
pronta em link.
Ler por ID
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 o grupo está em
resource.
Efeitos colaterais
Criar um grupo não coloca ninguém nele. O grupo nasce vazio, e os pacientes entram quando o recurso deles o referencia.
Renomear um grupo não afeta os pacientes: eles continuam nele, e passam a ver o nome novo.
Erros
Recusa é 400, com uma exceção: o 409 do nome repetido. O corpo é um OperationOutcome.
Os payloads completos estão na aba Referência, em POST /fhir/resources/Group.

