Backend santé Anpheros
Anpheros stocke le dossier de santé de chaque personne sous forme de ressources standard HL7 FHIR R4 et expose les mêmes données via
une API REST simple (/v1) et une API FHIR stricte (/fhir/R4). Les identifiants sont identiques dans les deux.
- URL de base :
https://platform.anpheros.com(la clé détermine le bac à sable ou la production) - Guides : https://developers.anpheros.com/guides/ — OpenAPI :
/docs— CapabilityStatement :/fhir/R4/metadata - Serveur MCP de documentation (sans compte, lecture seule) :
https://platform.anpheros.com/mcp/docs - SDK :
npm install @anpheros/sdk(TypeScript),anpheros_sdk(Dart/Flutter)
Règles (toujours)
- Bac à sable d'abord. Utilisez une clé
sk_test_: elle ne voit que les patients synthétiques du projet. Ne placez jamais de données réelles de patient dans le bac à sable et n'écrivez jamais de cléssk_live_dans le code, les exemples ou les commits ; lisez les clés depuis l'environnement (ANPHEROS_KEY). - N'inventez jamais de codes. Les codes LOINC, SNOMED CT, ICD-10, ICD-11, ATC et RxNorm proviennent du système de codage officiel
ou de la recherche terminologique (
GET /v1/search?q=…,GET /v1/search/{id}). Si un code est inconnu, omettez-le. Les unités sont en UCUM (mg/dL,mmHg,kg). - Le consentement est obligatoire. Une clé API ne voit que les patients que son projet a créés. Pour accéder au dossier existant d'une personne,
demandez-lui via le flux de consentement (étape 4 ci-dessous). Un
403signifie "hors consentement" : demandez-en plus, ne contournez jamais cette règle. Un401après une révocation signifie que l'accès est terminé. - Dites qui a écrit. Chaque écriture comporte
author_type(patient,practitioner,device,import,ai). Les données écrites par un modèle utilisentauthor_type: "ai"(les libellés de transparence IA HL7 sont ajoutés par la plateforme). - Pas de diagnostic, pas de conseil thérapeutique. L'application peut afficher des dossiers, des tendances et des schémas ; elle ne doit pas dire aux utilisateurs ce qu'ils ont ou quel médicament prendre.
- Envoyez un en-tête
Idempotency-Keysur les écritures qui peuvent être retentées.
Workflow
- Clé. Le développeur se connecte sur https://platform.anpheros.com/dashboard/ et appuie sur Obtenir une clé de bac à sable.
- Lecture.
curl $BASE/v1/patients -H "Authorization: Bearer $ANPHEROS_KEY" curl "$BASE/v1/patients/$PID/observations?category=laboratory&limit=10" -H "Authorization: Bearer $ANPHEROS_KEY" curl "$BASE/v1/patients/$PID/timeline?from=2026-06-01" -H "Authorization: Bearer $ANPHEROS_KEY" - Écriture.
Avec le SDK :curl -X POST "$BASE/v1/patients/$PID/observations" -H "Authorization: Bearer $ANPHEROS_KEY" \ -H 'content-type: application/json' -H "Idempotency-Key: $(uuidgen)" -d '{ "code": "2339-0", "display": "Glucose", "category": "laboratory", "value": 112, "unit": "mg/dL", "effective_at": "2026-09-19T08:10:00Z", "author_type": "device"}'import { Anpheros, apiKey } from '@anpheros/sdk'; const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) }); const patient = await anpheros.patients.create({ given: 'Ana', family: 'Example', birth_date: '1980-05-17', gender: 'female' }); - Consentement (SMART on FHIR, OAuth 2.1 + PKCE). Enregistrez une application
(
POST /admin/projects/{id}/applications), envoyez la personne versGET /oauth/authorize?…&scope=patient/Observation.rs offline_access&purpose=treatment, échangez le code viaPOST /oauth/token, puis appelez l'API avecAuthorization: Bearer at_…. Découverte :/.well-known/smart-configuration. Guide : https://developers.anpheros.com/guides/healthcare-api-patient-consent - Contexte IA.
POST /v1/contextrenvoie les parties d'un dossier qui correspondent à une invite, avec provenance, au lieu de déverser les ressources brutes dans le modèle. - Importations de laboratoire. Rapports de laboratoire HL7 v2 ORU et CSV : https://developers.anpheros.com/guides/import-lab-results-fhir
Avant d'écrire du code pour un sujet non couvert ici, recherchez dans les guides (le serveur MCP de documentation search_docs, ou l'index des guides) au lieu de deviner les points de terminaison.