AnpherosAnpheros PlatformDevelopers

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

SDK

Les clients Dart / Flutter (anpheros_sdk) et TypeScript (@anpheros/sdk) : même structure, créations idempotentes, nouvelles tentatives, actualisation des tokens et flux de consentement.

Bibliothèques clientes officielles pour une API FHIR R4 de santé avec un bac à sable FHIR gratuit : patients, observations, résultats de laboratoire, conditions, médicaments, International Patient Summary, consentement du patient et contexte IA, en TypeScript et Dart / Flutter.

Anpheros est une infrastructure de données médicales interopérable pour la création d'applications de santé, de logiciels médicaux et de services d'IA. Chaque patient possède un enregistrement HL7 FHIR R4 qu'il contrôle ; les applications, cliniques, laboratoires et agents d'IA le lisent et l'écrivent via l'API Anpheros Platform — avec le consentement du patient (OAuth 2.1 / SMART on FHIR), la provenance sur chaque écriture et un journal d'accès que le patient peut consulter. Ce dépôt contient les bibliothèques clientes officielles et des exemples exécutables.

Langage Package Installation Source
Dart / Flutter anpheros_sdk dart pub add anpheros_sdk dart/anpheros_sdk
TypeScript (Node 18+, navigateurs, Deno, Bun) @anpheros/sdk npm install @anpheros/sdk ts

Démarrage rapide en 2 minutes

  1. Obtenez une clé sandbox gratuite : connectez-vous sur le tableau de bord et appuyez sur Obtenir une clé sandbox (sk_test_…). Votre sandbox contient 30 patients synthétiques.
  2. Vérifiez que cela fonctionne :

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

  1. Installez un SDK et lisez un enregistrement : npm install @anpheros/sdk ou dart pub add anpheros_sdk, puis exécutez le code sous Connect, ou clonez quickstart-ts.

À qui s'adresse ce guide

Développeurs créant des applications de santé pour les patients et leurs familles, des backends d'applications médicales, des intégrations de cliniques et de laboratoires, ainsi que des assistants ou agents IA nécessitant le contexte médical structuré d'un patient — sans avoir à concevoir de zéro une base de données médicale, un système de consentement et une piste d'audit.

Obtenir une clé de sandbox

La sandbox est gratuite et en libre-service. Connectez-vous avec Google sur le tableau de bord et appuyez sur Obtenir une clé de sandbox : vous obtenez instantanément un projet de sandbox et une clé. Chaque projet de sandbox est livré avec ses propres 30 patients synthétiques — six mois de conditions, médicaments, allergies, résultats de laboratoire et signes vitaux — que vous pouvez modifier librement et réinitialiser à tout moment. Les clés de sandbox (sk_test_…) n'accèdent jamais à de véritables données de patients.

Lorsque vous passez en production, celle-ci est réservée aux organisations vérifiées disposant d'un accord de traitement des données, et la production commence à 99 € par mois avec le premier mois gratuit (tarifs).

Connexion

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);

Les clés d'API appartiennent aux serveurs. Une application agissant pour une personne utilise OAuth à la place : les deux SDK implémentent le flux de consentement (code d'autorisation + PKCE) et les jetons de rafraîchissement automatiquement.

Ce que les SDK couvrent

Les deux couvrent toute la surface publique (/v1, /fhir/R4, /oauth/token, /oauth/revoke) avec la même structure : patients, observations, conditions, medications, documents, timeline, provenance, context, grants, terminology et le fhir brut. Un test échoue la compilation lorsqu'une route publique est manquante dans l'un ou l'autre SDK, ou lorsqu'un SDK appelle une route que le serveur ne possède pas.

Les deux SDK : Idempotency-Key automatique sur les créations, tentatives avec backoff sur 429/5xx, un rafraîchissement de token sur 401, erreurs typées avec l'ID de requête, assistants PKCE et le flux de consentement.

Données médicales et FHIR

Le dossier est composé de ressources FHIR R4 standard — 26 types, dont Observation, Condition, MedicationStatement, DocumentReference, Immunization et AllergyIntolerance — codées avec LOINC, ICD-10, ATC et UCUM. L'API REST (/v1) et l'API FHIR (/fhir/R4) lisent et écrivent les mêmes ressources avec les mêmes identifiants ; fhir dans les deux SDK donne un accès FHIR brut (recherche, transactions, $everything, $summary, $validate).

Exemples

Exemple Montre
quickstart-ts écrire et lire un enregistrement : mesures, résultat de laboratoire, diagnostic, médicament, chronologie, recherche FHIR, IPS, contexte IA
quickstart-dart le même depuis Dart / Flutter
consent-app-ts une application web qui demande le consentement (OAuth 2.1 + PKCE) et lit l'enregistrement de la personne
ai-context-llm une question sur un enregistrement à laquelle répond un modèle de votre choix (local ou hébergé)
fhir-transaction un bundle de transaction FHIR R4 et le résumé international du patient résultant

Les exemples s'exécutent sur le sandbox gratuit, où chaque projet sandbox dispose de ses propres 30 patients synthétiques — voir Obtenir une clé sandbox.

Dépôts associés

Dépôt Description
fhir-api-openapi Spécification OpenAPI 3.1 et collection Postman de l'API
mcp-server Le serveur FHIR MCP hébergé pour les agents IA : configurations pour Claude, Cursor, VS Code
agent-skills Agent Skill, plugin Claude Code, règles Cursor et AGENTS.md
fhir-synthetic-patients Les 30 patients synthétiques sous forme de Bundles FHIR R4 et NDJSON
ips-examples Documents International Patient Summary en FHIR R4
fhir-validate-action Action GitHub qui valide le JSON FHIR R4 en CI
lab-results-to-fhir CLI : Rapports de laboratoire CSV / HL7 v2 → Observations FHIR
healthcare-app-starters Modèles d'applications de santé Next.js et Flutter

Conformité

Résultats bruts des tests, publiés pour vérification (résultats des tests, pas certifications) : conformance/. Le 28 septembre 2026, le groupe Standalone Launch du kit de test Inferno SMART App Launch STU2 (v1.0.3) a réussi 22 tests sur 22 contre la plateforme. Le lancement EHR n'est pas pris en charge.

Documentation

Problèmes et sécurité

Signalez les bugs dans les issues de ce dépôt. N'incluez jamais de clés API, de jetons ou de données de patients dans une issue. Rapports de sécurité : [email protected].

Licence

Licence Apache 2.0 — voir le fichier LICENSE de chaque paquet. Copyright 2026 Anpheros.

@anpheros/sdk

Client TypeScript pour Anpheros Platform : un dossier de santé FHIR R4 par patient, isolation de projet, consentement patient (OAuth 2.1 / SMART on FHIR), provenance sur chaque écriture et une API de contexte IA. Fonctionne partout où fetch existe (Node 18+, navigateurs, 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' });

Agir pour une personne :

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 }) });

Les erreurs sont AnpherosError (status, type, message, field, requestId). Les créations envoient un Idempotency-Key ; les 429/5xx sont retentées ; les jetons expirés sont actualisés une fois et l'appel est retenté.

anpheros_sdk

Client Dart / Flutter pour la Plateforme Anpheros : un backend de données de santé avec un enregistrement FHIR R4 par patient, isolation des projets, consentement du patient (OAuth 2.1 / SMART on FHIR), provenance sur chaque écriture et une API de contexte 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));

Agir pour une personne (applications)

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!);

Chaque objet porte fhir (sa référence /fhir/R4) ; anpheros.fhir donne un accès FHIR brut (read, search, create, transaction, $everything, $summary, $validate).

Les erreurs sont AnpherosException avec status, type, message, field et requestId. Les Creates envoient un Idempotency-Key automatiquement ; les 429/5xx sont retentés avec backoff ; les tokens OAuth expirés sont rafraîchis une fois et l'appel retenté.

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