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
ChEkmMpoxManifestation— final pre-/post-coordination setup (DEMIS-aligned) + language-supplement limitationValue 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
95324001Skin lesion95324001:{363698007=280158000}(Skin lesion : Finding site = Skin of anogenital region)95324001:{363698007=73897004}(… = Skin of face)95324001:{363698007=116370005}(… = Skin of extremity)95324001Skin lesion307460066896200125064002161891005Backache13791008386661006ChEkmOtherNoneUnknown(74964007/373572006/261665006)Design decisions
95324001 |Skin lesion (disorder)|(not271807003 |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 used442279002 |Rash of genitalia|, which is genital-only and missed anal — corrected.){ 363698007 = … }mirrors DEMIS exactly; verified it$expands on tx.fhir.ch.95324001; a specific "other" site is captured as free text inCondition.evidence.code.text(form fieldandere: ___).73897004 |Skin of face|. DEMIS additionally distinguishes110488009 |perioral|/836005 |oral|(characteristic Mpox mouth lesions); the CH form only has one "Gesicht" checkbox, so the generic face structure is used.CodeSystemSupplements.fsh(ChEkmSnomedLanguageSupplement), DRAFT — to be validated against the official SNOMED CT Swiss extension.DEMIS reference expressions (for comparison):
$expandWhen 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 thede-CH/fr-CH/it-CHdesignation we authored for it.Verified on tx.fhir.ch (
ValueSet/$expand,displayLanguage=de-CH, supplement supplied astx-resource+useSupplement):386661006Fever (pre-coordinated)Fieber✅95324001Skin lesion (pre-coordinated)Hautläsion✅95324001:{363698007=116370005}(Extremitäten, expression)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.pyoverrides 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.