Need modifierFree and closedProfile abilities #648
Labels
Approved
Change has been reviewed and accepted and can now be applied to the templates
enhancement
New feature or request
Projects
From https://jira.hl7.org/browse/FHIR-17549
We need an ability on each profile or on an IG as a whole to say "noModifiers" or "closed"
The first would automatically cause the differential to add any modifier elements not marked as mustSupport in the current profile or one of the ancestors as 0..0. The second would mark all optional elements not marked as mustSupport in the current profile or one of the ancestors as 0..0.
Need to think about how this works with the new obligations mechanism, as well as invariants...
We would need to add language to these extensions that says the following:
noModifiers:
Modifier elements are safety valves. see details here. If modifiers are constrained out, that leaves an implementer with three choices
The third option is dangerous and is definitely not desired, so if you're constraining out modifiers, it always needs to be obvious to implementers whether that means they should follow #1 or #2.
For profiles using this extension, modifier elements other than modifierExtension and implicitRules SHOULD generally be explicitly addressed (either constrained out with rationale, marked as mustSupport, or have their values constrained).
Closed:
Prohibiting data that could just as easily be ignored is almost always a bad idea. It forces the creation of a custom interface by all participants which must then be maintained on an ongoing basis. That increases costs for the overall community, and reduces the pool of potential participants that will opt to comply. The primary circumstance when closing a profile is justified is if there are confirmed legal consequences for allowing data past the "front door" of the interface, but then ignoring it. Such circumstances are uncommon and alternatives to prohibiting unwanted elements should be explored first.
The text was updated successfully, but these errors were encountered: