> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://api-docs.nilo.services/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://api-docs.nilo.services/_mcp/server.

# Buscar por ID

GET https://landing-zone-api.nilo.services/fhir/resources/CarePlan/{id}

Reference: https://api-docs.nilo.services/referencia/endpoints/care-plan/care-plan-search-by-id

## Authentication

- `x-api-key` header (required) — API Key authentication via header

## Servers

- `https://landing-zone-api.nilo.services` (Production, default)
- `https://landing-zone-api.stg.nilo.services` (Staging)

## Request

### Path parameters

- `id` (string, required) — Identificador Nilo Fhir do registro que deve ser retornado.

## Response

### 200

Operação bem sucedida.

- `fullUrl` (string, required) — URL absoluta do recurso neste ambiente.
- `resource` (CarePlan, required) — O plano de cuidado.
- `search` (CarePlanEntrySearch, optional) — Constante com `mode` igual a `match`, herdada da forma de busca.

## Errors

### 400 Bad Request Error

Parâmetro enviado inválido.

- `issue` (list of OperationOutcomeIssueItems, required) — Uma coleção de mensagens de erro, aviso ou informação que resultado de uma ação do sistema.
- `resourceType` (string, required, default: OperationOutcome) — Indica o tipo do recurso transacionado.

### 404 Not Found Error

Não existe plano de cuidado com o id informado.

- `any`

## Types

### CarePlan

Aplicação de uma diretriz a um paciente. O `status` enviado escolhe o modo de aplicação — `draft` enfileira o paciente para alocação, `active` aplica na hora — e, num plano que já existe, é ele que encerra ou cancela. Os campos que descrevem a diretriz e os itens do plano são gerados pela plataforma e vêm apenas nas leituras.

- `instantiatesCanonical` (list of string, required) — A diretriz a aplicar, pela URL do `PlanDefinition` correspondente. Só o primeiro item da lista é lido. A diretriz precisa estar ativa e dentro da vigência.
- `intent` (string, required) — Exigido pelo FHIR R4 e não lido pela Nilo: o valor não escolhe modo de aplicação nem nível de autoridade. Envie `order`, que é o valor que todas as leituras trazem.
- `resourceType` (string, required, default: CarePlan) — Indica o tipo do recurso transacionado.
- `status` (string, required) — Na escrita, escolhe o que acontece. `draft` põe o paciente na fila de alocação e cria apenas o recurso FHIR; `active` aplica a diretriz na hora; `completed` encerra o plano como concluído; `revoked` e `entered-in-error` cancelam o plano e as atividades futuras; `on-hold` devolve o plano ao estado pendente. Um plano `revoked` ou `completed` não aceita mais nenhuma atualização. Na leitura, é a situação do plano na plataforma — e é só aí que aparece `unknown`, que a escrita recusa.
- `subject` (Reference, required) — Paciente que recebe o plano, por um identificador dele. `type` tem de ser `Patient`, e o paciente precisa já existir e estar ativo.
- `activity` (list of CarePlan_Activity, optional) — Só resposta. Itens gerados pela diretriz para este paciente: consultas previstas, tarefas, questionários e mensagens programadas. Um plano ainda na fila de alocação volta sem esta lista.
- `category` (list of CodeableConcept, optional) — Só resposta. Tipo da diretriz aplicada, em texto livre: `care_line` para linha de cuidado e `protocol` para protocolo. Não vem com `coding`.
- `created` (string, optional) — Só resposta: data em que o plano do paciente foi criado, sem hora.
- `description` (string, optional) — Só resposta: descrição da diretriz aplicada.
- `id` (string, optional) — Só resposta: o identificador Nilo FHIR do recurso.
- `identifier` (list of Identifier, optional) — Identificadores do plano. É por aqui que a escrita reconhece um plano já existente; sem nenhum, o reconhecimento cai no par paciente + diretriz.
- `meta` (Meta, optional) — Só resposta: metadados da gravação no store FHIR.
- `note` (list of Annotation, optional) — Só resposta. Aparece apenas quando a aplicação em massa da diretriz falhou para este paciente: traz o motivo da falha, e o plano vem com `status` igual a `entered-in-error`.
- `period` (Period, optional) — Só resposta: início e fim da aplicação da diretriz ao paciente.
- `title` (string, optional) — Só resposta: nome da diretriz aplicada.

### CarePlanEntrySearch

Constante com `mode` igual a `match`, herdada da forma de busca.

- `mode` (string, optional)

### OperationOutcomeIssueItems

Uma mensagem de erro, aviso ou informação que resultado de uma ação do sistema.

- `code` (enum, optional) — Descreve o tipo do problema.
  - Allowed values: `invalid`, `structure`, `required`, `value`, `invariant`, `security`, `login`, `unknown`, `expired`, `forbidden`, `suppressed`, `processing`, `not-supported`, `duplicate`, `multiple-matches`, `not-found`, `deleted`, `too-long`, `code-invalid`, `extension`, `too-costly`, `business-rule`, `conflict`, `transient`, `lock-error`, `no-store`, `exception`, `timeout`, `incomplete`, `throttled`, `informational`
- `details` (CodeableConcept, optional) — Detalhes adicionais sobre os códigos de resultado da operação de erro.
- `diagnostics` (string, optional) — Informações de diagnóstico adicionais sobre o problema
- `expression` (list of string, optional) — FHIR Path (caminho) do(s) elemento(s) relacionado(s) ao problema.
- `severity` (enum, optional) — Indica o resultado do processamento apesar do problema indicado.
  - Allowed values: `fatal`, `error`, `warning`, `information`

### Reference

Uma referência de um recurso para outro.

- `identifier` (Identifier, required) — Um identificador, código que identifica alguma entidade de forma única e inequívoca. Normalmente, isso é usado para identificadores de negócios.
- `type` (string, required) — Indica o tipo do recurso referenciado.
- `display` (string, optional) — Alternativa textual para descrever a referência.
- `reference` (string, optional) — Referência direta.

### CarePlan_Activity

Um item do plano do paciente. Só resposta. Vem de uma de duas formas: com `reference` e `progress`, quando o item já tem um recurso próprio no store, ou com `detail`, quando é uma consulta ainda apenas prevista.

- `detail` (CarePlan_Detail, optional) — Consulta prevista pela diretriz que ainda não virou agendamento. Não vem junto com `reference`.
- `progress` (list of Annotation, optional) — Andamento do item, em `text`: `requested`, `in-progress`, `completed`, `not-started`, `scheduled` ou `cancelled`. Vem junto com `reference`.
- `reference` (Reference, optional) — O recurso que representa o item — um `Appointment` para a consulta agendada, um `Task` para a tarefa ou o questionário, um `CommunicationRequest` para a mensagem programada.

### CodeableConcept

Um CodeableConcept representa um valor geralmente fornecido como uma referência a terminologias ou ontologias, mas também pode ser definido pelo fornecimento de texto. Esse é um padrão comum em dados de saúde.

- `coding` (list of Coding, optional) — Código definido por um sistema de terminologia.
- `text` (string, optional) — Representação de texto simples do conceito.

### Identifier

Um identificador, código que identifica alguma entidade de forma única e inequívoca. Normalmente, isso é usado para identificadores de negócios.

- `system` (string, required) — O namespace para o valor do identificador. O cliente deve usar o seu próprio namespace.
- `value` (string, required) — O código de identificação único. Cliente deve usar o seu próprio.
- `use` (enum, optional) — A finalidade deste identificador.
  - Allowed values: `usual`, `official`, `temp`, `secondary`, `old`

### Meta

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

- `lastUpdated` (string, optional) — Um instante no tempo (necessário conhecer pelo menos até o nível de segundos).
- `versionId` (string, optional) — 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.

### Annotation

Uma nota de texto que também contém informações sobre quem fez o declaração e quando.

- `authorReference` (Reference, optional) — O indivíduo responsável por fazer a anotação.
- `text` (string, optional) — O conteúdo da anotação.
- `time` (string, optional) — Quando a anotação foi feita.

### Period

Um intervalo de tempo definido por uma data de início e término e, opcionalmente, horas para ambos.

- `end` (string, optional) — Uma data, data-hora ou data parcial (por exemplo, apenas ano ou ano + mês).
- `start` (string, optional) — Uma data, data-hora ou data parcial (por exemplo, apenas ano ou ano + mês).

### CarePlan_Detail

Consulta prevista pela diretriz que ainda não tem agendamento. Só resposta.

- `description` (string, optional) — Especialidade prevista para a consulta.
- `kind` (string, optional) — Constante `Appointment` — a única forma de item detalhado que a Nilo produz.
- `scheduledPeriod` (Period, optional) — Janela prevista para a consulta. O fim é sempre sete dias depois do início.
- `status` (enum, optional) — Andamento da consulta prevista.
  - Allowed values: `not-started`, `scheduled`, `completed`, `cancelled`, `unknown`

### Coding

Código definido por um sistema de terminologia.

- `code` (string, optional) — Código de identificação de um termo no sistema terminológico.
- `display` (string, optional) — Representação textual definida pelo sistema terminológico.
- `system` (string, optional) — Identidade do sistema terminológico.

## Examples

### Plano encontrado

**Response**

```json
{
  "fullUrl": "https://landing-zone-api.nilo.services/fhir/resources/CarePlan/3f21a0d5-9c74-4b18-a6e2-51d8c93f7ab0",
  "resource": {
    "instantiatesCanonical": [
      "https://landing-zone-api.nilo.services/fhir/resources/PlanDefinition/aba72582-f9fb-49ea-b316-73b8dba2a4d7"
    ],
    "intent": "order",
    "resourceType": "CarePlan",
    "status": "active",
    "subject": {
      "identifier": {
        "system": "https://www.acmesaude.com.br/integracao/paciente/",
        "value": "507823709",
        "use": "usual"
      },
      "type": "Patient",
      "reference": "Patient/ba200cfa-dae0-46cf-81a0-008e3f7414b4"
    },
    "activity": [
      {
        "progress": [
          {
            "text": "in-progress"
          }
        ],
        "reference": {
          "identifier": {
            "system": "https://landing-zone-api.nilo.services/fhir/resources/NamingSystem/cogsworth-api--to-do",
            "value": "88214",
            "use": "usual"
          },
          "type": "Task"
        }
      }
    ],
    "category": [
      {
        "text": "care_line"
      }
    ],
    "created": "2026-04-16",
    "description": "Acompanhamento longitudinal de pacientes com diabetes tipo 2.",
    "id": "3f21a0d5-9c74-4b18-a6e2-51d8c93f7ab0",
    "identifier": [
      {
        "system": "https://landing-zone-api.nilo.services/fhir/resources/NamingSystem/hippocrates-api--patient-care-line",
        "value": "184532",
        "use": "usual"
      },
      {
        "system": "https://www.acmesaude.com.br/integracao/plano-de-cuidado/",
        "value": "349223",
        "use": "usual"
      }
    ],
    "meta": {
      "lastUpdated": "2026-04-16T20:05:03.118000Z",
      "versionId": "MTc4NjAyMTQ1MjkwNTAwMDM2Nw"
    },
    "period": {
      "start": "2026-04-16"
    },
    "title": "Diabetes tipo 2"
  },
  "search": {
    "mode": "match"
  }
}
```

**SDK Code**

```python Plano encontrado
import requests

url = "https://landing-zone-api.nilo.services/fhir/resources/CarePlan/id"

headers = {"x-api-key": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript Plano encontrado
const url = 'https://landing-zone-api.nilo.services/fhir/resources/CarePlan/id';
const options = {method: 'GET', headers: {'x-api-key': '<apiKey>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Plano encontrado
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://landing-zone-api.nilo.services/fhir/resources/CarePlan/id"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("x-api-key", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Plano encontrado
require 'uri'
require 'net/http'

url = URI("https://landing-zone-api.nilo.services/fhir/resources/CarePlan/id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<apiKey>'

response = http.request(request)
puts response.read_body
```

```java Plano encontrado
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://landing-zone-api.nilo.services/fhir/resources/CarePlan/id")
  .header("x-api-key", "<apiKey>")
  .asString();
```

```php Plano encontrado
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://landing-zone-api.nilo.services/fhir/resources/CarePlan/id', [
  'headers' => [
    'x-api-key' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp Plano encontrado
using RestSharp;

var client = new RestClient("https://landing-zone-api.nilo.services/fhir/resources/CarePlan/id");
var request = new RestRequest(Method.GET);
request.AddHeader("x-api-key", "<apiKey>");
IRestResponse response = client.Execute(request);
```

```swift Plano encontrado
import Foundation

let headers = ["x-api-key": "<apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://landing-zone-api.nilo.services/fhir/resources/CarePlan/id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Plano que falhou na alocação

**Response**

```json
{
  "fullUrl": "https://landing-zone-api.nilo.services/fhir/resources/CarePlan/7b04e9c1-2d63-4f57-9a08-c1e5b7304d29",
  "resource": {
    "instantiatesCanonical": [
      "https://landing-zone-api.nilo.services/fhir/resources/PlanDefinition/aba72582-f9fb-49ea-b316-73b8dba2a4d7"
    ],
    "intent": "order",
    "resourceType": "CarePlan",
    "status": "entered-in-error",
    "subject": {
      "identifier": {
        "system": "https://www.acmesaude.com.br/integracao/paciente/",
        "value": "507823709",
        "use": "usual"
      },
      "type": "Patient",
      "reference": "Patient/ba200cfa-dae0-46cf-81a0-008e3f7414b4"
    },
    "id": "7b04e9c1-2d63-4f57-9a08-c1e5b7304d29",
    "identifier": [
      {
        "system": "https://www.acmesaude.com.br/integracao/plano-de-cuidado/",
        "value": "349224",
        "use": "usual"
      }
    ],
    "note": [
      {
        "text": "Não há profissional com a especialidade exigida na equipe de cuidado do paciente."
      }
    ]
  },
  "search": {
    "mode": "match"
  }
}
```

**SDK Code**

```python Plano que falhou na alocação
import requests

url = "https://landing-zone-api.nilo.services/fhir/resources/CarePlan/id"

headers = {"x-api-key": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript Plano que falhou na alocação
const url = 'https://landing-zone-api.nilo.services/fhir/resources/CarePlan/id';
const options = {method: 'GET', headers: {'x-api-key': '<apiKey>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Plano que falhou na alocação
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://landing-zone-api.nilo.services/fhir/resources/CarePlan/id"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("x-api-key", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Plano que falhou na alocação
require 'uri'
require 'net/http'

url = URI("https://landing-zone-api.nilo.services/fhir/resources/CarePlan/id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<apiKey>'

response = http.request(request)
puts response.read_body
```

```java Plano que falhou na alocação
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://landing-zone-api.nilo.services/fhir/resources/CarePlan/id")
  .header("x-api-key", "<apiKey>")
  .asString();
```

```php Plano que falhou na alocação
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://landing-zone-api.nilo.services/fhir/resources/CarePlan/id', [
  'headers' => [
    'x-api-key' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp Plano que falhou na alocação
using RestSharp;

var client = new RestClient("https://landing-zone-api.nilo.services/fhir/resources/CarePlan/id");
var request = new RestRequest(Method.GET);
request.AddHeader("x-api-key", "<apiKey>");
IRestResponse response = client.Execute(request);
```

```swift Plano que falhou na alocação
import Foundation

let headers = ["x-api-key": "<apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://landing-zone-api.nilo.services/fhir/resources/CarePlan/id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```