Skip to content

ChEkmMpoxManifestation: final pre-/post-coordination (DEMIS-aligned) + language-supplement $expand limitation #24

Description

@oliveregger

ChEkmMpoxManifestation — final pre-/post-coordination setup (DEMIS-aligned) + language-supplement limitation

Value set for the Mpox Manifestation form item (TODO.md issue #1), bound to Condition.evidence.code.
Defined in input/fsh/terminology/ChEkmMpoxManifestation.fsh.

Unlike Gonorrhoea (reduced to symptomatic/asymptomatic), the Mpox form enumerates specific manifestations, so this is a granular clinical value set (skin lesions by body site + systemic symptoms). The skin-lesion axis is aligned with the German DEMIS Mpox notification codes (base 95324001 |Skin lesion| + grouped finding-site refinement) for cross-border comparability.

Final code set

Form item (DE) SNOMED code Coordination
Hautläsionen wie Bläschen/Pusteln/Krusten 95324001 Skin lesion pre-coordinated
Hautläsion genital/anal 95324001:{363698007=280158000} (Skin lesion : Finding site = Skin of anogenital region) post-coordinated
Hautläsion Gesicht 95324001:{363698007=73897004} (… = Skin of face) post-coordinated
Hautläsion Extremitäten 95324001:{363698007=116370005} (… = Skin of extremity) post-coordinated
Hautläsion andere Lokalisationen 95324001 Skin lesion a specific "other" site could be captured as free text in Condition.evidence.code.text (TBD)
Lymphadenopathie 30746006 pre-coordinated
Myalgie 68962001 pre-coordinated
Kopfschmerzen 25064002 pre-coordinated
Rückenschmerzen 161891005 Backache pre-coordinated
Asthenie 13791008 pre-coordinated
Fieber 386661006 pre-coordinated
andere / Keine / unbekannt via ChEkmOtherNoneUnknown (74964007 / 373572006 / 261665006) included VS

Design decisions

  • Base concept 95324001 |Skin lesion (disorder)| (not 271807003 |Eruption/Rash|) — matches the form wording "Hautläsionen wie Bläschen/Pusteln/Krusten" and the DEMIS base.
  • 280158000 |Skin of anogenital region| is an exact match for the combined "genital/anal" checkbox. (An earlier draft used 442279002 |Rash of genitalia|, which is genital-only and missed anal — corrected.)
  • Grouped refinement syntax { 363698007 = … } mirrors DEMIS exactly; verified it $expands on tx.fhir.ch.
  • andere Lokalisationen is a form catch-all, not a body site → generic base 95324001; a specific "other" site is captured as free text in Condition.evidence.code.text (form field andere: ___).
  • Gesicht uses generic 73897004 |Skin of face|. DEMIS additionally distinguishes 110488009 |perioral| / 836005 |oral| (characteristic Mpox mouth lesions); the CH form only has one "Gesicht" checkbox, so the generic face structure is used.
  • de/fr/it designations for all newly introduced codes added to CodeSystemSupplements.fsh (ChEkmSnomedLanguageSupplement), DRAFT — to be validated against the official SNOMED CT Swiss extension.

DEMIS reference expressions (for comparison):

95324001:{363698007=110488009}  perioral            (Skin structure of perioral region of face)
95324001:{363698007=280158000}  im Anogenitalbereich (Skin structure of anogenital region)
95324001:{363698007=836005}     oral                (Structure of oral region of face)

⚠️ Limitation: language supplement is NOT applied to post-coordinated expressions on $expand

When expanding with displayLanguage + useSupplement, tx.fhir.ch applies the supplement designation to pre-coordinated codes but not to the post-coordinated expressions — for an expression the server returns the normal-form display string, ignoring the de-CH/fr-CH/it-CH designation we authored for it.

Verified on tx.fhir.ch (ValueSet/$expand, displayLanguage=de-CH, supplement supplied as tx-resource + useSupplement):

Code de-CH display returned by tx
386661006 Fever (pre-coordinated) Fieber
95324001 Skin lesion (pre-coordinated) Hautläsion
95324001:{363698007=116370005} (Extremitäten, expression) normal-form string ❌ (supplement ignored)

Consequence: a live renderer that expands against the tx server (e.g. Smart Forms / fhirsmith) shows the untranslated normal-form label for the post-coordinated skin-lesion options.

Workaround in place: the preview builder tests/build-preview-questionnaire.py overrides the display client-side for post-coordinated codes, reading the designation directly from the local supplement, so the baked-in options read e.g. Hautläsion an den Extremitäten. This only fixes the pre-expanded preview, not live server expansion.

Open questions

  • How to handle Hautläsionen wie Bläschen/Pusteln/Krusten / Hautläsion andere Lokalisationen they should not have the same SNOMED CT code

    95324001 |Skin lesion| is deliberately morphology- and stage-agnostic (Mpox lesions evolve macule→papule→vesicle→pustule→crust — that's why DEMIS uses the generic base, not a vesicle-specific code). So "lesions present, generally" and "lesion at an other/unspecified site" both land on the same bare code. The fix has to be structural.
    The decision hinges on one thing I can't determine from the sheet: is "Hautläsionen wie Bläschen/Pusteln/Krusten" actually a selectable answer, or the heading for the four indented location checkboxes?

  • Validate the de/fr/it designations against the official SNOMED CT CH extension.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions