Moteur compositionnel & oncologie (MC)
1. Pourquoi compositionnel
Section intitulée « 1. Pourquoi compositionnel »🟢🔵 Une tumeur ne se réduit pas à un concept : un registre cancer la décrit par plusieurs axes (où ? quel tissu ? quel comportement ? quel grade ?). Messier reproduit cette décomposition via un moteur dédié, la lib open-core MC. Une mention est donc soit simple (un concept Mondo) soit compositionnelle (ancre + axes).
2. Les axes
Section intitulée « 2. Les axes »🔵 La maladie Mondo est l’ancre (axis=null), pas un axe. Les quatre axes :
| Axe | Valeur | Terminologie |
|---|---|---|
| topographie | site tumoral | SNOMED body structure (SCTID) |
| morphologie | histologie | SNOMED morphologic abnormality (SCTID) |
| comportement | /0 /2 /3 /6 | échelle ICD-O (dérivée) |
| grade | G1–G4 | valeur → SCTID (table déterministe) |
flowchart TB A["Ancre : maladie Mondo<br/>(MONDO:xxxx)"] A --> T["topographie<br/>SCTID body structure"] A --> M["morphologie<br/>SCTID morphologic abnormality"] A --> B["comportement<br/>/0 /2 /3 /6"] A --> G["grade<br/>G1–G4 → SCTID"] classDef anchor fill:#eef4ff,stroke:#3b6 classDef axis fill:#e7f5ec,stroke:#2E7D5B class A anchor class T,M,B,G axis
Chaque axe porte un état (pending / inferred / validated / rejected / nil), un chosen
(concept_id + system + label), une provenance (text / override / augmented / deterministic /
linker) et un raw_value. Contrat moteur : CompositeResult → AxisMapping par axe.
3. Curation onco en 2 temps
Section intitulée « 3. Curation onco en 2 temps »🔵 Une mention détectée oncologique (descendant Mondo de neoplasm) ne passe pas
directement à validated : un 1ᵉʳ accept (maladie Mondo) la met en pending_oncology
(file onco dédiée) ; un 2ᵉ accept, avec les décisions par axe, la fait passer validated.
stateDiagram-v2 [*] --> pending pending --> validated : accept (mention simple) pending --> pending_oncology : accept (flag onco) pending_oncology --> validated : 2ᵉ accept (axes tranchés) pending --> pending_arbitration : request_arbitration pending_arbitration --> arbitrated : arbitrate_accept/reject pending --> rejected : reject
4. Augmentation déterministe
Section intitulée « 4. Augmentation déterministe »🔵 À l’arrivée d’une mention onco, le moteur pré-remplit des axes : le flag oncologie
est déterministe (hiérarchie Mondo) ; behavior/grade sont inférés (statut inferred, à
confirmer) ; les candidats topo/morpho viennent du linker (KB SNOMED). La provenance par
champ permet à l’UI de griser / badger « pré-rempli ».
5. Pont Mondo→requête topographique (D21)
Section intitulée « 5. Pont Mondo→requête topographique (D21) »🔵 Pour pré-remplir la topographie même quand la mention ne contient pas de span topo explicite, le moteur synthétise une requête depuis l’ancre Mondo :
- Mode A — un span topographique est présent → requête directe.
- Mode B — pas de span (long-tail : Kehlkopf, Harnleiter…) → synthèse depuis l’ancre.
Ce pont atténue le trou de couverture DE sur la topographie onco (cf. asymétrie multilingue, Moteur de linking (cœur ML)).
Voir aussi
Section intitulée « Voir aussi »- Pont terminologique & émission (Mondo→SNOMED) — émission par axe (SCTID des axes).
- Imports & exports (interop) — l’export SPHN consomme les axes.
- Produit de curation (UX) — l’IDE onco (OncoTabs).