Package org.fhirfrog.frog.profilecompiler.model
package org.fhirfrog.frog.profilecompiler.model
-
ClassDescriptionA choice-type (
xxx[x]) element with a specific must-support type, produced by theelementdefinition-type-must-supportextension (algorithm.md §3.3), e.g.A plain must-support element's own fixed/pattern literal-value constraint (algorithm.md §3.4 rule 2).One compiled, literal, per-instance FHIRPath check derived from a profile's must-support or mandatory-element requirements (algorithm.md §7, §5.11) - the compiler's actual output artifact.A must-support extension slot (algorithm.md §3.1):elementIdis the extension element's own id (e.g.Which of the four pattern-discriminator sub-shapes (algorithm.md §3.2.1'sresolve_pattern) a slice's discriminator sub-element carried its identifying constraint as.A "plain" must-support element (algorithm.md §3.4) - whatever's left after extensions, slices, and choice-type must-support elements (§3.3) are removed.The full must-support/mandatory derivation for one profile (algorithm.md §2/§3/§4), before compilation to literal FHIRPath.The two runtime strengths a compiled must-support check can carry, per algorithm.md §7.3: a missing mandatory (min>0) requirement is a hard failure, a missing optional (must-support, min=0) requirement is a warning.A single must-support slice requirement (algorithm.md §3.2), resolved via exactly one of the three implemented discriminator strategies.A slice identified by a single fixed/pattern value at the discriminator's sub-path (algorithm.md §3.2.1'spatternCodeableConcept/patternCoding/patternIdentifierbranches).A slice identified by required-strength ValueSet membership at the discriminator's sub-path (algorithm.md §3.2.1'srequiredBindingbranch) - a disjunction overcodes, expanded eagerly at compile time from locally-loaded IG packages only (seeValueSetExpander; not from a terminology server).A choice-element slice identified purely by concrete datatype (algorithm.md §3.2.2), e.g.A slice identified by several independent fixed sub-paths that must all match together on the same candidate element (algorithm.md §3.2.3) - a conjunction overmatches.