AnpherosAnpheros PlatformDevelopers

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 :

  1. conserver un dossier par patient : mesures, conditions, médicaments, documents ;
  2. afficher ce dossier sous forme de listes et de chronologie ;
  3. accepter des données provenant d'autres sources (appareils, laboratoires, cliniques) ;
  4. partager des parties du dossier, avec le consentement du patient ;
  5. 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

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

Liens connexes

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