Package org.fhirfrog.frog.profilecompiler
package org.fhirfrog.frog.profilecompiler
-
ClassDescriptionLoads one IG package plus its full transitive dependency closure and exposes canonical-URL lookups against it - the compiler's one and only source of profile/datatype-profile/ValueSet/ CodeSystem data.Thrown for a compile-time problem that isn't specifically about slice discriminator resolution (see
UnsupportedDiscriminatorExceptionfor that) or ValueSet expansion (seeValueSetNotLocallyEnumerableException) - e.g. a snapshot missing where one was required, or a must-support extension with notype.profileto check against.The compiler's top-level entry point:ProfileRequirementsCompiler.deriveRequirements(org.hl7.fhir.r4.model.StructureDefinition)implements algorithm.md §2-§4 (must-support extraction, partitioned per §3.0, plus mandatory-element extraction per §4) andProfileRequirementsCompiler.compileAssertions(org.hl7.fhir.r4.model.StructureDefinition)implements the per-instance literal-FHIRPath translation (§7, this change's tasks.md 5.11).Thrown at compile time when a must-support slice's discriminator can't be resolved by any of this compiler's three implemented strategies (pattern/type/value) - most commonly because itsdiscriminator.typeisexistsorprofile(2 of FHIR's 5 defined kinds, genuinely unimplemented here; algorithm.md §8.1), but also raised for apatterndiscriminator whose resolved sub-element carries none of the four handled constraint shapes.Thrown when arequiredBindingpattern-discriminator sub-case (algorithm.md §3.2.1) needs a ValueSet's code list expanded, but that ValueSet'scompose.includeisn't fully enumerable from the loaded IG package closure alone - e.g. it names an external code system with no localCodeSystemresource and no explicitconceptlist.