AnpherosAnpheros PlatformDevelopers

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

SDKs

Los clientes Dart / Flutter (anpheros_sdk) y TypeScript (@anpheros/sdk): misma estructura, creaciones idempotentes, reintentos, actualización de tokens y el flujo de consentimiento.

Librerías cliente oficiales para una API de salud FHIR R4 con un sandbox FHIR gratuito: pacientes, observaciones, resultados de laboratorio, condiciones, medicamentos, Resumen Internacional del Paciente, consentimiento del paciente y contexto de IA, en TypeScript y Dart / Flutter.

Anpheros es una infraestructura de datos médicos interoperable para construir aplicaciones de salud, software médico y servicios de IA. Cada paciente tiene un registro HL7 FHIR R4 que controla; las aplicaciones, clínicas, laboratorios y agentes de IA lo leen y escriben a través de la API de la Plataforma Anpheros — con el consentimiento del paciente (OAuth 2.1 / SMART on FHIR), procedencia en cada escritura y un registro de acceso que el paciente puede ver. Este repositorio contiene las librerías cliente oficiales y ejemplos ejecutables.

Lenguaje Paquete Instalación Fuente
Dart / Flutter anpheros_sdk dart pub add anpheros_sdk dart/anpheros_sdk
TypeScript (Node 18+, navegadores, Deno, Bun) @anpheros/sdk npm install @anpheros/sdk ts

Inicio rápido en 2 minutos

  1. Obtenga una clave de sandbox gratuita: inicie sesión en el panel y presione Obtener una clave de sandbox (sk_test_…). Su sandbox tiene 30 pacientes sintéticos.
  2. Verifique que funciona:

bash curl -H "Authorization: Bearer $ANPHEROS_KEY" "https://platform.anpheros.com/fhir/R4/Patient?_count=3"

  1. Instale un SDK y lea un registro: npm install @anpheros/sdk o dart pub add anpheros_sdk, luego ejecute el código en Conectar, o clone quickstart-ts.

A quién va dirigido

Desarrolladores que crean aplicaciones de salud para pacientes y familiares, backends de aplicaciones médicas, integraciones de clínicas y laboratorios, y asistentes o agentes de IA que necesitan el contexto médico estructurado de un paciente, sin tener que diseñar desde cero una base de datos médica, un sistema de consentimiento y un registro de auditoría.

Obtener una clave de sandbox

El sandbox es gratuito y de autoservicio. Inicia sesión con Google en el dashboard y presiona Obtener una clave de sandbox: obtendrás un proyecto de sandbox y una clave al instante. Cada proyecto de sandbox viene con sus propios 30 pacientes sintéticos —seis meses de condiciones, medicamentos, alergias, resultados de laboratorio y signos vitales— que puedes modificar libremente y restablecer en cualquier momento. Las claves de sandbox (sk_test_…) nunca acceden a datos de pacientes reales.

Cuando pases a producción, la producción es para organizaciones verificadas con un acuerdo de procesamiento de datos, y la producción comienza a partir de 99 € al mes con el primer mes gratuito (precios).

Conectar

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

const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) });   // sk_test_… in the sandbox
const { data: patients } = await anpheros.patients.list();
const labs = await anpheros.observations.list(patients[0].id, { category: 'laboratory', limit: 10 });
const ctx = await anpheros.context.build({ patient: patients[0].id, task: 'weekly check-in', budget_tokens: 1500, format: 'text' });
import 'package:anpheros_sdk/anpheros_sdk.dart';

final anpheros = Anpheros(auth: AnpherosAuth.apiKey('sk_test_…'));
final patients = await anpheros.patients.list();
final labs = await anpheros.observations.list(patients.data.first.id, category: 'laboratory', limit: 10);

Las claves de API pertenecen a los servidores. Una aplicación que actúa en nombre de una persona utiliza OAuth en su lugar: ambos SDK implementan el flujo de consentimiento (código de autorización + PKCE) y actualizan los tokens automáticamente.

Lo que cubren los SDK

Ambos cubren toda la superficie pública (/v1, /fhir/R4, /oauth/token, /oauth/revoke) con la misma estructura: patients, observations, conditions, medications, documents, timeline, provenance, context, grants, terminology y fhir en bruto. Una prueba falla la compilación cuando falta una ruta pública en cualquiera de los SDK o cuando un SDK llama a una ruta que el servidor no tiene.

Ambos SDK: Idempotency-Key automático en las creaciones, reintentos con retroceso en 429/5xx, una actualización de token en 401, errores tipados con el ID de solicitud, asistentes PKCE y el flujo de consentimiento.

Datos médicos y FHIR

El registro está compuesto por recursos FHIR R4 estándar — 26 tipos, incluyendo Observation, Condition, MedicationStatement, DocumentReference, Immunization y AllergyIntolerance — codificados con LOINC, ICD-10, ATC y UCUM. La API REST (/v1) y la API FHIR (/fhir/R4) leen y escriben los mismos recursos con los mismos ids; fhir en ambos SDKs proporciona acceso FHIR sin procesar (búsqueda, transacciones, $everything, $summary, $validate).

Ejemplos

Ejemplo Muestra
quickstart-ts escribir y leer un registro: mediciones, resultado de laboratorio, diagnóstico, medicación, línea de tiempo, búsqueda FHIR, IPS, contexto de IA
quickstart-dart lo mismo desde Dart / Flutter
consent-app-ts una aplicación web que solicita consentimiento (OAuth 2.1 + PKCE) y lee el registro de la persona
ai-context-llm una pregunta sobre un registro respondida por un modelo de su elección (local o alojado)
fhir-transaction un paquete de transacción FHIR R4 y el International Patient Summary resultante

Los ejemplos se ejecutan contra el sandbox gratuito, donde cada proyecto de sandbox tiene sus propios 30 pacientes sintéticos; consulte Obtener una clave de sandbox.

Repositorios relacionados

Repositorio Qué es
fhir-api-openapi Especificación OpenAPI 3.1 y colección Postman de la API
mcp-server el servidor FHIR MCP alojado para agentes de IA: configuraciones para Claude, Cursor, VS Code
agent-skills Agent Skill, Claude Code plugin, reglas de Cursor y AGENTS.md
fhir-synthetic-patients los 30 pacientes sintéticos como FHIR R4 Bundles y NDJSON
ips-examples Documentos International Patient Summary en FHIR R4
fhir-validate-action GitHub Action que valida FHIR R4 JSON en CI
lab-results-to-fhir CLI: informes de laboratorio CSV / HL7 v2 → FHIR Observations
healthcare-app-starters Plantillas de aplicaciones de salud Next.js y Flutter

Conformidad

Resultados de pruebas sin procesar, publicados para que puedan ser verificados (resultados de pruebas, no certificaciones): conformance/. El 28 de septiembre de 2026, el grupo Standalone Launch del kit de pruebas Inferno SMART App Launch STU2 (v1.0.3) superó 22 de 22 pruebas contra la plataforma. El lanzamiento de EHR no es compatible.

Documentación

Problemas y seguridad

Reporte errores en los issues de este repositorio. Nunca incluya claves de API, tokens o datos de pacientes en un issue. Reportes de seguridad: [email protected].

Licencia

Licencia Apache 2.0 — consulte el archivo LICENSE de cada paquete. Copyright 2026 Anpheros.

@anpheros/sdk

Cliente TypeScript para Anpheros Platform: un registro de salud FHIR R4 por paciente, aislamiento de proyectos, consentimiento del paciente (OAuth 2.1 / SMART on FHIR), procedencia en cada escritura y una API de contexto de IA. Se ejecuta en cualquier lugar donde exista fetch (Node 18+, navegadores, Deno, Bun).

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

const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) });
const { data: patients } = await anpheros.patients.list();
const labs = await anpheros.observations.list(patients[0].id, { category: 'laboratory', limit: 10 });
const ctx = await anpheros.context.build({ patient: patients[0].id, task: 'weekly check-in', budget_tokens: 1500, format: 'text' });

Actuando en nombre de una persona:

import { OAuthFlow, OAuthAuth, generatePkce } from '@anpheros/sdk';

const flow = new OAuthFlow({ baseUrl: BASE, clientId: 'client_…', redirectUri: 'https://myapp.example/callback' });
const pkce = await generatePkce();
location.href = flow.authorizeUrl({ scopes: ['patient/Observation.rs?category=laboratory', 'offline_access'], state, pkce, lang: 'ro' });
// on the callback:
const tokens = await flow.exchange(code, pkce);
const anpheros = new Anpheros({ auth: new OAuthAuth({ tokens, onRefresh: flow.refresh, onTokens: persist }) });

Los errores son AnpherosError (status, type, message, field, requestId). Las creaciones envían un Idempotency-Key; los errores 429/5xx se reintentan; los tokens expirados se actualizan una vez y se reintenta la llamada.

anpheros_sdk

Cliente Dart / Flutter para Anpheros Platform: un backend de datos de salud con un registro FHIR R4 por paciente, aislamiento de proyectos, consentimiento del paciente (OAuth 2.1 / SMART on FHIR), procedencia en cada escritura y una API de contexto de IA.

import 'package:anpheros_sdk/anpheros_sdk.dart';

final anpheros = Anpheros(auth: AnpherosAuth.apiKey('sk_test_…'));      // server / sandbox

final patients = await anpheros.patients.list();
final elena = patients.data.first;
final labs = await anpheros.observations.list(elena.id, category: 'laboratory', limit: 10);
final ctx = await anpheros.context.build(ContextRequest(patient: elena.id, task: 'weekly check-in', budgetTokens: 1500));

Actuando en nombre de una persona (aplicaciones)

final flow = OAuthFlow(baseUrl: 'https://…', clientId: 'client_…', redirectUri: 'myapp://callback');
final pkce = Pkce.generate();
final url = flow.authorizeUrl(scopes: ['patient/Observation.rs?category=laboratory', 'patient/MedicationStatement.r', 'offline_access'],
                              state: 'abc', pkce: pkce, lang: 'ro');
// open `url`; on return with ?code=…:
final tokens = await flow.exchange(code: code, pkce: pkce);
final anpheros = Anpheros(auth: AnpherosAuth.oauth(
  accessToken: tokens.accessToken, refreshToken: tokens.refreshToken, expiresAt: tokens.expiresAt,
  onRefresh: flow.refresh, onTokens: persist));
final meds = await anpheros.medications.listMedications(tokens.patient!);

Cada objeto lleva fhir (su referencia /fhir/R4); anpheros.fhir proporciona acceso FHIR sin procesar (read, search, create, transaction, $everything, $summary, $validate).

Los errores se AnpherosException con status, type, message, field y requestId. Las creaciones envían un Idempotency-Key automáticamente; los errores 429/5xx se reintentan con backoff; los tokens OAuth expirados se actualizan una vez y la llamada se reintenta.

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