AnpherosAnpheros PlatformDevelopers

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

Crea una aplicación sanitaria

Tutorial: usa Anpheros como backend de datos médicos de una aplicación sanitaria — pacientes, mediciones, condiciones, medicamentos, documentos, laboratorios, consentimiento, webhooks y SDKs.

Este tutorial muestra cómo una aplicación de salud o médica puede usar Anpheros Platform como su backend de datos médicos: dónde se almacenan los registros de pacientes, cómo se leen y escriben, cómo se conectan otros sistemas y cómo el paciente mantiene el control. Cada llamada a continuación es parte de la API pública (referencia).

Lo que estás construyendo

Una aplicación típica orientada al paciente —un rastreador de enfermedades crónicas, una aplicación de salud familiar, un compañero de monitorización remota— necesita:

  1. mantener un registro por paciente: mediciones, condiciones, medicamentos, documentos;
  2. mostrar ese registro como listas y una línea de tiempo;
  3. aceptar datos de otras fuentes (dispositivos, laboratorios, clínicas);
  4. compartir partes del registro, con el consentimiento del paciente;
  5. reaccionar cuando algo cambia.

Con Anpheros, tu aplicación mantiene sus propios usuarios, pantallas y lógica de negocio, y delega el registro médico a la plataforma:

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

Tu backend contiene la clave API; la aplicación habla con tu backend. (Las aplicaciones que actúan en nombre de un paciente que ya tiene un registro Anpheros utilizan OAuth en su lugar — consulta el paso 7).

1. Obtener una clave de sandbox

El sandbox es de autoservicio: inicie sesión con Google en el panel (https://platform.anpheros.com/dashboard/) y presione Obtener una clave de sandbox. Las claves de sandbox comienzan con sk_test_ y solo pueden acceder a la base de datos del sandbox, donde su proyecto ya tiene su propia copia de 30 pacientes sintéticos.

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

2. Crear un paciente

Cada usuario de su aplicación obtiene un registro de paciente propiedad de su proyecto.

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"}'

La respuesta contiene el paciente id (su propio identificador para esta persona; otros proyectos ven uno diferente) y su referencia fhir.

3. Escribir mediciones, condiciones y medicamentos

Indique de quién provienen los datos con author_type: patient, practitioner, device, import o ai. Si lo omite, la plataforma registra import, nunca patient por suposición.

# 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"}'

Categorías de observación: vital-signs, laboratory, symptom, activity, survey, exam, imaging, social-history. Cada escritura se almacena como un recurso FHIR y obtiene una entrada Provenance automáticamente.

4. Almacenar 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

El original es inmutable después de la carga; los valores que extraiga de él pueden apuntar de nuevo a él con derived_from.

5. Leer el registro de vuelta

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

Cuando necesite el modelo FHIR completo, los mismos datos están disponibles en /fhir/R4 con los mismos ids (API FHIR R4).

6. Conectar laboratorios y dispositivos

7. Acceder a un registro que el paciente ya tiene (OAuth)

Si la persona ya tiene un registro en Anpheros (por ejemplo, a través de Anpheros Daily), su aplicación puede solicitar acceso en lugar de crear un nuevo paciente: registre una aplicación, envíe a la persona a la página de consentimiento con los ámbitos que necesita, intercambie el código por tokens y llame a la API con el token de acceso. El paciente elige la duración y puede revocar el acceso en cualquier momento. Detalles: Autenticación y OAuth.

8. Reaccionar a los cambios con 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 la cabecera Anpheros-Signature de cada entrega (Webhooks).

9. Usar un SDK

El mismo flujo en 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 });

Un cliente Dart / Flutter con la misma estructura está disponible como anpheros_sdk (SDKs).

Antes de pasar a producción

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