# API de données médicales

> Où chaque type de données médicales se situe dans l'API Anpheros, comment il est codé, et comment l'écrire, le filtrer, le tracer, le corriger et le supprimer — avec des exemples fonctionnels.

Source: https://developers.anpheros.com/fr/guides/medical-data-api

**Une API de données médicales donne aux logiciels un accès structuré au contenu des dossiers patients : créer un patient, enregistrer une mesure de tension artérielle, lister les médicaments actifs, joindre un rapport de laboratoire, tracer qui a écrit quoi.** Cette page décrit les opérations de données de l'API Anpheros — où se situe chaque type de données médicales, comment il est codé, et comment le lire — avec des exemples qui fonctionnent contre le sandbox.

Les applications utilisent ces opérations pour traiter Anpheros comme la base de données médicale de leur produit : les dossiers patients résident dans le magasin HL7 FHIR R4 de la plateforme, et l'application les lit et les écrit via l'API au lieu de conserver ses propres tables de données médicales.

Pour une vue d'ensemble plus large (authentification, consentement, événements), consultez [API de santé](https://developers.anpheros.com/fr/guides/healthcare-api).

## Où vont les différents types de données médicales

| Données médicales | REST v1 | Ressource FHIR | Codage |
|---|---|---|---|
| La personne | `POST /v1/patients` | `Patient` | nom, date de naissance, genre, identifiants |
| Signes vitaux, résultats de laboratoire, symptômes, activité, enquêtes | `/v1/patients/{id}/observations` | `Observation` | LOINC (symptômes : chapitre R de la CIM-10) ; unités UCUM |
| Diagnostics et problèmes | `/v1/patients/{id}/conditions` | `Condition` | CIM-10 |
| Médicaments | `/v1/patients/{id}/medications` | `MedicationStatement` | ATC, nom du produit conservé sous forme de texte |
| Documents (PDF, images) | `/v1/patients/{id}/documents` | `DocumentReference` | types de documents LOINC |
| Un rapport de laboratoire complet | `POST /v1/patients/{id}/labs/import` | `Observation` (laboratoire) | LOINC lorsque connu, sinon le propre code du laboratoire |
| Doses prises ou sautées, vaccinations, allergies, procédures, rapports, plans de soins, objectifs, références, visites, rendez-vous, équipes de soins, antécédents familiaux, questionnaires | `/fhir/R4/{type}` | `MedicationAdministration`, `Immunization`, `AllergyIntolerance`, `Procedure`, `DiagnosticReport`, `CarePlan`, `Goal`, `ServiceRequest`, `Encounter`, `Appointment`, `CareTeam`, `FamilyMemberHistory`, `QuestionnaireResponse` | par [systèmes de codes FHIR](https://developers.anpheros.com/fr/guides/fhir-code-systems) |

Les objets REST v1 et les ressources FHIR sont les mêmes enregistrements avec les mêmes identifiants ; chaque objet v1 porte sa référence `fhir`.

## Écrire des données médicales

```bash
# a lab result with its reference range, linked to the report it came from
curl -X POST https://platform.anpheros.com/v1/patients/$PID/observations \
     -H "Authorization: Bearer $KEY" -H 'content-type: application/json' -H "Idempotency-Key: $(uuidgen)" -d '{
  "code": "4548-4", "display": "Hemoglobin A1c", "category": "laboratory",
  "value": 6.4, "unit": "%", "effective_at": "2026-09-01T08:00:00Z",
  "reference_range": {"low": 4.0, "high": 5.6},
  "derived_from": ["DocumentReference/'$DOC'"], "author_type": "import"
}'
```

- **Catégories d'observation :** `vital-signs`, `laboratory`, `symptom`, `activity`, `survey`, `exam`, `imaging`, `social-history`.
- **Mesures composites** telles que la pression artérielle utilisent `components` (systolique `8480-6`, diastolique `8462-4` à l'intérieur du panel `85354-9`).
- **Types d'auteurs :** `patient`, `practitioner`, `device`, `import`, `ai`. Sans l'un d'eux, la plateforme enregistre `import`.
- **Codes que vous ne connaissez pas par cœur :** `GET /v1/terminology/loinc?q=hba1c` recherche le sous-ensemble LOINC inclus et `GET /v1/search?q=metformin` le catalogue des symptômes, conditions et médicaments ; une observation écrite sans nom d'affichage obtient automatiquement le nom LOINC.

## Lecture des données médicales

```bash
curl "https://platform.anpheros.com/v1/patients/$PID/observations?category=laboratory&code=4548-4&from=2026-01-01" -H "Authorization: Bearer $KEY"
curl "https://platform.anpheros.com/v1/patients/$PID/conditions?clinical_status=active" -H "Authorization: Bearer $KEY"
curl "https://platform.anpheros.com/v1/patients/$PID/medications?status=active" -H "Authorization: Bearer $KEY"
curl "https://platform.anpheros.com/v1/patients/$PID/timeline?from=2026-06-01" -H "Authorization: Bearer $KEY"
```

| Point de terminaison | Filtres |
|---|---|
| observations | `category`, `code`, `from`, `to` |
| conditions | `clinical_status` |
| medications | `status` |
| documents | `kind` |
| timeline | `from`, `to`, `types` |

Les listes sont paginées avec `limit` et `cursor`. La **timeline** fusionne les observations, les conditions, les médicaments, les documents, les visites, les rendez-vous, les vaccinations et les épisodes de soins en une seule liste chronologique — l'entrée naturelle pour un écran d'historique du patient.

Pour tout ce que les filtres REST ne couvrent pas, utilisez la recherche FHIR : `GET /fhir/R4/Observation?patient=$PID&code=http://loinc.org|4548-4&_sort=-date` ([plateforme FHIR](https://developers.anpheros.com/fr/guides/fhir)).

## Traçage et correction des données

- **Qui l'a écrit :** `GET /v1/patients/{id}/provenance/{type}/{resourceId}` — une entrée par version, avec le type d'auteur, le projet, l'organisation et le système source.
- **Chaque version :** `GET /fhir/R4/{type}/{id}/_history` ; mettez à jour avec `If-Match` pour éviter d'écraser la modification de quelqu'un d'autre.
- **Propriété :** avec consentement, vous pouvez lire ce que d'autres organisations ont écrit, mais modifier ou supprimer uniquement ce que votre projet a écrit (`403` sinon).
- **Suppression :** `DELETE /v1/{observations|conditions|medications}/{id}` ; la suppression d'un `Patient` supprime l'intégralité de l'enregistrement.

## Documents

Créez le document (vous obtenez une cible de téléchargement), téléchargez les octets via la plateforme ou directement vers le stockage, puis finalisez. Après la finalisation, l'original est immuable ; son SHA-256 et sa taille sont enregistrés. Jusqu'à 25 MiB par fichier.

## Liens connexes

- [Comment normaliser les données médicales](https://developers.anpheros.com/fr/guides/normalize-medical-data) : codes, unités, dates, doublons, validation
- [Provenance des données médicales expliquée](https://developers.anpheros.com/fr/guides/medical-data-provenance) : qui a écrit quoi, et comment l'enregistrer
- [API de santé](https://developers.anpheros.com/fr/guides/healthcare-api)
- [Dossier médical du patient](https://developers.anpheros.com/fr/guides/patient-medical-record)
- [Créer une application de santé](https://developers.anpheros.com/fr/guides/build-a-healthcare-app)
- [Référence API (OpenAPI)](https://developers.anpheros.com/docs) · [Démarrage rapide](https://developers.anpheros.com/fr/guides/getting-started)
