Cadastrar/atualizar
Endpoint | POST /fhir/resources/Practitioner |
---|---|
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 |
Array of Extension-Practitioner-user (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 profissional de saúde é 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. |
Array of objects (Identifier) Um conjunto de códigos de identificação para este profissional de saúde (IDs, CPF, CRM, ...). | |
object (Meta) Os metadados sobre um recurso. Este conteúdo do recurso é normalmente mantido pelo sistema gestor do registro. | |
required | Array of objects (HumanName) O(s) nome(s) associado(s) ao profissional de saúde. Ao menos um nome |
resourceType required | string Default: "Practitioner" 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. |
{- "extension": [
- {
- "extension": [
- {
- "url": "{host}/fhir/resources/StructureDefinition/practitioner-user-active",
- "valueBoolean": true
}, - {
- "url": "{host}/fhir/resources/StructureDefinition/practitioner-user-email",
- "valueString": "email@exemplo.com"
}
], - "url": "{host}/fhir/resources/StructureDefinition/practitioner-user"
}
], - "gender": "male",
- "id": "903dAAe9-c57f-4eb3-bd1c-65XXd41exx81",
- "identifier": [
- {
- "system": "{host}/fhir/resources/NamingSystem/hippocrates-api--model-name",
- "use": "usual",
- "value": "12345"
}
], - "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": "Practitioner",
- "telecom": [
- {
- "system": "phone",
- "use": "mobile",
- "value": "+551155556473"
}
]
}
Exemplos de uso
Exemplo básico
curl --request POST \
--url https://landing-zone-api.nilo.services/fhir/resources/Practitioner \
--header 'Content-Type: application/json' \
--header 'x-api-key: <inserir API Key aqui>' \
--data '{
"resourceType": "Practitioner",
"identifier": [
{
"use": "usual",
"system": "https://www.acmesaude.com.br/integracao/profissional/",
"value": "5032932"
}
],
"name": [
{
"text": "Jon Doe",
"use": "official"
}
]
}'
Exemplo com email para login
curl --request POST \
--url https://landing-zone-api.nilo.services/fhir/resources/Practitioner \
--header 'Content-Type: application/json' \
--header 'x-api-key: <inserir API Key aqui>' \
--data '{
"resourceType": "Practitioner",
"identifier": [
{
"use": "usual",
"system": "https://www.acmesaude.com.br/integracao/profissional/",
"value": "5032932"
}
],
"name": [
{
"text": "Jon Doe",
"use": "official"
}
],
"extension": [
{
"url": "https://landing-zone-api.nilo.services/fhir/resources/StructureDefinition/practitioner-user",
"extension": [
{
"url": "https://landing-zone-api.nilo.services/fhir/resources/StructureDefinition/practitioner-user-active",
"valueBoolean": true
},
{
"url": "https://landing-zone-api.nilo.services/fhir/resources/StructureDefinition/practitioner-user-email",
"valueString": "email@exemplo.com"
}
]
}
]
}'
Exemplo com especialidades
curl --request POST \
--url https://landing-zone-api.nilo.services/fhir/resources/Practitioner \
--header 'Content-Type: application/json' \
--header 'x-api-key: <inserir API Key aqui>' \
--data '{
"resourceType": "Practitioner",
"identifier": [
{
"use": "usual",
"system": "https://www.acmesaude.com.br/integracao/profissional/",
"value": "5032932"
}
],
"name": [
{
"text": "Jon Doe",
"use": "official"
}
],
"qualification": [
{
"code": {
"coding": [
{
"code": "225130",
"system": "http://www.saude.gov.br/fhir/r4/CodeSystem/BRCBO"
}
]
}
},
{
"code": {
"coding": [
{
"code": "225175",
"system": "http://www.saude.gov.br/fhir/r4/CodeSystem/BRCBO"
}
]
}
}
]
}'
Sobre especialidades:
O campo qualification
é utilizado para descrever as especialidades do profissional de saúde.
- No campo
code.coding.code
deve ser informado o código CBO da especialidade - No campo
code.coding.system
deve ser semprehttp://www.saude.gov.br/fhir/r4/CodeSystem/BRCBO
(sistema do CBO - Classificação Brasileira de Ocupações)
No exemplo acima, foram utilizados os códigos CBO 225130 (Médico de Família e Comunidade) e 225175 (Médico Geneticista).
Exemplo removendo uma especialidade
curl --request POST \
--url https://landing-zone-api.nilo.services/fhir/resources/Practitioner \
--header 'Content-Type: application/json' \
--header 'x-api-key: <inserir API Key aqui>' \
--data '{
"resourceType": "Practitioner",
"identifier": [
{
"use": "usual",
"system": "https://www.acmesaude.com.br/integracao/profissional/",
"value": "5032932"
}
],
"name": [
{
"text": "Jon Doe",
"use": "official"
}
],
"qualification": [
{
"code": {
"coding": [
{
"code": "225130",
"system": "http://www.saude.gov.br/fhir/r4/CodeSystem/BRCBO"
}
]
},
"period": {
"end": "2025-08-14T15:05:00+00:00"
}
}
]
}'
Sobre remoção de especialidades:
O campo period.end
é utilizado para remover uma especialidade do profissional. Para que a remoção aconteça, o valor precisa ser menor ou igual à data atual.
Exemplo adicionando às múltiplas unidades de cuidado
curl --request POST \
--url https://landing-zone-api.nilo.services/fhir/resources/Practitioner \
--header 'Content-Type: application/json' \
--header 'x-api-key: <inserir API Key aqui>' \
--data '{
"resourceType": "Practitioner",
"identifier": [
{
"use": "usual",
"system": "https://www.acmesaude.com.br/integracao/profissional/",
"value": "5032932"
}
],
"name": [
{
"text": "Jon Doe",
"use": "official"
}
],
"extension": [
{
"url": "https://landing-zone-api.nilo.services/fhir/resources/StructureDefinition/practitioner-organization",
"valueIdentifier": {
"system": "https://www.acmesaude.com.br/integracao/unidade-de-cuidado/",
"use": "usual",
"value": "10654"
}
},
{
"url": "https://landing-zone-api.nilo.services/fhir/resources/StructureDefinition/practitioner-organization",
"valueIdentifier": {
"system": "https://www.acmesaude.com.br/integracao/unidade-de-cuidado/",
"use": "usual",
"value": "9998232"
}
}
]
}'
Sobre múltiplas unidades de cuidado:
As extension
com url https://landing-zone-api.nilo.services/fhir/resources/StructureDefinition/practitioner-organization
são utilizadas para associar as unidades de cuidado às quais o profissional de saúde está vinculado.
Cada unidade de cuidado deve ser representada como uma extensão separada.
O campo valueIdentifier
deve ser um identifier
do recurso FHIR Organization
(unidades de cuidado).
Você pode consultar as unidades de cuidado (Organization
) disponíveis na API para obter os identifiers
corretos.
curl --request GET \
--url https://landing-zone-api.nilo.services/fhir/resources/Organization \
--header 'Content-Type: application/json' \
--header 'x-api-key: <inserir API Key aqui>'
A resposta do GET será um Bundle, onde o campo entry
conterá as unidades de cuidado disponíveis. Conforme exemplo de resposta abaixo:
{
"resourceType": "Bundle",
"type": "searchset",
"entry": [
{
"resource": {
"resourceType": "Organization",
"id": "37c2b365-cb5a-4401-ae0a-e747ee379f09",
"identifier": [
{
"system": "https://www.acmesaude.com.br/integracao/unidade-de-cuidado/",
"value": "10654"
}
],
"name": "Unidade de Cuidado 1"
}
},
{
"resource": {
"resourceType": "Organization",
"id": "37c2b365-cb5a-4401-ae0a-e747ee379f66",
"identifier": [
{
"system": "https://www.acmesaude.com.br/integracao/unidade-de-cuidado/",
"value": "9998232"
}
],
"name": "Unidade de Cuidado 2"
}
}
]
}
Modelagem da API - Response
- ✔ 200
- ✘ 400
- ✘ 500
Array of Extension-Practitioner-user (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 profissional de saúde é 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. |
Array of objects (Identifier) Um conjunto de códigos de identificação para este profissional de saúde (IDs, CPF, CRM, ...). | |
object (Meta) Os metadados sobre um recurso. Este conteúdo do recurso é normalmente mantido pelo sistema gestor do registro. | |
required | Array of objects (HumanName) O(s) nome(s) associado(s) ao profissional de saúde. Ao menos um nome |
resourceType required | string Default: "Practitioner" 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. |
{- "extension": [
- {
- "extension": [
- {
- "url": "{host}/fhir/resources/StructureDefinition/practitioner-user-active",
- "valueBoolean": true
}, - {
- "url": "{host}/fhir/resources/StructureDefinition/practitioner-user-email",
- "valueString": "email@exemplo.com"
}
], - "url": "{host}/fhir/resources/StructureDefinition/practitioner-user"
}
], - "gender": "male",
- "id": "903dAAe9-c57f-4eb3-bd1c-65XXd41exx81",
- "identifier": [
- {
- "system": "{host}/fhir/resources/NamingSystem/hippocrates-api--model-name",
- "use": "usual",
- "value": "12345"
}
], - "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": "Practitioner",
- "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"
}