# Systèmes de codes FHIR

> Quels systèmes de codes chaque type de ressource FHIR utilise : LOINC pour les mesures et les résultats de laboratoire, ICD-10 pour les conditions, ATC pour les médicaments, UCUM pour les unités, et SNOMED CT derrière un indicateur de licence.

Source: https://developers.anpheros.com/fr/guides/fhir-code-systems

Ce que la plateforme stocke et ce que Anpheros Daily (l'application patient) écrit via l'API. Les applications peuvent utiliser n'importe quel système de codes autorisé par FHIR ; cette page indique ceux que la plateforme reconnaît (recherche d'affichage, vérifications IPS, moteur de contexte) et ceux qu'Anpheros utilise lui-même. Dernière mise à jour le 22 septembre 2026.

| Ressource | Élément | Systèmes de codes | Notes |
|---|---|---|---|
| Observation (signes vitaux) | `code` | LOINC (`http://loinc.org`) | 8867-4 fréquence cardiaque, 85354-9 panel de pression artérielle (composants 8480-6 / 8462-4), 8310-5 température corporelle, 2339-0 glucose, 29463-7 poids corporel, 39156-5 IMC, 59408-5 SpO₂, 8302-2 taille |
| Observation (laboratoire) | `code` | LOINC ; local `urn:anpheros:lab` lorsqu'aucun LOINC n'est connu | mappé par Anpheros Daily ; plage de référence dans `referenceRange`, document dans `derivedFrom` |
| Observation (symptôme) | `code`, `category` | ICD-10 (`http://hl7.org/fhir/sid/icd-10`) chapitre R ; catégorie `urn:anpheros:observation-category\|symptom` ; SNOMED CT derrière un indicateur | le texte libre reste dans `code.text` ; intensité 1–10 dans `valueQuantity` (`{score}`). Les ressources écrites avant le 13 octobre 2026 peuvent porter le système HL7 `observation-category` avec le code `symptom` ; filtrer par code (`category=symptom`), pas par système. Seuls les symptômes que le patient rapporte comme présents, le concernant, sont écrits |
| Observation (enquête, bien-être) | `code`, `component` | `urn:anpheros:wellbeing` (dimension : émotionnelle / mentale / physique) | intensité comme composant `valueQuantity` `{score}` ; note dans `note` |
| Observation (activité, résumés de suivi quotidien) | `code` | LOINC : 40443-4 FC au repos, 8867-4 FC (composants min/moy/max), 80404-7 HRV (RMSSD), 59408-5 SpO₂, 41950-7 pas, 41981-2 énergie, 93832-4 durée du sommeil, 93831-6 / 93830-8 stades du sommeil | `effectivePeriod` couvre la journée ; catégorie `activity` |
| Condition | `code`, `severity`, `clinicalStatus` | ICD-10 ; sévérité SNOMED CT (24484000 sévère, 6736007 modérée, 255604002 légère) ; `condition-clinical` | catégorie `problem-list-item` |
| MedicationStatement | `medicationCodeableConcept` | ATC (`http://www.whocc.no/atc`) ; `code.text` = nom du produit | extension `daily-medication` pour les champs spécifiques à l'application |
| MedicationAdministration | `medicationCodeableConcept`, `supportingInformation` | ATC ; le plan de traitement comme `MedicationStatement/{id}` dans `supportingInformation` (paramètre de recherche `statement`) | une ressource par dose prise ou sautée (`status` terminée / non effectuée) |
| Immunization | `vaccineCode` | ATC J07 (`http://www.whocc.no/atc`) ou la nomenclature nationale ; `vaccineCode.text` toujours conservé | `occurrenceDateTime` requis pour la section IPS ; `protocolApplied.doseNumberPositiveInt` pour la dose |
| AllergyIntolerance | `code`, `reaction.manifestation`, `criticality` | SNOMED CT (derrière un indicateur) ou `code.text` uniquement ; ATC pour les allergies médicamenteuses | catégorie alimentaire / médicamenteuse / environnementale / biologique |
| DocumentReference | `type` | types de documents LOINC (`DOC_KIND_LOINC` dans `/v1`) | |
| Encounter | `class`, `type` | classe v3-ActCode ; SNOMED CT type lorsqu'il est connu | `episodeOfCare` → l'EpisodeOfCare d'une grossesse / maladie chronique / traitement |
| EpisodeOfCare | `type`, `diagnosis.condition` | `urn:anpheros:episode-type` (maladie / traitement / grossesse / autre) ; `diagnosis.condition` → la Condition | un par condition Anpheros Daily ("dosar", 25 sep 2026) ; `period` = début → fin. Les ressources liées pointent vers la Condition : `Observation.focus`, `MedicationStatement.reasonReference`, `DocumentReference.context.related`, `Appointment.reasonReference` (recherche : `focus`, `reason-reference`, `related`, `condition`) |
| Appointment | `serviceType` | système de codes `service-type` | |
| RelatedPerson | `relationship` | v3-RoleCode (MTH, FTH, CHILD, SPS, …) | |
| QuestionnaireResponse | `questionnaire` | URLs canoniques sous `https://anpheros.com/fhir/Questionnaire/` | |
| Basic | `code` | `urn:anpheros:basic` | échappatoire ; tout code documenté ici avant utilisation |
| Provenance | `agent.type` | `provenance-participant-type` | |

## Identifiants et extensions

- Identifiants locaux des lignes Anpheros Daily : `urn:anpheros:daily:{vital|medication|condition|episode|lab|symptom|document|weight|wellbeing|intake|immunization|allergy|health-day}`.
- Extension de condition `daily-condition` (25 Sep 2026) : `kind` (maladie / traitement / grossesse / autre), `color` (clé de palette d'application), `source`, `due_date` (grossesse). Une grossesse sans code écrit porte le code ICD-10 `Z33`.
- Les extensions résident sous `https://anpheros.com/fhir/StructureDefinition/daily-*` (`daily-medication`, `daily-symptom`, `daily-condition`, …).
- Les unités sont UCUM (`http://unitsofmeasure.org`) partout où une quantité est écrite.

## Concepts de symptômes (version 2026.10.2, 16 octobre 2026)

`GET /v1/terminology/symptoms?q=&icd10=&kind=symptom|finding|all&lang=&limit=&offset=` et
`GET /v1/terminology/symptoms/{concept_id}` servent les concepts de symptômes Anpheros : un identifiant stable
(`SYM-0001`…, jamais réutilisé ; système `https://anpheros.com/fhir/CodeSystem/symptom`), le mappage ICD-10 avec son
équivalence (`equivalent`, ou `broader` lorsque le code ICD-10 couvre plus que le concept), les libellés et les
termes de correspondance utilisés pour trouver le concept dans le texte libre.

- 86 concepts : 70 symptômes et 16 signes (R70–R94). Les symptômes utilisent ICD-10 R00–R69 et, lorsque l'OMS classe le
  symptôme ailleurs, le code OMS : G47 troubles du sommeil, H53.2 vision double, H53.8 vision floue (plus large), H93.1
  acouphènes, K59.0 constipation, L29.9 démangeaisons, M25.5 douleur articulaire, M54 douleur dorsale.
- Chaque code et titre anglais a été vérifié par rapport au navigateur WHO ICD-10 Version 2019 le 15 octobre 2026, y compris
  ses notes d'inclusion et d'exclusion ; `icd10.display` est le titre OMS.
- Chaque concept est également mappé à **ICD-11 MMS 2025-01** (`icd11` : code, titre OMS, équivalence `equivalent | wider |
  narrower | inexact`) and to a **body system** (`body_system`: the ICD-11 chapter 21 block of that code, e.g. `nervous`,
  `digestive`). Le code de symptôme du chapitre 21 est utilisé plutôt qu'un code de maladie (mal de tête → MB4D, pas 8A8Z) ; chaque
  écart par rapport au tableau de mappage WHO ICD-10 → ICD-11 est listé dans `release.json` (`icd11_departures`). Filtrer avec
  `?icd11=MB4D` ou `?body_system=digestive`.
- Les libellés portent un statut `review` : `source` (le titre officiel en anglais de l'OMS), `in_use` (les libellés roumains et les termes de correspondance qu'Anpheros Daily utilise) ou `ai_reviewed` (libellés profanes dans 19 langues : traductions automatiques révisées terme par terme par rapport aux titres de l'OMS avec l'aide de l'IA, **pas** par un clinicien ou un traducteur médical professionnel). `display`
  est le libellé préféré dans `lang`, sinon le libellé profane, sinon l'anglais ; `display_lang` indique lequel.
- Signes d'alerte : 32 éléments pour 14 concepts, cités mot pour mot de pages du domaine public du CDC et du NIDDK, chacun avec sa
  source, `review: source_verified` et une note "pas un diagnostic". Pas de causes ni d'associations de conditions. Chaque concept porte
  `clinical_review: false` jusqu'à ce qu'un clinicien qualifié examine la version.
- Les données résident dans `app/terminology/symptoms/` (`concepts.csv`, `labels.csv`, `release.json` avec les sources) ; un changement
  est un commit révisé et un nouveau numéro de version.
- Anpheros Daily ajoute le concept comme second codage à côté de l'ICD-10 sur les Observations de symptômes.
- Démonstration avec requêtes et réponses : [API de données de symptômes](https://developers.anpheros.com/fr/guides/symptom-data-api).

### Les mêmes concepts que la terminologie FHIR (15 octobre 2026)

En lecture seule, de la même version, avec la même règle de publication (libellés révisés uniquement) :

| Ressource | Lecture | Notes |
|---|---|---|
| CodeSystem | `GET /fhir/R4/CodeSystem/anpheros-symptom`, `GET /fhir/R4/CodeSystem?url=https://anpheros.com/fhir/CodeSystem/symptom` | `content: complete`, `status: draft` jusqu'à révision clinique ; propriétés `kind`, `status`, `icd10`, `icd11`, `body_system` ; libellés roumains, termes de correspondance et libellés profanes comme désignations |
| CodeSystem/$lookup | `GET /fhir/R4/CodeSystem/$lookup?system=https://anpheros.com/fhir/CodeSystem/symptom&code=SYM-0047&displayLanguage=ro` | `Parameters` avec affichage, désignations et propriétés |
| ValueSet | `GET /fhir/R4/ValueSet/anpheros-symptoms`, `GET /fhir/R4/ValueSet/$expand?url=https://anpheros.com/fhir/ValueSet/anpheros-symptoms&filter=&displayLanguage=&count=&offset=` | symptômes actifs (signes exclus) |
| ConceptMap | `GET /fhir/R4/ConceptMap/anpheros-symptom-to-icd10` | `equivalent`, ou `wider` lorsque le code ICD-10 couvre plus que le concept (H53.8) |
| ConceptMap | `GET /fhir/R4/ConceptMap/anpheros-symptom-to-icd11` | ICD-11 MMS 2025-01 (`http://id.who.int/icd/release/11/mms`), avec `equivalent`, `wider`, `narrower` ou `inexact` |

**Profil `anpheros-symptom`** (`POST /fhir/R4/Observation/$validate?profile=anpheros-symptom`, canonique
`https://anpheros.com/fhir/StructureDefinition/anpheros-symptom-observation`) : catégorie
`urn:anpheros:observation-category|symptom` (le code HL7 `observation-category` est rejeté), les mots de la personne dans
`code.text`, le concept Anpheros cohérent avec le code ICD-10, sujet = Patient, statut final / amendé /
corrigé / entré-en-erreur, effective[x] avec `effectivePeriod.end` pas avant `start`, intensité en UCUM `{score}`
0–10. Comme les autres profils, il signale les problèmes et ne rejette pas les écritures.

## Licences

LOINC, ATC (WHO), ICD-10 (WHO) et UCUM sont utilisés sous leurs licences publiques. SNOMED CT requiert une licence nationale ou affiliée : les tables de mappage sont fournies avec le code, mais les codes SNOMED ne sont écrits que lorsque `TERMINOLOGY_SNOMED_ENABLED` est activé (en attente de la licence pour la Roumanie).

Comment mapper des données provenant de différentes sources vers ces systèmes de codage, avec les unités, les dates et la validation : [Comment normaliser les données médicales](https://developers.anpheros.com/fr/guides/normalize-medical-data).

Où rechercher ces systèmes de codage et ce que couvre le sous-ensemble inclus : [API de terminologie médicale](https://developers.anpheros.com/fr/guides/medical-terminology-api).
