Cadastrar/atualizar
Endpoint | POST /fhir/resources/Patient |
---|---|
Autenticação | 🔓 Chave de API |
Status | Implementado |
Modelagem da API - Request
- Headers
- Body
Opção | Tipo | Requerido | Descrição | Exemplo | |||||
---|---|---|---|---|---|---|---|---|---|
x-api-key | string | Sim | Chave de autenticação do cliente, fornecida durante a configuração do ambiente. | ||||||
Content-Type | string | Sim | application/json |
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": [
- {
- "city": "São Paulo",
- "country": "Brazil",
- "line": [
- "534 Erewhon St"
], - "postalCode": "39993-333",
- "state": "SP",
- "text": "534 Erewhon St PeasantVille, Rainbow, Vic 3999",
- "type": "both",
- "use": "home"
}
], - "birthDate": "1974-12-25",
- "contained": [
- {
- "resourceType": "Group",
- "identifier": [
- {
- "system": "{host}/fhir/resources/NamingSystem/hippocrates-api--model-name",
- "use": "usual",
- "value": "12345"
}
], - "type": "person",
- "actual": true,
- "name": "Pacientes com diabetes"
}
], - "communication": {
- "language": {
- "coding": [
- {
- "code": "pt-BR",
- "display": "Portuguese (Brazil)",
- "system": "urn:ietf:bcp:47"
}
]
}, - "preferred": true
}, - "deceasedBoolean": true,
- "deceasedDateTime": "2015-02-07T13:28:17",
- "extension": [
], - "gender": "male",
- "id": "903dAAe9-c57f-4eb3-bd1c-65XXd41exx81",
- "identifier": [
- {
- "system": "{host}/fhir/resources/NamingSystem/hippocrates-api--model-name",
- "use": "usual",
- "value": "12345"
}
], - "managingOrganization": {
- "identifier": {
- "system": "{host}/fhir/resources/NamingSystem/sorting-hat-api--care-unit",
- "use": "usual",
- "value": "4"
}, - "type": "Organization"
}, - "maritalStatus": {
- "coding": [
- {
- "code": "UNK",
- "display": "unknown",
}
], - "text": "unknown"
}, - "meta": {
- "lastUpdated": "2022-05-25T18:42:06.551129+00:00",
- "versionId": "903dAAe9-c57f-4eb3-bd1c-65XXd41exx81"
}, - "name": [
- {
- "family": "Donald",
- "given": [
- "Duck"
], - "text": "Duck Donald",
- "use": "official"
}
], - "resourceType": "Patient",
- "telecom": [
- {
- "system": "phone",
- "use": "mobile",
- "value": "+551155556473"
}
]
}
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.
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).
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
}
]
}'
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:
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.
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"
}
]
}
]
}'
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
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
.
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:
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:
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"
}
]
}
]
}'
Sempre que o campo contained
for enviado, o sistema irá substituir os grupos do paciente pela nova lista enviada.
Se o campo contained não for enviado ou estiver vazio, os grupos do paciente permanecerão inalterados.
Modelagem da API - Response
- ✔ 200
- ✘ 400
- ✘ 500
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": [
- {
- "city": "São Paulo",
- "country": "Brazil",
- "line": [
- "534 Erewhon St"
], - "postalCode": "39993-333",
- "state": "SP",
- "text": "534 Erewhon St PeasantVille, Rainbow, Vic 3999",
- "type": "both",
- "use": "home"
}
], - "birthDate": "1974-12-25",
- "contained": [
- {
- "resourceType": "Group",
- "identifier": [
- {
- "system": "{host}/fhir/resources/NamingSystem/hippocrates-api--model-name",
- "use": "usual",
- "value": "12345"
}
], - "type": "person",
- "actual": true,
- "name": "Pacientes com diabetes"
}
], - "communication": {
- "language": {
- "coding": [
- {
- "code": "pt-BR",
- "display": "Portuguese (Brazil)",
- "system": "urn:ietf:bcp:47"
}
]
}, - "preferred": true
}, - "deceasedBoolean": true,
- "deceasedDateTime": "2015-02-07T13:28:17",
- "extension": [
], - "gender": "male",
- "id": "903dAAe9-c57f-4eb3-bd1c-65XXd41exx81",
- "identifier": [
- {
- "system": "{host}/fhir/resources/NamingSystem/hippocrates-api--model-name",
- "use": "usual",
- "value": "12345"
}
], - "managingOrganization": {
- "identifier": {
- "system": "{host}/fhir/resources/NamingSystem/sorting-hat-api--care-unit",
- "use": "usual",
- "value": "4"
}, - "type": "Organization"
}, - "maritalStatus": {
- "coding": [
- {
- "code": "UNK",
- "display": "unknown",
}
], - "text": "unknown"
}, - "meta": {
- "lastUpdated": "2022-05-25T18:42:06.551129+00:00",
- "versionId": "903dAAe9-c57f-4eb3-bd1c-65XXd41exx81"
}, - "name": [
- {
- "family": "Donald",
- "given": [
- "Duck"
], - "text": "Duck Donald",
- "use": "official"
}
], - "resourceType": "Patient",
- "telecom": [
- {
- "system": "phone",
- "use": "mobile",
- "value": "+551155556473"
}
]
}
required | Array of objects Uma coleção de mensagens de erro, aviso ou informação que resultado de uma ação do sistema. |
resourceType required | string Default: "OperationOutcome" Indica o tipo do recurso transacionado. |
{- "issue": [
- {
- "code": "exception",
- "details": {
- "text": "Parâmetro enviado inválido"
}, - "severity": "error"
}
], - "resourceType": "OperationOutcome"
}