Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Créer une application de santé
Tutoriel : utiliser Anpheros comme backend de données médicales pour une application de santé — patients, mesures, conditions, médicaments, documents, laboratoires, consentement, webhooks et SDK.
Ce tutoriel montre comment une application de santé ou médicale peut utiliser Anpheros Platform comme son backend de données médicales : où les dossiers des patients sont stockés, comment ils sont lus et écrits, comment d'autres systèmes sont connectés et comment le patient garde le contrôle. Chaque appel ci-dessous fait partie de l'API publique (référence).
Ce que vous construisez
Une application typique destinée aux patients — un suivi de maladie chronique, une application de santé familiale, un compagnon de télésurveillance — doit :
- conserver un dossier par patient : mesures, conditions, médicaments, documents ;
- afficher ce dossier sous forme de listes et de chronologie ;
- accepter des données provenant d'autres sources (appareils, laboratoires, cliniques) ;
- partager des parties du dossier, avec le consentement du patient ;
- réagir lorsque quelque chose change.
Avec Anpheros, votre application conserve ses propres utilisateurs, écrans et logique métier, et délègue le dossier médical à la plateforme :
Mobile / web app ──► your backend ──► Anpheros Platform API ──► FHIR R4 record of each patient
▲ │
└──────────── signed webhooks ◄────────────────┘
Votre backend détient la clé API ; l'application communique avec votre backend. (Les applications qui agissent pour un patient qui possède déjà un dossier Anpheros utilisent OAuth à la place — voir l'étape 7.)
1. Obtenir une clé de sandbox
La sandbox est en libre-service : connectez-vous avec Google sur le tableau de bord (https://platform.anpheros.com/dashboard/) et appuyez sur Obtenir une clé de sandbox. Les clés de sandbox commencent par sk_test_ et ne peuvent accéder qu'à la base de données de la sandbox, où votre projet dispose déjà de sa propre copie de 30 patients synthétiques.
export BASE=https://platform.anpheros.com
export KEY=sk_test_…
curl $BASE/v1/patients -H "Authorization: Bearer $KEY"
2. Créer un patient
Chaque utilisateur de votre application obtient un enregistrement de patient appartenant à votre projet.
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 réponse contient le patient id (votre propre identifiant pour cette personne — d'autres projets en voient un différent) et sa référence fhir.
3. Écrire les mesures, les conditions et les médicaments
Indiquez la provenance des données avec author_type : patient, practitioner, device, import ou ai. Si vous l'omettez, la plateforme enregistre import, jamais patient par défaut.
# 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"}'
Catégories d'observation : vital-signs, laboratory, symptom, activity, survey, exam, imaging, social-history. Chaque écriture est stockée comme une ressource FHIR et obtient automatiquement une entrée Provenance.
4. Stocker les documents
# 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
L'original est immuable après le téléchargement ; les valeurs que vous en extrayez peuvent y pointer avec derived_from.
5. Lire l'enregistrement
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
Lorsque vous avez besoin du modèle FHIR complet, les mêmes données sont disponibles à /fhir/R4 avec les mêmes identifiants (API FHIR R4).
6. Connecter les laboratoires et les appareils
- Rapports de laboratoire :
POST /v1/patients/{id}/labs/importavec CSV, HL7 v2 ORU^R01 ou JSON transforme un rapport complet en Observations de laboratoire avec des codes LOINC (Connecteur de laboratoire). - Appareils et wearables : écrire des Observations avec
author_type: deviceet le code LOINC de la mesure (fréquence cardiaque, SpO₂, pas, durée du sommeil et autres sont listés dans Systèmes de codes FHIR).
7. Accéder à un dossier que le patient possède déjà (OAuth)
Si la personne possède déjà un dossier dans Anpheros (par exemple via Anpheros Daily), votre application peut demander l'accès au lieu de créer un nouveau patient : enregistrez une application, envoyez la personne à la page de consentement avec les scopes dont vous avez besoin, échangez le code contre des tokens et appelez l'API avec le jeton d'accès. Le patient choisit la durée et peut révoquer l'accès à tout moment. Détails : Authentification et OAuth.
8. Réagir aux changements avec les 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"]}'
Vérifiez l'en-tête Anpheros-Signature de chaque livraison (Webhooks).
9. Utiliser un SDK
Le même flux 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 client Dart / Flutter de forme similaire est disponible sous anpheros_sdk (SDKs).
Avant de passer en production
- Les clés de production (
sk_live_) sont délivrées aux organisations vérifiées ayant signé un accord de traitement des données. - Lisez la page Sécurité, confidentialité et résidence des données et les limites.
- Gérez les erreurs par leur type et citez l'en-tête
Anpheros-Request-Idlorsque vous contactez le support (Erreurs).
Liens connexes
- Comment créer une API de santé avec TypeScript : tutoriel étape par étape avec Express
- Comment créer une application de santé avec Flutter : tutoriel étape par étape avec le SDK Dart
- Comment créer une application de santé IA avec un backend FHIR : tutoriel étape par étape en TypeScript
- Développer avec Anpheros
- Backend et base de données d'applications médicales
- API de données médicales
- Développement de logiciels de santé
- Comment créer une application de dossier de santé personnel (PHR) avec FHIR
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card