obligationProposed
type: CodeSystem
node role: treeRoot
id:
  v: obligationProposed
language:
  v: en
text:
  status:
    v: generated
  div:
    v: Generated Narrative: CodeSystem obligationProposed Language: en Properties This code system defines the following properties for its concepts Name Code URI Type Description Parent parent http://hl7.org/fhir/concept-properties#parent code Who is the parent element of this concept? Multiple parents are possible. negation negation boolean Negating the underlying combination of concepts. Not Selectable abstract http://hl7.org/fhir/concept-properties#notSelectable boolean Is this an abstract concept, ie. defined to establish the ontology, so that it cannot be used directly. (only valid for the concept where it is defined) testable testable code Is this a testable requirement? Comment comment http://hl7.org/fhir/concept-properties#comment string Comment from Conformance WG converse converse code What is the opposite item constrainTo constrainTo code What is a possible constraint? This can be done with the hierarchy, or, in case of conformance verbs, explicitly following this option, although this is not recommended. applyOn applyOn code Apply on which element level: root, node, leaf, all, notRoot, notLeaf actor actor code Actor Concepts This case-sensitive code system http://v2.hl7.org/fhir/CodeSystem/obligationProposed defines the following codes in a Is-A hierarchy: Lvl Code Display Definition Parent negation Not Selectable testable Comment converse constrainTo applyOn 1 Negation Negation Negate the meaning of the concepts that inherit 'negation'. (Negation is not negated again.) true true In principle, negation is to be inherited from concepts that are negated already. Therefore, a negation shall only take effect once, and not negate a negation. 1 Verbs conformance verbs Conformance verbs are to be used to define the requirement level that is the foundation to indicate what has to be tested. true Conformance verbs are primarily interesting for testing, i.e. to indicate what has to be tested. The other concepts can be taken as hints to a developer. 2 MAY MAY it is to th…
url:
  v: http://v2.hl7.org/fhir/CodeSystem/obligationProposed
  l: obligationProposed
version:
  v: 0.1.0
name:
  v: ObligationProposedCodes
title:
  v: Proposed Obligation Codes
status:
  v: draft
experimental:
  v: true
date:
  v: 2026-03-26T16:58:18+00:00
contact:
  telecom:
    system:
      v: url
    value:
      v: http://www.hl7.org/Special/committees/conformancewg
description:
  v: This codesystem is a **proposal for obligation codes** in response to Grahame's codesystem for obligations. It represents an ontology that not only combines the other three codesystems (verb, obligation, data expectation), but also introduces some more axes/dimensions to better explain the meaning of the codes.
copyright:
  v: Conformance WG
case sensitive:
  v: true
hierarchy meaning:
  v: is-a
compositional:
  v: true
content:
  v: complete
count:
  v: 177
property:
  code:
    v: parent
  uri:
    v: http://hl7.org/fhir/concept-properties#parent
    l: parent
  description:
    v: Who is the parent element of this concept? Multiple parents are possible.
  type:
    v: code
property:
  code:
    v: negation
  description:
    v: Negating the underlying combination of concepts.
  type:
    v: boolean
property:
  code:
    v: abstract
  uri:
    v: http://hl7.org/fhir/concept-properties#notSelectable
    l: notSelectable
  description:
    v: Is this an abstract concept, ie. defined to establish the ontology, so that it cannot be used directly. (only valid for the concept where it is defined)
  type:
    v: boolean
property:
  code:
    v: testable
  description:
    v: Is this a testable requirement?
  type:
    v: code
property:
  code:
    v: comment
  uri:
    v: http://hl7.org/fhir/concept-properties#comment
    l: comment
  description:
    v: Comment from Conformance WG
  type:
    v: string
property:
  code:
    v: converse
  description:
    v: What is the opposite item
  type:
    v: code
property:
  code:
    v: constrainTo
  description:
    v: What is a possible constraint? This can be done with the hierarchy, or, in case of conformance verbs, explicitly following this option, although this is not recommended.
  type:
    v: code
property:
  code:
    v: applyOn
  description:
    v: Apply on which element level: root, node, leaf, all, notRoot, notLeaf
  type:
    v: code
property:
  code:
    v: actor
  description:
    v: Actor
  type:
    v: code
concept:
  code:
    v: Negation
  display:
    v: Negation
  definition:
    v: Negate the meaning of the concepts that inherit 'negation'. (Negation is not negated again.)
  property:
    code:
      v: abstract
    value: Boolean
      v: true
  property:
    code:
      v: negation
    value: Boolean
      v: true
  property:
    code:
      v: comment
    value: String
      v: In principle, negation is to be inherited from concepts that are negated already. Therefore, a negation shall only take effect once, and not negate a negation.
concept:
  code:
    v: Verbs
  display:
    v: conformance verbs
  definition:
    v: Conformance verbs are to be used to define the requirement level that is the foundation to indicate what has to be tested.
  property:
    code:
      v: abstract
    value: Boolean
      v: true
  property:
    code:
      v: comment
    value: String
      v: Conformance verbs are primarily interesting for testing, i.e. to indicate what has to be tested. The other concepts can be taken as hints to a developer.
  concept:
    code:
      v: MAY
    display:
      v: MAY
    definition:
      v: it is to the developers choice whether an element is supported or not
    property:
      code:
        v: parent
      value: Code
        v: Verbs
    property:
      code:
        v: constrainTo
      value: Code
        v: SHOULD
    property:
      code:
        v: constrainTo
      value: Code
        v: SHOULDNOT
    property:
      code:
        v: testable
      value: Code
        v: notTestable
    property:
      code:
        v: converse
      value: Code
        v: MAYNOT
    property:
      code:
        v: comment
      value: String
        v: MAY primarily provides additional general information, but is still for the discretion of the implementer/developer.
    concept:
      code:
        v: SHOULD
      display:
        v: SHOULD
      definition:
        v: It is a recommendation to take care of this element
      property:
        value: Code

v: parent

Code
v: MAY

code:
  v: constrainTo
value: Code
  v: SHALL

code:
  v: constrainTo
value: Code
  v: SHOULDNOT

code:
  v: constrainTo
value: Code
  v: SHALLNOT

code:
  v: comment
value: String
  v: Just a hint.

code:
  v: SHALL
display:
  v: SHALL
definition:
  v: This verb denotes a testable requirement.
property:
  code:
    v: parent
  value: Code
    v: SHOULD
property:
  code:
    v: testable
  value: Code
    v: testable

code:
  v: MAYNOT
display:
  v: MAYNOT
definition:
  v: It is to the developers choice whether an element is probably not supported.
property:
  code:
    v: parent
  value: Code
    v: Verbs
property:
  code:
    v: abstract
  value: Boolean
    v: true
property:
  code:
    v: parent
  value: Code
    v: Negation
property:
  code:
    v: converse
  value: Code
    v: MAY
property:
  code:
    v: comment
  value: String
    v: MAYNOT is no reasonable option. It is mentioned though to complete the hierarchy.
property:
  code:
    v: testable
  value: Code
    v: notTestable
concept:
  code:
    v: SHOULDNOT
  display:
    v: SHOULD NOT
  definition:
    v: it is a recommendation NOT to take care of this element (for some reasons)
  property:
    code:
      v: parent
    value: Code
      v: MAYNOT
  property:
    code:
      v: negation
    value: Boolean
      v: true
  property:
    code:
      v: constrainTo
    value: Code
      v: SHALLNOT
  property:
    code:
      v: constrainTo
    value: Code
      v: SHOULD
  property:
    code:
      v: constrainTo
    value: Code
      v: SHALL
  property:
    code:
      v: converse
    value: Code
      v: SHOULD
  concept:
    code:
      v: SHALLNOT
    display:
      v: SHALL NOT
    definition:
      v: it is forbidden to handle this element
    property:
      code:
        v: parent
      value: Code
        v: SHOULDNOT
    property:
      code:
        v: negation
      value: Boolean
        v: true
    property:
      code:
        v: testable
      value: Code
        v: testable
    property:
      code:
        v: converse
      value: Code
        v: SHALL
    property:
      code:
        v: comment
      value: String
        v: It may happen for some elements, eg. due to security reasons, not to handle (provided/store/etc.) this element.

code:
  v: FunctionalType
display:
  v: Functional Type of Requirement
definition:
  v: Functional Type of Requirement
property:
  code:
    v: abstract
  value: Boolean
    v: true
concept:
  code:
    v: functional
  display:
    v: functional
  definition:
    v: functional requirement
  property:
    code:
      v: parent
    value: Code
      v: FunctionalType
  concept:
    code:
      v: internal
    display:
      v: internal functional
    definition:
      v: function that operates on the internal data management
    property:
      code:
        v: parent
      value: Code
        v: functional
  concept:
    code:
      v: return
    display:
      v: return functional
    definition:
      v: functional requirement on direct returns
    property:
      code:
        v: parent
      value: Code
        v: functional
  concept:
    code:
      v: response
    display:
      v: response function
    definition:
      v: functional requirement to prepare responses
    property:
      code:
        v: parent
      value: Code
        v: functional
  concept:
    code:
      v: forward
    display:
      v: forwarding function
    definition:
      v: functional requirement to forward data
    property:
      code:
        v: parent
      value: Code
        v: functional
concept:
  code:
    v: data
  display:
    v: data
  definition:
    v: data requirement
  property:
    code:
      v: parent
    value: Code
      v: FunctionalType

code:
  v: Testable
display:
  v: Type of Testing
definition:
  v: Type of Testing
property:
  code:
    v: abstract
  value: Boolean
    v: true
concept:
  code:
    v: testable
  display:
    v: testable
  definition:
    v: requirement is testable
  property:
    code:
      v: parent
    value: Code
      v: Testable
  concept:
    code:
      v: testableByMachine
    display:
      v: machine testable
    definition:
      v: requirement is testable by a machine
    property:
      code:
        v: parent
      value: Code
        v: testable
  concept:
    code:
      v: testableByHuman
    display:
      v: human testable
    definition:
      v: requirement is testable by a human (inspection)
    property:
      code:
        v: parent
      value: Code
        v: testable
    concept:
      code:
        v: withChecklist
      display:
        v: checklist
      definition:
        v: requirement is testable by using a checklist
      property:
        value: Code
concept:
  code:
    v: notTestable
  display:
    v: testable
  definition:
    v: requirement is not testable
  property:
    code:
      v: parent
    value: Code
      v: Testable
  property:
    code:
      v: negation
    value: Boolean
      v: true

v: parent

Code
v: testableByHuman

code:
  v: ActorType
display:
  v: Type of Actor
definition:
  v: An actor can operate in two ways: with the content itself, or as a manager of the instance.
property:
  code:
    v: abstract
  value: Boolean
    v: true
concept:
  code:
    v: transport
  display:
    v: transport
  definition:
    v: handle the transport of data once the instance is available/accessible
  property:
    code:
      v: parent
    value: Code
      v: ActorType
  property:
    code:
      v: comment
    value: String
      v: not sure whether this (and everything related) has to be taken out of this spec?
concept:
  code:
    v: content
  display:
    v: content mngmt
  definition:
    v: manage the data itself
  property:
    code:
      v: parent
    value: Code
      v: ActorType

code:
  v: Actor
display:
  v: Actor of Communication
definition:
  v: Actor, i.e. indirect direction of communication
property:
  code:
    v: abstract
  value: Boolean
    v: true
concept:
  code:
    v: both
  display:
    v: sender and/or receiver
  definition:
    v: both: sender+receiver resp. creator+consumer
  property:
    code:
      v: parent
    value: Code
      v: Actor
  property:
    code:
      v: abstract
    value: Boolean
      v: true
  property:
    code:
      v: comment
    value: String
      v: an actor can only do one thing at a certain point in time. Therefore, both is not allowed and only listed for documentation.
concept:
  code:
    v: sender
  display:
    v: sender
  definition:
    v: sender (transmitter) of data
  property:
    code:
      v: parent
    value: Code
      v: Actor
  property:
    code:
      v: parent
    value: Code
      v: transport
  property:
    code:
      v: comment
    value: String
      v: Sender does not necessarily need to create the instance.
concept:
  code:
    v: receiver
  display:
    v: receiver
  definition:
    v: receiver of data
  property:
    code:
      v: parent
    value: Code
      v: Actor
  property:
    code:
      v: parent
    value: Code
      v: transport
concept:
  code:
    v: creator
  display:
    v: creator
  definition:
    v: creator of data
  property:
    code:
      v: parent
    value: Code
      v: Actor
  property:
    code:
      v: parent
    value: Code
      v: content
  property:
    code:
      v: comment
    value: String
      v: Creator does not necessarily need to send the instance.
concept:
  code:
    v: consumer
  display:
    v: consumer
  definition:
    v: Consumer of data
  property:
    code:
      v: parent
    value: Code
      v: Actor
  property:
    code:
      v: parent
    value: Code
      v: content
concept:
  code:
    v: router
  display:
    v: router
  definition:
    v: router of data: shall be receiver and sender!
  property:
    code:
      v: parent
    value: Code
      v: Actor
  property:
    code:
      v: parent
    value: Code
      v: transport
  property:
    code:
      v: abstract
    value: Boolean
      v: true
  property:
    code:
      v: comment
    value: String
      v: A router is in principle a combination of receiver and sender, w/ possible changes on the data in between. It should be described as such.

code:
  v: Device
display:
  v: Device for Activity
definition:
  v: Device to be used for the activity
property:
  code:
    v: abstract
  value: Boolean
    v: true
concept:
  code:
    v: screen
  display:
    v: screen
  definition:
    v: screen/display
  property:
    code:
      v: parent
    value: Code
      v: Device
  concept:
    code:
      v: wideScreen
    display:
      v: wide screen
    definition:
      v: wide screen/display
    property:
      code:
        v: parent
      value: Code
        v: screen
  concept:
    code:
      v: radScreen
    display:
      v: radiologic screen
    definition:
      v: screen/display capable of showing radiologic results
    property:
      code:
        v: parent
      value: Code
        v: screen
concept:
  code:
    v: printer
  display:
    v: printer
  definition:
    v: printer
  property:
    code:
      v: parent
    value: Code
      v: Device
  concept:
    code:
      v: laserPrinter
    display:
      v: laser printer
    definition:
      v: laser printer
    property:
      code:
        v: parent
      value: Code
        v: printer
  concept:
    code:
      v: matrixPrinter
    display:
      v: matrix printer
    definition:
      v: matrix printer
    property:
      code:
        v: parent
      value: Code
        v: printer
    property:
      code:
        v: comment
      value: String
        v: Sometimes it is important to use a matrix printer, esp. for creating carbon copies.
concept:
  code:
    v: portableStorage
  display:
    v: portable storage device
  definition:
    v: portable storage device
  property:
    code:
      v: parent
    value: Code
      v: Device
  concept:
    code:
      v: usbStick
    display:
      v: usb stick
    definition:
      v: USB Stick
    property:
      code:
        v: parent
      value: Code
        v: portableStorage
  concept:
    code:
      v: tapeDrive
    display:
      v: tape drive
    definition:
      v: tape drive
    property:
      code:
        v: parent
      value: Code
        v: portableStorage

code:
  v: Media
display:
  v: Media
definition:
  v: different media to be used with specialised devices
property:
  code:
    v: abstract
  value: Boolean
    v: true
concept:
  code:
    v: paper
  display:
    v: paper
  definition:
    v: paper
  property:
    code:
      v: parent
    value: Code
      v: Media
concept:
  code:
    v: stick
  display:
    v: stick
  definition:
    v: stick
  property:
    code:
      v: parent
    value: Code
      v: Media
concept:
  code:
    v: disc
  display:
    v: disc
  definition:
    v: disc
  property:
    code:
      v: parent
    value: Code
      v: Media
concept:
  code:
    v: tape
  display:
    v: tape
  definition:
    v: tape
  property:
    code:
      v: parent
    value: Code
      v: Media

code:
  v: ElementLevel
display:
  v: Level of Application
definition:
  v: On which level to apply this obligation: root, node, or leaf
property:
  code:
    v: abstract
  value: Boolean
    v: true
concept:
  code:
    v: root
  display:
    v: on root node
  definition:
    v: apply obligation on root node only
  property:
    code:
      v: parent
    value: Code
      v: ElementLevel
  property:
    code:
      v: converse
    value: Code
      v: notRoot
concept:
  code:
    v: node
  display:
    v: on any node
  definition:
    v: apply on any node that is not root or leaf
  property:
    code:
      v: parent
    value: Code
      v: ElementLevel
concept:
  code:
    v: leaf
  display:
    v: on leaf node
  definition:
    v: apply on leaf node only
  property:
    code:
      v: parent
    value: Code
      v: ElementLevel
concept:
  code:
    v: all
  display:
    v: on all levels
  definition:
    v: application on all levels possible
  property:
    code:
      v: parent
    value: Code
      v: ElementLevel
concept:
  code:
    v: notRoot
  display:
    v: all but root
  definition:
    v: apply on non-root nodes only
  property:
    code:
      v: parent
    value: Code
      v: ElementLevel
  property:
    code:
      v: converse
    value: Code
      v: root
concept:
  code:
    v: notLeaf
  display:
    v: all but leaf
  definition:
    v: apply on non-leaf nodes
  property:
    code:
      v: parent
    value: Code
      v: ElementLevel

code:
  v: Activity
display:
  v: Activity
definition:
  v: Activities, aka of general obligation
property:
  code:
    v: abstract
  value: Boolean
    v: true
concept:
  code:
    v: FunctionalObligations
  display:
    v: Functional Obligations
  definition:
    v: Functional Obligation describing processsing functionalities
  property:
    code:
      v: abstract
    value: Boolean
      v: true
  property:
    code:
      v: parent
    value: Code
      v: Activity
  concept:
    code:
      v: ProducerObligations
    display:
      v: Resource Producer Obligations
    property:
      code:
        v: parent
      value: Code
        v: FunctionalObligations
    property:
      code:
        v: abstract
      value: Boolean
        v: true
    concept:
      code:
        v: send
      display:
        v: send
      definition:
        v: convey instance with values to somewhere
      property:
        value: Code
      property:
        value: Code
      property:
        value: Code
    concept:
      code:
        v: populate
      display:
        v: populate
      definition:
        v: populate with values from somewhere
      property:
        value: Code
      property:
        value: Code
      property:
        value: String
  concept:
    code:
      v: ConsumerObligations
    display:
      v: Resource Consumer Obligations
    definition:
      v: Obligation for Consumer
    property:
      code:
        v: parent
      value: Code
        v: FunctionalObligations
    property:
      code:
        v: abstract
      value: Boolean
        v: true
    property:
      code:
        v: parent
      value: Code
        v: receiver
    concept:
      code:
        v: receive
      display:
        v: receive
      definition:
        v: receive data form somewhere
      property:
        value: Code
      property:
        value: Code
      property:
        value: Code
    concept:
      code:
        v: process
      display:
        v: process
      definition:
        v: handle data from instances as needed for general message consumption, store permitted.
      property:
        value: Code
      property:
        value: Code
      property:
        value: String
  concept:
    code:
      v: ExchangerObligations
    display:
      v: Resource Exchanger Obligations
    definition:
      v: needs clarification ...
    property:
      code:
        v: parent
      value: Code
        v: FunctionalObligations
    property:
      code:
        v: parent
      value: Code
        v: both
    property:
      code:
        v: parent
      value: Code
        v: router
    property:
      code:
        v: abstract
      value: Boolean
        v: true
    concept:
      code:
        v: route
      display:
        v: route forward
      definition:
        v: as a router forward to the next recipient
      property:
        value: Code
      property:
        value: Boolean
  concept:
    code:
      v: OtherObligations
    display:
      v: Resource Other Obligations
    definition:
      v: Other obligations beyond what has been described above.
    property:
      code:
        v: parent
      value: Code
        v: FunctionalObligations
    property:
      code:
        v: abstract
      value: Boolean
        v: true
    concept:
      code:
        v: explain
      display:
        v: explain
      definition:
        v: provide an explanation in a capability statement how this element is handled
      property:
        value: Code
    concept:
      code:
        v: document
      display:
        v: document
      definition:
        v: document the use of this element in a separate document
      property:
        value: Code
concept:
  code:
    v: DataObligation
  display:
    v: Obligations on Data
  definition:
    v: Data Obligations
  property:
    code:
      v: abstract
    value: Boolean
      v: true

v: parent

Code
v: ProducerObligations

v: parent

Code
v: sender

v: applyOn

Code
v: root

v: parent

Code
v: ProducerObligations

v: parent

Code
v: creator

v: comment

String
v: prohibited elements can be expressed by 'SHALL NOT send'.

v: from-ui

v: from UI

v: Take the data from UI, so that the user has the ability to enter it.

code:
  v: parent
value: Code
  v: populate

v: from-store

v: from persistence layer

v: Take data from storage/persistence layer.

code:
  v: parent
value: Code
  v: populate

v: generate

v: generate this data

v: This data can be generated.

code:
  v: parent
value: Code
  v: populate

code:
  v: from-other
display:
  v: generate from other values
definition:
  v: This data can be generated from other data.
property:
  code:
    v: parent
  value: Code
    v: generate

code:
  v: sequence
display:
  v: generate a sequence number
property:
  code:
    v: parent
  value: Code
    v: generate

v: from-input

v: from input stream

v: As a router, take data from input stream.

code:
  v: parent
value: Code
  v: populate

code:
  v: parent
value: Code
  v: router

v: as-constant

v: constant

v: added as constant to the data, no special treatment done internally

code:
  v: parent
value: Code
  v: populate

v: into-narrative

v: narrative

v: added to the narrative, no special treatment done internally

code:
  v: parent
value: Code
  v: populate

v: parent

Code
v: ConsumerObligations

v: parent

Code
v: receiver

v: applyOn

Code
v: root

v: parent

Code
v: ConsumerObligations

v: parent

Code
v: consumer

v: comment

String
v: elements that are to be ignored can be expressed by 'SHALL NOT process'.

v: follow-up

v: follow-up activity

v: what to do internally

code:
  v: parent
value: Code
  v: process

code:
  v: display
display:
  v: display/present (UI)
definition:
  v: present the data on a display
property:
  code:
    v: parent
  value: Code
    v: follow-up

code:
  v: persist
display:
  v: persist
definition:
  v: persist/store the data somewhere
property:
  code:
    v: parent
  value: Code
    v: router
property:
  code:
    v: parent
  value: Code
    v: follow-up
concept:
  code:
    v: archive
  display:
    v: archive
  definition:
    v: persist/store the archive which ensures longlasting access
  property:
    code:
      v: parent
    value: Code
      v: persist
concept:
  code:
    v: in-database
  display:
    v: persist in a database
  definition:
    v: persist in a database
  property:
    code:
      v: parent
    value: Code
      v: persist
  property:
    code:
      v: comment
    value: String
      v: too explicit/dedicated, concerns application details
concept:
  code:
    v: in-file
  display:
    v: store in a file
  definition:
    v: store in a file
  property:
    code:
      v: parent
    value: Code
      v: persist
  property:
    code:
      v: comment
    value: String
      v: too explicit/dedicated, concerns application details

code:
  v: print
display:
  v: print
definition:
  v: print the data (somewhere)
property:
  code:
    v: parent
  value: Code
    v: follow-up

code:
  v: eval
display:
  v: evaluate
definition:
  v: consider the data in order to interpret other correctly
property:
  code:
    v: parent
  value: Code
    v: follow-up

code:
  v: integrate
display:
  v: integrate into data
definition:
  v: to UPDATE existing data by merging other data with the existing data in a controlled manner
property:
  code:
    v: parent
  value: Code
    v: follow-up

v: respond

v: activity as response

v: what to respond

code:
  v: parent
value: Code
  v: process

code:
  v: warning
display:
  v: return warnings
definition:
  v: return possible warnings
property:
  code:
    v: parent
  value: Code
    v: respond
concept:
  code:
    v: error
  display:
    v: return error
  definition:
    v: return possible errors
  property:
    code:
      v: parent
    value: Code
      v: warning
concept:
  code:
    v: reject-invalid
  display:
    v: reject invalid data
  definition:
    v: reject if data is invalid
  property:
    code:
      v: parent
    value: Code
      v: warning

code:
  v: accept-invalid
display:
  v: accept invalid data
definition:
  v: accept if data is invalid
property:
  code:
    v: parent
  value: Code
    v: respond

v: parent

Code
v: ExchangerObligations

v: abstract

Boolean
v: false

v: parent

Code
v: OtherObligations

v: parent

Code
v: OtherObligations

code:
  v: parent
value: Code
  v: Activity

code:
  v: parent
value: Code
  v: creator

code:
  v: parent
value: Code
  v: consumer

code:
  v: comment
value: String
  v: The following codes may apply to creator and consumer. For example 'do not modify from UI'.

code:
  v: expected
display:
  v: expected
definition:
  v: data fits to expectations/specification
property:
  code:
    v: parent
  value: Code
    v: DataObligation
property:
  code:
    v: comment
  value: String
    v: This applies to recipients and denotes that the data should be present according to the specification, i.e. is specified.
concept:
  code:
    v: unaltered
  display:
    v: preserve
  definition:
    v: preserve what you get
  property:
    code:
      v: parent
    value: Code
      v: expected
  property:
    code:
      v: comment
    value: String
      v: That may also be used to take data from UI without any modifications.
  concept:
    code:
      v: exactly
    display:
      v: exactly
    definition:
      v: exactly what is specified, nothing else
    property:
      code:
        v: parent
      value: Code
        v: unaltered
    property:
      code:
        v: comment
      value: String
        v: not sure whether 'unaltered' is sufficient so that we can drop that!?
concept:
  code:
    v: modify
  display:
    v: modify
  definition:
    v: allow for modifications of the data
  property:
    code:
      v: parent
    value: Code
      v: expected
  property:
    code:
      v: parent
    value: Code
      v: consumer
  property:
    code:
      v: comment
    value: String
      v: Covers all types of modifications to data.
  concept:
    code:
      v: assocation
    display:
      v: assocation
    definition:
      v: taken by association
    property:
      code:
        v: parent
      value: Code
        v: modify
  concept:
    code:
      v: equivalent
    display:
      v: equivalent
    definition:
      v: in an equivalent way
    property:
      code:
        v: parent
      value: Code
        v: modify
  concept:
    code:
      v: translate
    display:
      v: translate
    definition:
      v: Data received is preserved by 1:1 mapping/translation to an internal value that is semantically equivalent, that preserves the temporal aspect of the translation.
    property:
      code:
        v: parent
      value: Code
        v: modify
    concept:
      code:
        v: semantically
      display:
        v: translate semantically
      definition:
        v: Two concepts are semantically equivalent if they can substitute for each other in the defined use case with no loss of information used to define the concept.
      property:
        value: Code
    concept:
      code:
        v: clinically
      display:
        v: translate clinically
      definition:
        v: Two concepts are clinically equivalent if they can substitute for each other in the defined use case with no impact on clinical interpretation by a trained clinician. This may include further refinements based on the specific domain, e.g., for Lab use case, this would require interpretation that includes the impact of differences in normal ranges.
      property:
        value: Code
  concept:
    code:
      v: reference
    display:
      v: reference
    definition:
      v: Use referenced data based on stored pointer; stored data is displayed by linking to the corresponding stored value most often the case for data elements that are STORED EXACT by ASSOCIATION.
    property:
      code:
        v: parent
      value: Code
        v: modify
  concept:
    code:
      v: truncate
    display:
      v: cut off data
    definition:
      v: cut off remaining characters from the data thereby shortening the data
    property:
      code:
        v: parent
      value: Code
        v: modify
  concept:
    code:
      v: more-details
    display:
      v: additional details/values
    definition:
      v: extends the expected data with more/own information, e.g. appartment if street is specified
    property:
      code:
        v: parent
      value: Code
        v: modify
    property:
      code:
        v: parent
      value: Code
        v: creator
    property:
      code:
        v: comment
      value: String
        v: This is in principle not a modification...
  concept:
    code:
      v: more-structure
    display:
      v: additional substructures
    definition:
      v: provides the data with more granular details, e.g. house number for an address line
    property:
      code:
        v: parent
      value: Code
        v: modify
    property:
      code:
        v: parent
      value: Code
        v: creator
    property:
      code:
        v: comment
      value: String
        v: This is in principle not a modification...
  concept:
    code:
      v: missing
    display:
      v: data is missing/not available
    definition:
      v: provide a null-flavor/absent reason
    property:
      code:
        v: parent
      value: Code

v: parent

Code
v: translate

v: parent

Code
v: translate

Code
v: modify

code:
  v: parent
value: Code
  v: creator

code:
  v: comment
value: String
  v: In FHIR this is the permission/indication for a data-absent-reason or something similar. In V3 it is null-flavor.

code:
  v: constant
display:
  v: added as a constant
definition:
  v: this value has no valid representation or meaning in the sending application, it is just added because it is required to be there
property:
  code:
    v: parent
  value: Code
    v: modify

code:
  v: unexpected
display:
  v: unexpected values
definition:
  v: how to manage unexpected data (as sender or receiver)
property:
  code:
    v: parent
  value: Code
    v: DataObligation
concept:
  code:
    v: replaces
  display:
    v: new/other values
  definition:
    v: replaces the expected data by something else
  property:
    code:
      v: parent
    value: Code
      v: unexpected
concept:
  code:
    v: consider
  display:
    v: consider unexpected values
  definition:
    v: take vare of values that are coming but not described/specified. Allows for warnings
  property:
    code:
      v: parent
    value: Code
      v: unexpected

code:
  v: CombinedObligations
display:
  v: combined obligations
definition:
  v: The children can be used to encode obligations for data elements. Terms in parenthesis are shown for readability. This list is not complete, and only provides some reasonable samples.
property:
  code:
    v: abstract
  value: Boolean
    v: true
property:
  code:
    v: comment
  value: String
    v: The following list is just a snippet and should be enhanced during the discussion...
property:
  code:
    v: comment
  value: String
    v: The hierarchy has to discarded because not everything is explicitly modelled.

code:
  v: MAY:populate
display:
  v: MAY populate with data
definition:
  v: Conformant applications MAY take and provide data.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: MAY
property:
  code:
    v: parent
  value: Code
    v: populate
property:
  code:
    v: comment
  value: String
    v: is this a useful combination?

code:
  v: MAY:populate:missing
display:
  v: MAY populate data element with why orig data is missing
definition:
  v: Conformant applications MAY populate the element why the original data is missing.
property:
  code:
    v: parent
  value: Code
    v: MAY:populate
property:
  code:
    v: parent
  value: Code
    v: missing

code:
  v: MAY:(populate)from-ui
display:
  v: MAY populate with data taken from ui
definition:
  v: Conformant applications MAY take data from a UI and provide it.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: MAY
property:
  code:
    v: parent
  value: Code
    v: from-ui

code:
  v: SHOULD:populate
display:
  v: SHOULD populate with data
definition:
  v: Conformant applications SHOULD take and provide data.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: MAY:populate

code:
  v: MAY:(populate)into-narrative
display:
  v: MAY populate into-narrative
definition:
  v: Conformant applications MAY populate element into narrative text as well.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHOULD:populate
property:
  code:
    v: comment
  value: String
    v: discuss whether other representation forms are better

code:
  v: SHOULD:(populate)into-narrative
display:
  v: SHOULD populate into-narrative
definition:
  v: Conformant applications SHOULD populate element into narrative text as well.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: MAY:(populate)into-narrative
property:
  code:
    v: comment
  value: String
    v: discuss whether other representation forms are better

code:
  v: SHALL:(populate)into-narrative
display:
  v: SHALL populate into-narrative
definition:
  v: Conformant applications SHALL populate element into narrative text as well.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHOULD:(populate)into-narrative
property:
  code:
    v: comment
  value: String
    v: discuss whether other representation forms are better

code:
  v: SHOULDNOT:(populate)into-narrative
display:
  v: SHOULD NOT populate into-narrative
definition:
  v: Conformant applications SHOULD NOT populate element into narrative text.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: converse
  value: Code
    v: SHOULD:(populate)into-narrative

code:
  v: SHALLNOT:(populate)into-narrative
display:
  v: SHALL NOT populate into-narrative
definition:
  v: Conformant applications SHALL NOT populate element into narrative text.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHOULDNOT:(populate)into-narrative
property:
  code:
    v: converse
  value: Code
    v: SHALL:(populate)into-narrative

code:
  v: SHALL:populate
display:
  v: SHALL populate with data
definition:
  v: Conformant applications SHOULD take and provide data.
property:
  code:
    v: parent
  value: Code
    v: SHOULD:populate

code:
  v: SHOULD:(populate)from-ui
display:
  v: SHOULD populate with data taken from ui
definition:
  v: Conformant applications SHOULD take data from a UI and provide it.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHOULD
property:
  code:
    v: parent
  value: Code
    v: from-ui
property:
  code:
    v: parent
  value: Code
    v: creator

code:
  v: SHALL:(populate)from-ui
display:
  v: SHALL populate data taken from ui
definition:
  v: Conformant applications SHALL take data from a UI and provide it.
property:
  code:
    v: parent
  value: Code
    v: SHOULD:(populate)from-ui
property:
  code:
    v: parent
  value: Code
    v: SHALL
property:
  code:
    v: parent
  value: Code
    v: from-ui
property:
  code:
    v: testable
  value: Code
    v: testableByHuman

code:
  v: SHALL:(populate)from-ui:more-details
display:
  v: SHALL populate with data taken from ui perhaps with more details
definition:
  v: Conformant applications SHALL take data from a UI and bring it into the instance. It is allowed to provide more details then specified.
property:
  code:
    v: parent
  value: Code
    v: SHALL:(populate)from-ui
property:
  code:
    v: parent
  value: Code
    v: more-details

code:
  v: SHOULD:send
display:
  v: SHOULD send the instance
definition:
  v: Conformant applications SHOULD send the instance.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
concept:
  code:
    v: SHALL:send
  display:
    v: SHALL send the instance
  definition:
    v: Conformant applications SHALL send the instance.
  property:
    code:
      v: parent
    value: Code
      v: CombinedObligations
  property:
    code:
      v: parent
    value: Code
      v: SHALL
  property:
    code:
      v: parent
    value: Code
      v: send
  property:
    code:
      v: parent
    value: Code
      v: sender
  property:
    code:
      v: applyOn
    value: Code
      v: root
  property:
    code:
      v: testable
    value: Code
      v: testableByMachine

code:
  v: MAY:persist
display:
  v: MAY store the data
definition:
  v: Conformant applications MAY store the data.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: MAY
property:
  code:
    v: parent
  value: Code
    v: persist

code:
  v: SHOULD:persist
display:
  v: SHOULD store the data
definition:
  v: Conformant applications SHOULD store the data.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
concept:
  code:
    v: SHALL:persist
  display:
    v: SHALL store the data somewhere
  definition:
    v: Conformant applications SHALL store the data in some way.
  property:
    code:
      v: parent
    value: Code
      v: CombinedObligations
  property:
    code:
      v: parent
    value: Code
      v: SHALL
  property:
    code:
      v: parent
    value: Code
      v: persist
  property:
    code:
      v: testable
    value: Code
      v: testableByHuman
  concept:
    code:
      v: SHALL:persist:exactly
    display:
      v: SHALL store the data somewhere, but exactly as is sent
    definition:
      v: Conformant applications SHALL store the data in a way that the originally data from the instance can be reestablished.
    property:
      code:
        v: parent
      value: Code
        v: CombinedObligations
    property:
      code:
        v: parent
      value: Code
        v: SHALL
    property:
      code:
        v: parent
      value: Code
        v: persist
    property:
      code:
        v: parent
      value: Code
        v: exactly
    property:
      code:
        v: testable
      value: Code
        v: testableByHuman
concept:
  code:
    v: SHOULD:(persist)in-database
  display:
    v: SHOULD store the data in a database
  definition:
    v: Conformant applications are asked to store the data in a database.
  property:
    code:
      v: parent
    value: Code
      v: CombinedObligations
  property:
    code:
      v: parent
    value: Code
      v: SHOULD
  property:
    code:
      v: parent
    value: Code
      v: persist
  property:
    code:
      v: parent
    value: Code
      v: in-database
concept:
  code:
    v: SHALLNOT:populate:more-details
  display:
    v: SHALL NOT populate more data than is specified
  definition:
    v: Conformant applications SHALL NOT populatae more data than is specified. The specification is closed.
  property:
    code:
      v: parent
    value: Code
      v: CombinedObligations
  property:
    code:
      v: parent
    value: Code
      v: SHALLNOT
  property:
    code:
      v: parent
    value: Code
      v: populate
  property:
    code:
      v: parent
    value: Code
      v: more-details
  property:
    code:
      v: parent
    value: Code
      v: creator
  property:
    code:
      v: negation
    value: Boolean
      v: true
  property:
    code:
      v: testable
    value: Code
      v: testableByMachine
concept:
  code:
    v: SHALLNOT:populate:missing
  display:
    v: SHALL NOT populate info about missing data, ie. data absent reasons
  definition:
    v: Conformant applications SHALL NOT populate a reason for missing information.
  property:
    code:
      v: parent
    value: Code
      v: CombinedObligations
  property:
    code:
      v: parent
    value: Code
      v: SHALLNOT
  property:
    code:
      v: parent
    value: Code
      v: populate
  property:
    code:
      v: parent
    value: Code
      v: missing
  property:
    code:
      v: parent
    value: Code
      v: creator
  property:
    code:
      v: negation
    value: Boolean
      v: true
concept:
  code:
    v: MAY:populate:more-structure
  display:
    v: MAY populate the data in more structured way
  definition:
    v: Conformant applications are allowed to populate the data with more structure. For example, to split an address line into streetname and house number.
  property:
    code:
      v: parent
    value: Code
      v: CombinedObligations
  property:
    code:
      v: parent
    value: Code
      v: MAY
  property:
    code:
      v: parent
    value: Code
      v: populate
  property:
    code:
      v: parent
    value: Code
      v: more-structure

code:
  v: SHALLNOT:follow-up:truncate
display:
  v: SHALL NOT truncate data
definition:
  v: Conformant applications SHALL NOT cut off data.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHALLNOT
property:
  code:
    v: parent
  value: Code
    v: follow-up
property:
  code:
    v: parent
  value: Code
    v: truncate
property:
  code:
    v: parent
  value: Code
    v: consumer
property:
  code:
    v: negation
  value: Boolean
    v: true
property:
  code:
    v: testable
  value: Code
    v: testableByHuman

code:
  v: MAY:modify
display:
  v: MAY modify the data
definition:
  v: Conformant applications MAY, i.e. are allowed to modify the data.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: MAY
property:
  code:
    v: parent
  value: Code
    v: modify
property:
  code:
    v: comment
  value: String
    v: nice hint

code:
  v: MAY:print
display:
  v: MAY print data
definition:
  v: Conformant applications MAY print the data.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: MAY
property:
  code:
    v: parent
  value: Code
    v: print

code:
  v: SHOULD:print
display:
  v: SHOULD print data
definition:
  v: Conformant applications SHOULD print the data.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHOULD
property:
  code:
    v: parent
  value: Code
    v: print

code:
  v: SHALL:print
display:
  v: SHALL print data
definition:
  v: Conformant applications SHALL print the data.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHALL
property:
  code:
    v: parent
  value: Code
    v: print
property:
  code:
    v: parent
  value: Code
    v: consumer
property:
  code:
    v: testable
  value: Code
    v: testableByHuman

code:
  v: SHALLNOT:(populate):in-narrative
display:
  v: SHALL NOT add to narrative
definition:
  v: Conformant applications SHALL NOT add this data to the narrative.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHALLNOT
property:
  code:
    v: parent
  value: Code
    v: populate
property:
  code:
    v: parent
  value: Code
    v: into-narrative
property:
  code:
    v: parent
  value: Code
    v: creator
property:
  code:
    v: testable
  value: Code
    v: testableByHuman

code:
  v: MAY:process
display:
  v: MAY process the data
definition:
  v: Conformant applications MAY process the data somehow.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: MAY
property:
  code:
    v: parent
  value: Code
    v: process
property:
  code:
    v: comment
  value: String
    v: There is no further specification in which way the data can be processed.

code:
  v: SHOULD:process
display:
  v: SHOULD process the data
definition:
  v: Conformant applications SHOULD process the data in some meaningful way.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: MAY:process

code:
  v: SHALL:process
display:
  v: SHALL process the data
definition:
  v: Conformant applications SHALL process the data in some meaningful way.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHOULD:process

code:
  v: SHOULDNOT:process
display:
  v: SHOULD NOT process the data
definition:
  v: Conformant applications SHOULD NOT process the data in some meaningful way.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHOULDNOT
property:
  code:
    v: parent
  value: Code
    v: process

code:
  v: SHALLNOT:process
display:
  v: SHALL NOT process the data
definition:
  v: Conformant applications SHALL NOT process the data in some meaningful way.
property:
  code:
    v: parent
  value: Code
    v: SHOULDNOT:process
property:
  code:
    v: parent
  value: Code
    v: SHALLNOT
property:
  code:
    v: parent
  value: Code
    v: process

code:
  v: SHOULD:document
display:
  v: SHOULD document how the data is used
definition:
  v: Conformant applications SHOULD document the way the data is used in some (meaningful) way.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHOULD
property:
  code:
    v: parent
  value: Code
    v: document

code:
  v: SHALL:document
display:
  v: SHALL document how the data is used
definition:
  v: Conformant applications SHALL document the way the data is used in some (meaningful) way.
property:
  code:
    v: parent
  value: Code
    v: SHOULD:document
property:
  code:
    v: parent
  value: Code
    v: SHALL
property:
  code:
    v: parent
  value: Code
    v: document

code:
  v: SHOULD:display
display:
  v: SHOULD display the data
definition:
  v: Conformant applications SHOULD display the data in some meaningful way.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHOULD
property:
  code:
    v: parent
  value: Code
    v: display

code:
  v: SHALL:display
display:
  v: SHALL display the data
definition:
  v: Conformant applications SHALL display the data in some meaningful way.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHOULD:display

code:
  v: SHOULDNOT:modify
display:
  v: SHOULD NOT modify the data
definition:
  v: Conformant applications SHOULD NOT modiify the data in any way.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHOULDNOT
property:
  code:
    v: parent
  value: Code
    v: modify

code:
  v: SHALLNOT:modify
display:
  v: SHALL NOT modify the data
definition:
  v: Conformant applications SHALL NOT modiify the data in any way.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHALLNOT
property:
  code:
    v: parent
  value: Code
    v: modify

code:
  v: MAYNOT:process
display:
  v: MAY NOT process data
definition:
  v: Conformant applications MAY NOT process data, aka of ignoring.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: MAYNOT
property:
  code:
    v: parent
  value: Code
    v: process
property:
  code:
    v: comment
  value: String
    v: this is equivalent to MAY:ignore.

code:
  v: SHOULD:reject-invalid
display:
  v: SHOULD reject invalid data
definition:
  v: Conformant applications SHOULD reject invalid data.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHOULD
property:
  code:
    v: parent
  value: Code
    v: reject-invalid

code:
  v: SHALL:reject-invalid
display:
  v: SHALL reject invalid data
definition:
  v: Conformant applications SHALL reject invalid data.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHALL
property:
  code:
    v: parent
  value: Code
    v: reject-invalid

code:
  v: SHOULD:accept-invalid
display:
  v: SHOULD accept invalid data
definition:
  v: Conformant applications SHOULD accept invalid data.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHOULD
property:
  code:
    v: parent
  value: Code
    v: accept-invalid

code:
  v: SHALL:accept-invalid
display:
  v: SHALL accept invalid data
definition:
  v: Conformant applications SHALL accept invalid data.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHALL
property:
  code:
    v: parent
  value: Code
    v: accept-invalid

code:
  v: SHOULD:receive
display:
  v: SHOULD be able to receive the data
definition:
  v: Conformant applications SHOULD be able to receive the data.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHOULD
property:
  code:
    v: parent
  value: Code
    v: receive

code:
  v: SHALL:receive
display:
  v: SHALL be able to receive the data
definition:
  v: Conformant applications SHALL be able to receive the data.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHALL
property:
  code:
    v: parent
  value: Code
    v: receive

code:
  v: SHOULDNOT:error
display:
  v: SHOULD NOT return an error to the sender of the data
definition:
  v: Conformant applications SHOULD NOT reurn an erorr to the sender of the data.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHOULDNOT
property:
  code:
    v: parent
  value: Code
    v: error

code:
  v: SHALLNOT:error
display:
  v: SHALL NOT return an error to the sender of the data
definition:
  v: Conformant applications SHALL NOT reurn an erorr to the sender of the data.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: parent
  value: Code
    v: SHALLNOT
property:
  code:
    v: parent
  value: Code
    v: error

code:
  v: ForeignStandards
display:
  v: concept codes from other standards
definition:
  v: Other standards use specific terms for optionality/usage that should be conceptualized here.
property:
  code:
    v: parent
  value: Code
    v: CombinedObligations
property:
  code:
    v: abstract
  value: Boolean
    v: true

code:
  v: v2
display:
  v: v2 concept codes
definition:
  v: optionality/usage codes from v2
property:
  code:
    v: parent
  value: Code
    v: ForeignStandards
property:
  code:
    v: abstract
  value: Boolean
    v: true
concept:
  code:
    v: v2-r
  display:
    v: v2: R
  definition:
    v: required in v2.x
  property:
    code:
      v: parent
    value: Code
      v: v2
  property:
    code:
      v: parent
    value: Code
      v: SHALL
  property:
    code:
      v: parent
    value: Code
      v: populate
  property:
    code:
      v: comment
    value: String
      v: minCard = 1
concept:
  code:
    v: v2-re
  display:
    v: v2: RE
  definition:
    v: required but may be empty in v2.x
  property:
    code:
      v: parent
    value: Code
      v: v2
  property:
    code:
      v: parent
    value: Code
      v: SHALL
  property:
    code:
      v: parent
    value: Code
      v: populate
  property:
    code:
      v: comment
    value: String
      v: minCard = 0
concept:
  code:
    v: v2-x
  display:
    v: v2: X
  definition:
    v: forbidden in v2
  property:
    code:
      v: parent
    value: Code
      v: v2
  property:
    code:
      v: parent
    value: Code
      v: SHOULDNOT
  property:
    code:
      v: parent
    value: Code
      v: populate
  property:
    code:
      v: parent
    value: Code
      v: process
concept:
  code:
    v: v2-b
  display:
    v: v2: B
  definition:
    v: backwards use in v2 only
  property:
    code:
      v: parent
    value: Code
      v: v2
  property:
    code:
      v: parent
    value: Code
      v: SHOULDNOT
concept:
  code:
    v: v2-w
  display:
    v: v2: W
  definition:
    v: withdrawn use in v2 only
  property:
    code:
      v: parent
    value: Code
      v: v2
  property:
    code:
      v: parent
    value: Code
      v: SHOULDNOT
  property:
    code:
      v: parent
    value: Code
      v: populate
  property:
    code:
      v: parent
    value: Code
      v: process

code:
  v: v3
display:
  v: V3 concept codes
definition:
  v: optionality/usage codes from V3/CDA
property:
  code:
    v: parent
  value: Code
    v: ForeignStandards
property:
  code:
    v: abstract
  value: Boolean
    v: true
concept:
  code:
    v: v3-m
  display:
    v: v3: M
  definition:
    v: mandatory in HL7 V3
  property:
    code:
      v: parent
    value: Code
      v: v3
  property:
    code:
      v: parent
    value: Code
      v: SHALL
  property:
    code:
      v: parent
    value: Code
      v: populate
  property:
    code:
      v: parent
    value: Code
      v: exactly
  property:
    code:
      v: parent
    value: Code
      v: SHALLNOT:populate:missing
  property:
    code:
      v: comment
    value: String
      v: A value must be present and null-flavors are not allowed; to be combined with minCard = 1
concept:
  code:
    v: v3-r
  display:
    v: v3: R
  definition:
    v: required in HL7 V3
  property:
    code:
      v: parent
    value: Code
      v: v3
  property:
    code:
      v: parent
    value: Code
      v: SHALL
  property:
    code:
      v: parent
    value: Code
      v: populate
  property:
    code:
      v: parent
    value: Code
      v: MAY:populate:missing
  property:
    code:
      v: comment
    value: String
      v: A value must be present but it can be a null-flavors
concept:
  code:
    v: v3-x
  display:
    v: v3: X
  definition:
    v: forbidden in HL7 V3
  property:
    code:
      v: parent
    value: Code
      v: v3
  property:
    code:
      v: parent
    value: Code
      v: SHALLNOT
  property:
    code:
      v: parent
    value: Code
      v: populate

code:
  v: ihe
display:
  v: IHE concept codes
definition:
  v: optionality/usage codes from IHE
property:
  code:
    v: parent
  value: Code
    v: ForeignStandards
property:
  code:
    v: abstract
  value: Boolean
    v: true
concept:
  code:
    v: ihe-r
  display:
    v: IHE: R
  definition:
    v: required in IHE v2.x specs
  property:
    code:
      v: parent
    value: Code
      v: ihe
concept:
  code:
    v: ihe-r2
  display:
    v: IHE: R2
  definition:
    v: R2 in IHE v2.x specs
  property:
    code:
      v: parent
    value: Code
      v: ihe
  property:
    code:
      v: parent
    value: Code
      v: SHALL:process
  property:
    code:
      v: parent
    value: Code
      v: SHOULD:populate
  property:
    code:
      v: comment
    value: String
      v: This is interpreted as the receiver has to support it, but when becoming the sender it is not really necessary to return it again
concept:
  code:
    v: ihe-x
  display:
    v: IHE: X
  definition:
    v: X in IHE v2.x specs
  property:
    code:
      v: parent
    value: Code
      v: ihe
  property:
    code:
      v: comment
    value: String
      v: forbidden?

code:
  v: xDT
display:
  v: German xDT standards
definition:
  v: The German xDT standard family has a very specific set of codes and is just presented here for completeness and demonstration purposes
property:
  code:
    v: parent
  value: Code
    v: ForeignStandards
property:
  code:
    v: abstract
  value: Boolean
    v: true
property:
  code:
    v: comment
  value: String
    v: all concept codes are to processed by the receiver; different requirements for sender
concept:
  code:
    v: xDT-M
  display:
    v: xDT: M
  definition:
    v: MUSS in xDT (unbedingtes Mussfeld)
  property:
    code:
      v: parent
    value: Code
      v: xDT
  property:
    code:
      v: parent
    value: Code
      v: SHALL
  property:
    code:
      v: parent
    value: Code
      v: SHALL:process
  property:
    code:
      v: parent
    value: Code
      v: SHALL:populate
  property:
    code:
      v: comment
    value: String
      v: minCard=1
concept:
  code:
    v: xDT-m
  display:
    v: xDT: m
  definition:
    v: muss in xDT (bedingtes Mussfeld)
  property:
    code:
      v: parent
    value: Code
      v: xDT
  property:
    code:
      v: parent
    value: Code
      v: SHALL
  property:
    code:
      v: parent
    value: Code
      v: SHALL:process
  property:
    code:
      v: parent
    value: Code
      v: SHALL:populate
  property:
    code:
      v: comment
    value: String
      v: depends on the value of another field
concept:
  code:
    v: xDT-K
  display:
    v: xDT: K
  definition:
    v: KANN in xDT (unbedingts KANNfeld)
  property:
    code:
      v: parent
    value: Code
      v: xDT
  property:
    code:
      v: parent
    value: Code
      v: SHALL
  property:
    code:
      v: parent
    value: Code
      v: SHALL:process
  property:
    code:
      v: parent
    value: Code
      v: SHALL:populate
concept:
  code:
    v: xDT-k
  display:
    v: xDT: k
  definition:
    v: kann in xDT (bedingtes Kannfeld)
  property:
    code:
      v: parent
    value: Code
      v: xDT
  property:
    code:
      v: parent
    value: Code
      v: SHALL
  property:
    code:
      v: parent
    value: Code
      v: SHALL:process
  property:
    code:
      v: parent
    value: Code
      v: SHALL:populate
  property:
    code:
      v: comment
    value: String
      v: depends on the value of another field