Obligation Discussion
0.4.1 - Working Draft to present the Concept Ideas and Background Details (FO)

Obligation Discussion - Local Development build (v0.4.1) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Extension: New Obligation Extension

Official URL: http://v2.hl7.org/fhir/StructureDefinition/new-obligation Version: 0.1.0
Draft as of 2024-05-08 Computable Name: MyNewObligationExtension

Modified Extension to handle the obligations as I would like to see it. Also allowing for my own codesystems - where necessary.

Context of Use

This extension may be used on the following element(s):

  • Element ID ElementDefinition
  • Element ID ElementDefinition.type
  • Element ID StructureDefinition

Usage info

Usage:

Formal Views of Extension Content

Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.

This structure is derived from Extension

Summary

Complex Extension: Modified Extension to handle the obligations as I would like to see it. Also allowing for my own codesystems - where necessary.

  • code: code: An Extension
  • elementId: string: Limits obligation to some repeats by FHIRPath
  • actor: canonical: An Extension
  • documentation: string: An Extension
  • valueCalculation: string: An Extension
  • referenceElementId: string: An Extension
  • usage: UsageContext: An Extension
  • filter: string: An Extension
  • filterDocumentation: string: An Extension
  • process: canonical: An Extension

This structure is derived from Extension

NameFlagsCard.TypeDescription & Constraintsdoco
.. Extension 0..* Extension New Obligation Extension
... extension 1..* Extension Extension
... extension:code S 1..1 Extension Composite code describing the nature of the obligation
.... extension 0..0
.... url 1..1 uri "code"
.... value[x] 0..1 code Value of extension
Binding: Proposed Obligation Codes VS (complete) (required)
... extension:elementId S 0..1 Extension When the obligation is on the profile itself, not a particular element, a list of elements to which it applies
.... extension 0..0
.... url 1..1 uri "elementId"
.... value[x] 0..1 string Value of extension
.... extension 0..0
.... url 1..1 uri "actor"
.... value[x] 0..1 canonical(ActorDefinition) Value of extension
... extension:documentation S 0..1 Extension an explanation of what is intended with this specific obligation instance - beyond the formal definition
.... extension 0..0
.... url 1..1 uri "documentation"
.... value[x] 0..1 string Value of extension
... extension:valueCalculation S 0..1 Extension a specific formula how the value for the attached field can be created/calculated; this is esp. for FHIR narratives
.... extension 0..0
.... url 1..1 uri "valueCalculation"
.... value[x] 0..1 string Value of extension
... extension:referenceElementId S 0..1 Extension references, eg. names, the element on which the value depends
.... extension 0..0
.... url 1..1 uri "referenceElementId"
.... value[x] 0..1 string Value of extension
... extension:usage S 0..1 Extension how to use this obligation, eg. for specific debatable fields like gender etc.
.... extension 0..0
.... url 1..1 uri "usage"
.... value[x] 0..1 UsageContext Value of extension
... extension:filter S 0..1 Extension When the obligation is on the profile itself, not a particular element, a list of elements to which it applies
.... extension 0..0
.... url 1..1 uri "filter"
.... value[x] 0..1 string Value of extension
... extension:filterDocumentation S 0..1 Extension an explanation of what the filter should achieve
.... extension 0..0
.... url 1..1 uri "filterDocumentation"
.... value[x] 0..1 string Value of extension
... extension:process S 0..* Extension process ...
.... extension 0..0
.... url 1..1 uri "process"
.... value[x] 0..1 canonical(code) Value of extension
... url 1..1 uri "http://v2.hl7.org/fhir/StructureDefinition/new-obligation"
... value[x] 0..0

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Extension 0..* Extension New Obligation Extension
... id 0..1 id Unique id for inter-element referencing
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
... extension:code S 1..1 Extension Composite code describing the nature of the obligation
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..0
.... url 1..1 uri "code"
.... value[x] 0..1 code Value of extension
Binding: Proposed Obligation Codes VS (complete) (required)
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..0
.... url 1..1 uri "elementId"
.... value[x] 0..1 string Value of extension
... extension:actor S 0..1 Extension who is acting on behalf or for this obligation
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..0
.... url 1..1 uri "actor"
.... value[x] 0..1 canonical(ActorDefinition) Value of extension
... extension:documentation S 0..1 Extension an explanation of what is intended with this specific obligation instance - beyond the formal definition
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..0
.... url 1..1 uri "documentation"
.... value[x] 0..1 string Value of extension
... extension:valueCalculation S 0..1 Extension a specific formula how the value for the attached field can be created/calculated; this is esp. for FHIR narratives
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..0
.... url 1..1 uri "valueCalculation"
.... value[x] 0..1 string Value of extension
... extension:referenceElementId S 0..1 Extension references, eg. names, the element on which the value depends
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..0
.... url 1..1 uri "referenceElementId"
.... value[x] 0..1 string Value of extension
... extension:usage S 0..1 Extension how to use this obligation, eg. for specific debatable fields like gender etc.
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..0
.... url 1..1 uri "usage"
.... value[x] 0..1 UsageContext Value of extension
... extension:filter S 0..1 Extension When the obligation is on the profile itself, not a particular element, a list of elements to which it applies
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..0
.... url 1..1 uri "filter"
.... value[x] 0..1 string Value of extension
... extension:filterDocumentation S 0..1 Extension an explanation of what the filter should achieve
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..0
.... url 1..1 uri "filterDocumentation"
.... value[x] 0..1 string Value of extension
... extension:process S 0..* Extension process ...
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..0
.... url 1..1 uri "process"
.... value[x] 0..1 canonical(code) Value of extension
... url 1..1 uri "http://v2.hl7.org/fhir/StructureDefinition/new-obligation"

doco Documentation for this format

This structure is derived from Extension

Summary

Complex Extension: Modified Extension to handle the obligations as I would like to see it. Also allowing for my own codesystems - where necessary.

  • code: code: An Extension
  • elementId: string: Limits obligation to some repeats by FHIRPath
  • actor: canonical: An Extension
  • documentation: string: An Extension
  • valueCalculation: string: An Extension
  • referenceElementId: string: An Extension
  • usage: UsageContext: An Extension
  • filter: string: An Extension
  • filterDocumentation: string: An Extension
  • process: canonical: An Extension

Differential View

This structure is derived from Extension

NameFlagsCard.TypeDescription & Constraintsdoco
.. Extension 0..* Extension New Obligation Extension
... extension 1..* Extension Extension
... extension:code S 1..1 Extension Composite code describing the nature of the obligation
.... extension 0..0
.... url 1..1 uri "code"
.... value[x] 0..1 code Value of extension
Binding: Proposed Obligation Codes VS (complete) (required)
... extension:elementId S 0..1 Extension When the obligation is on the profile itself, not a particular element, a list of elements to which it applies
.... extension 0..0
.... url 1..1 uri "elementId"
.... value[x] 0..1 string Value of extension
.... extension 0..0
.... url 1..1 uri "actor"
.... value[x] 0..1 canonical(ActorDefinition) Value of extension
... extension:documentation S 0..1 Extension an explanation of what is intended with this specific obligation instance - beyond the formal definition
.... extension 0..0
.... url 1..1 uri "documentation"
.... value[x] 0..1 string Value of extension
... extension:valueCalculation S 0..1 Extension a specific formula how the value for the attached field can be created/calculated; this is esp. for FHIR narratives
.... extension 0..0
.... url 1..1 uri "valueCalculation"
.... value[x] 0..1 string Value of extension
... extension:referenceElementId S 0..1 Extension references, eg. names, the element on which the value depends
.... extension 0..0
.... url 1..1 uri "referenceElementId"
.... value[x] 0..1 string Value of extension
... extension:usage S 0..1 Extension how to use this obligation, eg. for specific debatable fields like gender etc.
.... extension 0..0
.... url 1..1 uri "usage"
.... value[x] 0..1 UsageContext Value of extension
... extension:filter S 0..1 Extension When the obligation is on the profile itself, not a particular element, a list of elements to which it applies
.... extension 0..0
.... url 1..1 uri "filter"
.... value[x] 0..1 string Value of extension
... extension:filterDocumentation S 0..1 Extension an explanation of what the filter should achieve
.... extension 0..0
.... url 1..1 uri "filterDocumentation"
.... value[x] 0..1 string Value of extension
... extension:process S 0..* Extension process ...
.... extension 0..0
.... url 1..1 uri "process"
.... value[x] 0..1 canonical(code) Value of extension
... url 1..1 uri "http://v2.hl7.org/fhir/StructureDefinition/new-obligation"
... value[x] 0..0

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Extension 0..* Extension New Obligation Extension
... id 0..1 id Unique id for inter-element referencing
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
... extension:code S 1..1 Extension Composite code describing the nature of the obligation
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..0
.... url 1..1 uri "code"
.... value[x] 0..1 code Value of extension
Binding: Proposed Obligation Codes VS (complete) (required)
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..0
.... url 1..1 uri "elementId"
.... value[x] 0..1 string Value of extension
... extension:actor S 0..1 Extension who is acting on behalf or for this obligation
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..0
.... url 1..1 uri "actor"
.... value[x] 0..1 canonical(ActorDefinition) Value of extension
... extension:documentation S 0..1 Extension an explanation of what is intended with this specific obligation instance - beyond the formal definition
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..0
.... url 1..1 uri "documentation"
.... value[x] 0..1 string Value of extension
... extension:valueCalculation S 0..1 Extension a specific formula how the value for the attached field can be created/calculated; this is esp. for FHIR narratives
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..0
.... url 1..1 uri "valueCalculation"
.... value[x] 0..1 string Value of extension
... extension:referenceElementId S 0..1 Extension references, eg. names, the element on which the value depends
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..0
.... url 1..1 uri "referenceElementId"
.... value[x] 0..1 string Value of extension
... extension:usage S 0..1 Extension how to use this obligation, eg. for specific debatable fields like gender etc.
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..0
.... url 1..1 uri "usage"
.... value[x] 0..1 UsageContext Value of extension
... extension:filter S 0..1 Extension When the obligation is on the profile itself, not a particular element, a list of elements to which it applies
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..0
.... url 1..1 uri "filter"
.... value[x] 0..1 string Value of extension
... extension:filterDocumentation S 0..1 Extension an explanation of what the filter should achieve
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..0
.... url 1..1 uri "filterDocumentation"
.... value[x] 0..1 string Value of extension
... extension:process S 0..* Extension process ...
.... id 0..1 id Unique id for inter-element referencing
.... extension 0..0
.... url 1..1 uri "process"
.... value[x] 0..1 canonical(code) Value of extension
... url 1..1 uri "http://v2.hl7.org/fhir/StructureDefinition/new-obligation"

doco Documentation for this format

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSetURI
Extension.extension:code.value[x]requiredObligationProposedCodesVS (a valid code from Proposed Obligation Codes)
http://v2.hl7.org/fhir/ValueSet/obligationProposed
from this IG

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()