AnpherosAnpheros PlatformDevelopers

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Criar uma aplicação de saúde

Tutorial: usar a Anpheros como backend de dados médicos de uma aplicação de saúde — pacientes, medições, condições, medicamentos, documentos, laboratórios, consentimento, webhooks e SDKs.

Este tutorial demonstra como uma aplicação de saúde ou médica pode utilizar a Plataforma Anpheros como o seu backend de dados médicos: onde os registos dos pacientes são armazenados, como são lidos e escritos, como outros sistemas são conectados e como o paciente mantém o controlo. Cada chamada abaixo faz parte da API pública (referência).

O que está a construir

Uma aplicação típica para o paciente — um rastreador de doenças crónicas, uma aplicação de saúde familiar, um companheiro de monitorização remota — precisa de:

  1. manter um registo por paciente: medições, condições, medicamentos, documentos;
  2. apresentar esse registo como listas e uma linha cronológica;
  3. aceitar dados de outras fontes (dispositivos, laboratórios, clínicas);
  4. partilhar partes do registo, com o consentimento do paciente;
  5. reagir quando algo muda.

Com o Anpheros, a sua aplicação mantém os seus próprios utilizadores, ecrãs e lógica de negócio, e delega o registo médico para a plataforma:

Mobile / web app ──► your backend ──► Anpheros Platform API ──► FHIR R4 record of each patient
                         ▲                                              │
                         └──────────── signed webhooks ◄────────────────┘

O seu backend detém a chave da API; a aplicação comunica com o seu backend. (As aplicações que agem em nome de um paciente que já tem um registo Anpheros utilizam OAuth em vez disso — veja o passo 7.)

1. Obter uma chave de sandbox

O sandbox é self-service: inicie sessão com o Google no dashboard (https://platform.anpheros.com/dashboard/) e prima Get a sandbox key. As chaves de sandbox começam com sk_test_ e só podem aceder à base de dados do sandbox, onde o seu projeto já tem a sua própria cópia de 30 pacientes sintéticos.

export BASE=https://platform.anpheros.com
export KEY=sk_test_…
curl $BASE/v1/patients -H "Authorization: Bearer $KEY"

2. Criar um doente

Cada utilizador da sua aplicação obtém um registo de doente propriedade do seu projeto.

curl -X POST $BASE/v1/patients -H "Authorization: Bearer $KEY" -H 'content-type: application/json' \
     -H "Idempotency-Key: $(uuidgen)" \
     -d '{"given": "Elena", "family": "Ionescu", "birth_date": "1985-09-03", "gender": "female"}'

A resposta contém o doente id (o seu próprio identificador para esta pessoa — outros projetos veem um diferente) e a sua referência fhir.

3. Escrever medições, condições e medicamentos

Indique a origem dos dados com author_type: patient, practitioner, device, import ou ai. Se omitir, a plataforma regista import, nunca patient por defeito.

# a blood-pressure reading from a connected device (LOINC panel with two components)
curl -X POST $BASE/v1/patients/$PID/observations -H "Authorization: Bearer $KEY" -H 'content-type: application/json' \
     -H "Idempotency-Key: $(uuidgen)" -d '{
  "code": "85354-9", "display": "Blood pressure panel", "category": "vital-signs",
  "effective_at": "2026-09-28T08:00:00Z", "author_type": "device",
  "components": [
    {"code": "8480-6", "display": "Systolic", "value": 128, "unit": "mm[Hg]"},
    {"code": "8462-4", "display": "Diastolic", "value": 82, "unit": "mm[Hg]"}
  ]}'

# a diagnosis (ICD-10 by default)
curl -X POST $BASE/v1/patients/$PID/conditions -H "Authorization: Bearer $KEY" -H 'content-type: application/json' \
     -d '{"code": "I10", "display": "Essential hypertension", "onset": "2024-03-01", "author_type": "practitioner"}'

# a medication (ATC by default)
curl -X POST $BASE/v1/patients/$PID/medications -H "Authorization: Bearer $KEY" -H 'content-type: application/json' \
     -d '{"display": "Amlodipine 5 mg", "code": "C08CA01", "dosage": "1 tablet in the morning", "start": "2024-03-01", "author_type": "patient"}'

Categorias de observação: vital-signs, laboratory, symptom, activity, survey, exam, imaging, social-history. Cada escrita é armazenada como um recurso FHIR e recebe automaticamente uma entrada Provenance.

4. Armazenar documentos

# create the document, then upload the bytes
curl -X POST $BASE/v1/patients/$PID/documents -H "Authorization: Bearer $KEY" -H 'content-type: application/json' \
     -d '{"title": "Blood tests 2026-09-14", "kind": "lab_report", "content_type": "application/pdf", "date": "2026-09-14"}'
curl -X PUT $BASE/v1/documents/$DOC/content -H "Authorization: Bearer $KEY" -H 'content-type: application/pdf' --data-binary @report.pdf

O original é imutável após o carregamento; os valores que extrai dele podem apontar de volta para ele com derived_from.

5. Ler o registo de volta

curl "$BASE/v1/patients/$PID/observations?category=vital-signs&limit=20" -H "Authorization: Bearer $KEY"
curl "$BASE/v1/patients/$PID/medications?status=active" -H "Authorization: Bearer $KEY"
curl "$BASE/v1/patients/$PID/timeline?from=2026-06-01" -H "Authorization: Bearer $KEY"   # everything, chronologically

Quando necessitar do modelo FHIR completo, os mesmos dados estão disponíveis em /fhir/R4 com os mesmos IDs (API FHIR R4).

6. Ligar laboratórios e dispositivos

7. Aceder a um registo que o paciente já possui (OAuth)

Se a pessoa já mantiver um registo no Anpheros (por exemplo, através do Anpheros Daily), a sua aplicação pode solicitar acesso em vez de criar um novo paciente: registe uma aplicação, envie a pessoa para a página de consentimento com os escopos de que necessita, troque o código por tokens e chame a API com o token de acesso. O paciente escolhe a duração e pode revogar o acesso a qualquer momento. Detalhes: Autenticação e OAuth.

8. Reaja a alterações com webhooks

curl -X POST $BASE/v1/webhooks -H "Authorization: Bearer $KEY" -H 'content-type: application/json' \
     -d '{"url": "https://your.app/anpheros/hook", "events": ["resource.created", "consent.revoked"]}'

Verifique o cabeçalho Anpheros-Signature de cada entrega (Webhooks).

9. Utilizar um SDK

O mesmo fluxo em TypeScript:

import { Anpheros, apiKey } from '@anpheros/sdk';

const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) });
const { data: patients } = await anpheros.patients.list();
const vitals = await anpheros.observations.list(patients[0].id, { category: 'vital-signs', limit: 20 });

Um cliente Dart / Flutter com a mesma estrutura está disponível como anpheros_sdk (SDKs).

Antes de ir para produção

Relacionado

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Product updates by email

New features, guides and the end of the beta. One email a month at most.

Send me occasional Anpheros Platform updates by email (new features, API changes, guides). I'll confirm by email and can unsubscribe in one click from any email. Privacy