Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Need modifierFree and closedProfile abilities #648

Open
lmckenzi opened this issue Mar 19, 2023 · 0 comments
Open

Need modifierFree and closedProfile abilities #648

lmckenzi opened this issue Mar 19, 2023 · 0 comments
Labels
Approved Change has been reviewed and accepted and can now be applied to the templates enhancement New feature or request

Comments

@lmckenzi
Copy link
Contributor

lmckenzi commented Mar 19, 2023

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

  1. don't share the data
  2. don't comply with the profile
  3. shove the modifier somewhere else

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.

@github-actions github-actions bot added this to Inbox in Kanban board Mar 19, 2023
@lmckenzi lmckenzi added enhancement New feature or request Approved Change has been reviewed and accepted and can now be applied to the templates labels May 16, 2023
@lmckenzi lmckenzi moved this from Inbox to To do in Kanban board May 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Approved Change has been reviewed and accepted and can now be applied to the templates enhancement New feature or request
Projects
Development

No branches or pull requests

1 participant