Proposal
Seed fmlrunner with a real-world end-to-end test case from published WHO SMART Guidelines content: the client-registration map set from smart-immunizations.
The entry map is IMMZ.C4.QRToPatient (QuestionnaireResponse → Bundle), which composes the two-hop pattern via imports:
IMMZ.C4.QRToLM — QuestionnaireResponse → IMMZC4 logical model
IMMZ.C4.LMToPatient — IMMZC4 logical model → Bundle (Patient + one RelatedPerson per caregiver)
Source: input/maps/ in WorldHealthOrganization/smart-immunizations.
This one case exercises a useful spread of engine features: map imports/group calls, create() of a logical-model instance, repeating source groups fanning out to multiple target resources, cross-resource references within a Bundle, and translate() against a ConceptMap (IMMZ.C.ConceptMap: DE6→male, DE7→female, DE8→unknown, DE9→other on administrative-gender).
What I can supply
- Input fixture: a complete QuestionnaireResponse for QIMMZC4 (synthetic patient, all item types covered: strings, date, coded sex answer, one repeating caregiver group instance).
- Expected output: the Patient + RelatedPerson the maps specify, derived rule-by-rule from
IMMZ.C4.LMToPatient.fml — including gender = female from translate() of the coded sex answer, and RelatedPerson.patient referencing the Patient entry.
- Dependencies the runner needs resolvable: the
IMMZC4 logical-model StructureDefinition and ConceptMap/IMMZ.C.ConceptMap, both published in the IG.
- A live consumer: ohs-foundation's player-reference app already renders QIMMZC4 on the KMP stack, so a working transform has an immediate integration target.
I've verified this fixture pair against the map rules independently (via an SDC template-extraction experiment on the KMP stack), so the expected output is already pinned down. If wanted, the remaining nine IMMZ questionnaires/map sets can follow the same pattern once the first case runs.
Happy to open this as a PR (fixtures + a test wired into the existing test setup) — flagging as an issue first to agree on where conformance fixtures should live in the repo.
🤖 Generated with Claude Code
https://claude.ai/code/session_01LGgxE9TK56BNPJJX2PnYhj
Proposal
Seed fmlrunner with a real-world end-to-end test case from published WHO SMART Guidelines content: the client-registration map set from smart-immunizations.
The entry map is
IMMZ.C4.QRToPatient(QuestionnaireResponse → Bundle), which composes the two-hop pattern via imports:IMMZ.C4.QRToLM— QuestionnaireResponse → IMMZC4 logical modelIMMZ.C4.LMToPatient— IMMZC4 logical model → Bundle (Patient + one RelatedPerson per caregiver)Source:
input/maps/in WorldHealthOrganization/smart-immunizations.This one case exercises a useful spread of engine features: map imports/group calls,
create()of a logical-model instance, repeating source groups fanning out to multiple target resources, cross-resource references within a Bundle, andtranslate()against a ConceptMap (IMMZ.C.ConceptMap: DE6→male, DE7→female, DE8→unknown, DE9→other on administrative-gender).What I can supply
IMMZ.C4.LMToPatient.fml— includinggender = femalefromtranslate()of the coded sex answer, andRelatedPerson.patientreferencing the Patient entry.IMMZC4logical-model StructureDefinition andConceptMap/IMMZ.C.ConceptMap, both published in the IG.I've verified this fixture pair against the map rules independently (via an SDC template-extraction experiment on the KMP stack), so the expected output is already pinned down. If wanted, the remaining nine IMMZ questionnaires/map sets can follow the same pattern once the first case runs.
Happy to open this as a PR (fixtures + a test wired into the existing test setup) — flagging as an issue first to agree on where conformance fixtures should live in the repo.
🤖 Generated with Claude Code
https://claude.ai/code/session_01LGgxE9TK56BNPJJX2PnYhj