Pular para o conteúdo principal

Cadastrar/atualizar

EndpointPOST /fhir/resources/Practitioner
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

Exemplo básico

Exemplo de requisição CURL

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

Exemplo de requisição CURL 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

Exemplo de requisição CURL 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 sempre http://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

Exemplo de requisição CURL 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

Exemplo de requisição CURL vinculando a 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.

Exemplo de requisição CURL para obter unidades de cuidado
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

Operação bem sucedida.
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 official deve ser fornecido.

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": [
    ],
  • "gender": "male",
  • "id": "903dAAe9-c57f-4eb3-bd1c-65XXd41exx81",
  • "identifier": [
    ],
  • "meta": {
    },
  • "name": [
    ],
  • "resourceType": "Practitioner",
  • "telecom": [
    ]
}