The publisher needs to support capturing the 'maturity' associated with conformance artifacts. Specifically:
The publisher must recognize and allow the inclusion of extensions that declare 'maturity', supporting documentation for the assertion of that 'maturity' and that represent the 'standards' status of the artifact (draft, trial use, normative, deprecated, etc.)
The publisher must accept an IG parameter that indicates the URL of the location that describes the maturity rules (given that different IG authoring environments might have different maturity scales). It's an error if the fmm extension appears and there is no property indicating the page that defines the maturity scale.
The existing HL7 extensions for fmm (integer) and approval (code) will be used and a new extension (markdown) will be defined to allow capture of supporting information.
The publisher needs to infer maturity and standards status of artifacts that don't directly declare these extensions based on related artifacts (so that authors aren't faced with the task of declaring (and keeping consistent) these values everywhere.
A new 0..* Reference extension needs to be defined that can appear on the fmm and/or standards-status that indicates that the values have been inferred from the referenced artifact.
These extensions can be used both within HL7 and external IGs. Templates may set rules about whether status and/or fmm must be declared, define rules for relationships (e.g. can a normative artifact depend on a draft artifact), and determine if/where/how these various extensions are exposed in the artifact rendering.
Proposed algorithm for propagating maturity and standards status:
Resources that don't directly set conformance expectations can't have a maturity level and automatically have a 'standards' level of 'Informative' (if standards levels are declared on any other elements in the IG). The resources that qualify under this list are:
any resources that aren't 'canonical' resources
any resources that are flagged by the ImplementationGuide as being examples
any resources that are marked as isExperimental=true
The following CanonicalResources: ChargeItemDefinition, Citation, ConditionDefinition, Evidence, EvidenceReport, EvidenceVariable, ExampleScenario, ObservationDefinition, TestScript
Maturity and/or 'standards' status will only be inferred if it is not explicitly declared
The maturity and standards status of artifacts will be inferred as the 'highest' maturity/status of the artifacts that reference them in defined ways.
Higher integer values indicate higher maturity
For standards status: informative is higher than draft; trial use is higher than informative, normative is higher than informative. Other standards statuses (deprecated, external) are not propagated.
status will propagate as follows (Resources are listed roughly in order of 'hierarchy' from a cascade perspective):
The following canonical resources can be propagated to, but cannot propagate: CodeSystem, EventDefinition, Library, NamingSystem, TerminologyCapabilities
Any element having the cqf-library extension will propagate to that Library
The publisher needs to support capturing the 'maturity' associated with conformance artifacts. Specifically: