Pular para o conteúdo principal

Cadastrar/atualizar

EndpointPOST /fhir/resources/Patient
Autenticação🔓 Chave de API
StatusImplementado

Modelagem da API - Request


OpçãoTipoRequeridoDescriçãoExemplo
x-api-keystringSimChave de autenticação do cliente, fornecida durante a configuração do ambiente.
Content-TypestringSimapplication/json

Exemplos de uso

Criação de Pacientes

Cadastro básico

Cadastro básico de paciente, somente com nome, telefone. Como o atributo active não foi especificado, o sistema assumirá que esse paciente está ativo ("active": true) como valor padrão.

Cadastro básico de paciente

curl --request POST \
--url https://landing-zone-api.nilo.services/fhir/resources/Patient \
--header 'Content-Type: application/json' \
--header 'x-api-key: <inserir API Key aqui>' \
--data '{
"resourceType": "Patient",
"identifier": [
{
"use": "usual",
"system": "https://www.acmesaude.com.br/integracao/paciente/",
"value": "507823709"
}
],
"name": [
{
"use": "official",
"family": "Silveira",
"given": [
"João"
]
}
],
"telecom": [
{
"system": "phone",
"value": "5521998765432",
"use": "mobile"
}
]
}'


Cadastrar um paciente sem realizar o envio de boas vindas, e com a liberação do agendamento da primeira consulta (onboarding).

Sem envio de mensagem de boas vindas, mas com liberação da primeira consulta.

curl --request POST \
--url https://landing-zone-api.nilo.services/fhir/resources/Patient \
--header 'Content-Type: application/json' \
--header 'x-api-key: <inserir API Key aqui>' \
--data '{
"resourceType": "Patient",
"identifier": [
{
"use": "usual",
"system": "https://www.acmesaude.com.br/integracao/paciente/",
"value": "507823709"
}
],
"name": [
{
"use": "official",
"family": "Silveira",
"given": [
"João"
]
}
],
"telecom": [
{
"system": "phone",
"value": "5521998765432",
"use": "mobile"
}
],
"extension": [
{
"url": "https://landing-zone-api.nilo.services/fhir/resources/StructureDefinition/patient-sendWelcomingMessage",
"valueBoolean": false
},
{
"url": "https://landing-zone-api.nilo.services/fhir/resources/StructureDefinition/patient-createOnboardingScheduling",
"valueBoolean": true
}
]
}'


Cadastro básico de paciente, somente com nome, telefone e o CPF como identificador.

curl --request POST \
--url https://landing-zone-api.nilo.services/fhir/resources/Patient \
--header 'Content-Type: application/json' \
--header 'x-api-key: <inserir API Key aqui>' \
--data '{
"resourceType": "Patient",
"identifier": [
{
"system": "https://servicos.receita.fazenda.gov.br/servicos/cpf/",
"value": "25184714057"
}
],
"name": [
{
"use": "official",
"family": "Silveira",
"given": [
"João"
]
}
],
"telecom": [
{
"system": "phone",
"value": "5521998765432",
"use": "mobile"
}
]
}'


Cadastro de paciente adicionando-o a grupos (Cohorts)

Para adicionar pacientes a grupos (cohorts), utilize o campo contained na requisição, conforme exemplo abaixo:

info

Para clientes que não possuem um grupo de pacientes padrão configurado, o campo contained torna-se obrigatório. Caso deseje ter um grupo padrão configurado, entre em contato com o suporte da Nilo.

Adicionando paciente a grupos.

curl --request POST \
--url https://landing-zone-api.nilo.services/fhir/resources/Patient \
--header 'Content-Type: application/json' \
--header 'x-api-key: <inserir API Key aqui>' \
--data '{
"resourceType": "Patient",
"identifier": [
{
"use": "usual",
"system": "https://www.acmesaude.com.br/integracao/paciente/",
"value": "507823709"
}
],
"name": [
{
"use": "official",
"family": "Silveira",
"given": [
"João"
]
}
],
"contained": [
{
"resourceType": "Group",
"actual": true,
"type": "person",
"identifier": [
{
"system": "https://www.acmesaude.com.br/integracao/group/",
"value": "group-123"
}
]
},
{
"resourceType": "Group",
"actual": true,
"type": "person",
"identifier": [
{
"system": "https://www.acmesaude.com.br/integracao/group/",
"value": "group-456"
}
]
}
]
}'

info

Para saber mais sobre grupos de pacientes, consulte a seção Grupos de Pacientes.

Atualização de Pacientes

Removendo nome social

Para remover o nome social de um paciente, basta enviar o atributo period definindo o sub-atributo end com a data corrente(formato: YYYY-MM-DD). Dessa maneira o sistema entende que essa informação deve ser removida do cadastro do paciente

Removendo nome social ou apelido

curl --request POST \
--url https://landing-zone-api.nilo.services/fhir/resources/Patient \
--header 'Content-Type: application/json' \
--header 'x-api-key: <inserir API Key aqui>' \
--data '{
"resourceType": "Patient",
"identifier": [
{
"use": "usual",
"system": "https://www.acmesaude.com.br/integracao/paciente/",
"value": "507823709"
}
],
"name": [
{
"use": "official",
"family": "Silveira",
"given": [
"João"
]
},
{
"use": "usual",
"text": "João Silva",
"period": {
"end": "2021-01-01"
}
}
]
}'


Inativando um paciente

Para inativar um paciente, basta enviar o atributo active com o valor false.

Inativando um paciente

curl --request POST \
--url https://landing-zone-api.nilo.services/fhir/resources/Patient \
--header 'Content-Type: application/json' \
--header 'x-api-key: <inserir API Key aqui>' \
--data '{
"resourceType": "Patient",
"identifier": [
{
"use": "usual",
"system": "https://www.acmesaude.com.br/integracao/paciente/",
"value": "507823709"
}
],
"active": false
}'


Adicionando paciente a Grupos (Cohorts)

Para atualizar os grupos de um paciente, é semelhante a criação, basta enviar o campo contained com a lista de grupos que o paciente deve pertencer.

Considerando que o paciente pertence aos grupos group-123 e group-456, conforme exemplo do cadastro, e desejo adicioná-lo ao group-789, é necessário enviar no contained os grupos que o paciente já pertence, além do novo grupo, conforme payload abaixo:

Atualizando grupos do paciente

curl --request POST \
--url https://landing-zone-api.nilo.services/fhir/resources/Patient \
--header 'Content-Type: application/json' \
--header 'x-api-key: <inserir API Key aqui>' \
--data '{
"resourceType": "Patient",
"identifier": [
{
"use": "usual",
"system": "https://www.acmesaude.com.br/integracao/paciente/",
"value": "507823709"
}
],
"contained": [
{
"resourceType": "Group",
"actual": true,
"type": "person",
"identifier": [
{
"system": "https://www.acmesaude.com.br/integracao/group/",
"value": "group-123"
}
]
},
{
"resourceType": "Group",
"actual": true,
"type": "person",
"identifier": [
{
"system": "https://www.acmesaude.com.br/integracao/group/",
"value": "group-456"
}
]
},
{
"resourceType": "Group",
"actual": true,
"type": "person",
"identifier": [
{
"system": "https://www.acmesaude.com.br/integracao/group/",
"value": "group-789"
}
]
}
]
}'

Removendo paciente de grupos

Para remover um paciente de um grupo, basta enviar o campo contained com a lista de grupos que o paciente deve pertencer, ou seja, os grupos que o paciente ainda pertence.

Por exemplo, se o paciente pertencia aos grupos group-123, group-456 e group-789, conforme o payload de atualização mostrado anteriormente, e você deseja remover o paciente do grupo group-456, basta enviar o payload sem esse grupo, conforme exemplo abaixo:

Removendo paciente de grupo

curl --request POST \
--url https://landing-zone-api.nilo.services/fhir/resources/Patient \
--header 'Content-Type: application/json' \
--header 'x-api-key: <inserir API Key aqui>' \
--data '{
"resourceType": "Patient",
"identifier": [
{
"use": "usual",
"system": "https://www.acmesaude.com.br/integracao/paciente/",
"value": "507823709"
}
],
"contained": [
{
"resourceType": "Group",
"actual": true,
"type": "person",
"identifier": [
{
"system": "https://www.acmesaude.com.br/integracao/group/",
"value": "group-123"
}
]
},
{
"resourceType": "Group",
"actual": true,
"type": "person",
"identifier": [
{
"system": "https://www.acmesaude.com.br/integracao/group/",
"value": "group-789"
}
]
}
]
}'

Atenção

Sempre que o campo contained for enviado, o sistema irá substituir os grupos do paciente pela nova lista enviada.

Importante

Se o campo contained não for enviado ou estiver vazio, os grupos do paciente permanecerão inalterados.


Modelagem da API - Response


Operação bem sucedida.
active
boolean^true|false$

Se o registro deste paciente está em uso ativo

Array of objects (Address)

O(s) endereço(s) para o indivíduo.

birthDate
string^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-...

A data de nascimento do indivíduo.

Array of objects (Contained_Group)

Grupos de pacientes que o paciente pertence, são enviados como recursos contidos.

Array of objects (Patient_Communication)

Uma linguagem que pode ser usada para se comunicar com o paciente sobre sua saúde.

deceasedBoolean
boolean^true|false$

Indica se o indivíduo é falecido ou não.

deceasedDateTime
string^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-...

A data e hora do falecimento do indivíduo.

Array of Extension-Patient-cadavericDonor (object) or Extension-Patient-genderIdentity (object) or Extension-Patient-religion (object) or Extension-Patient-isLead (object) or Extension-Patient-sendWelcomingMessage (object) or Extension-Patient-createOnboardingScheduling (object) or Extension-Patient-status (object)

Pode ser usado para representar informações adicionais que não fazem parte da definição básica do recurso. Qualquer implementador pode definir uma extensão, aqui apresentamos as extensões utilizadas no contexto Nilo, extensões externas a esse contexto são ignoradas.

gender
string
Enum: "male" "female" "other" "unknown"

O sexo que o paciente é considerado para fins de administração e manutenção de registros.

id
string (id) ^[A-Za-z0-9\-\.]{{1,64}}$

Qualquer combinação de letras, números, "-" e ".", com um limite de 64 caracteres. (Pode ser um número inteiro, um OID não prefixado, UUID ou qualquer outro padrão de identificador que atenda a essas restrições.) Os IDs não diferenciam maiúsculas de minúsculas.

required
Array of objects (Identifier) non-empty

Um conjunto de códigos de identificação para este paciente (IDs, CPF, RG, ...). Ao menos um identificador usado como CPF ou identificador externo é obrigatório e deve ser único, as regras de namespace para leitura e escrita são definidas durante a implantação.

object

Organização, departamento ou sub-departamento guardiã do prontuário do paciente.

object

Estado civil de um paciente

object (Meta)

Os metadados sobre um recurso. Este conteúdo do recurso é normalmente mantido pelo sistema gestor do registro.

Array of objects (HumanName)

O(s) nome(s) associado(s) ao paciente.

resourceType
required
string
Default: "Patient"

Indica o tipo do recurso transacionado.

Array of objects (ContactPoint)

Um detalhe de contato (por exemplo, um número de telefone ou um endereço de e-mail) por qual o indivíduo pode ser contatado. Atenção: números de telefone sem alta confiança é recomendado enviar com use old ou temp, desse modo não sobrescreverá outros que possam ser mais atualizados.

{
  • "active": true,
  • "address": [
    ],
  • "birthDate": "1974-12-25",
  • "contained": [
    ],
  • "communication": {
    },
  • "deceasedBoolean": true,
  • "deceasedDateTime": "2015-02-07T13:28:17",
  • "extension": [],
  • "gender": "male",
  • "id": "903dAAe9-c57f-4eb3-bd1c-65XXd41exx81",
  • "identifier": [
    ],
  • "managingOrganization": {
    },
  • "maritalStatus": {},
  • "meta": {
    },
  • "name": [
    ],
  • "resourceType": "Patient",
  • "telecom": [
    ]
}