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

: Proposed Obligation Codes - XML Representation

Draft as of 2024-05-08

Raw xml | Download



<CodeSystem xmlns="http://hl7.org/fhir">
  <id value="obligationProposed"/>
  <language value="en"/>
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><p><b>Properties</b></p><p><b>This code system defines the following properties for its concepts</b></p><table class="grid"><tr><td><b>Code</b></td><td><b>URI</b></td><td><b>Type</b></td><td><b>Description</b></td></tr><tr><td>parent</td><td>http://hl7.org/fhir/concept-properties#parent</td><td>code</td><td>Who is the parent element of this concept? Multiple parents are possible.</td></tr><tr><td>negation</td><td/><td>boolean</td><td>Negating the underlying combination of concepts.</td></tr><tr><td>abstract</td><td>http://hl7.org/fhir/concept-properties#notSelectable</td><td>boolean</td><td>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)</td></tr><tr><td>testable</td><td/><td>code</td><td>Is this a testable requirement?</td></tr><tr><td>comment</td><td>http://hl7.org/fhir/concept-properties#comment</td><td>string</td><td>Comment from Conformance WG</td></tr><tr><td>converse</td><td/><td>code</td><td>What is the opposite item</td></tr><tr><td>constrainTo</td><td/><td>code</td><td>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.</td></tr><tr><td>applyOn</td><td/><td>code</td><td>Apply on which element level: root, node, leaf, all, notRoot, notLeaf</td></tr><tr><td>actor</td><td/><td>code</td><td>Actor</td></tr></table><p><b>Concepts</b></p><p>This case-sensitive code system <code>http://v2.hl7.org/fhir/CodeSystem/obligationProposed</code> defines the following codes in a Is-A hierarchy:</p><table class="codes"><tr><td><b>Lvl</b></td><td style="white-space:nowrap"><b>Code</b></td><td><b>Display</b></td><td><b>Definition</b></td><td><b>Parent</b></td><td><b>negation</b></td><td><b>Not Selectable</b></td><td><b>testable</b></td><td><b>Comment</b></td><td><b>converse</b></td><td><b>constrainTo</b></td><td><b>applyOn</b></td></tr><tr><td>1</td><td style="white-space:nowrap">Negation<a name="obligationProposed-Negation"> </a></td><td>Negation</td><td>Negate the meaning of the concepts that inherit 'negation'. (Negation is not negated again.)</td><td/><td>true</td><td>true</td><td/><td>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.</td><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">Verbs<a name="obligationProposed-Verbs"> </a></td><td>conformance verbs</td><td>Conformance verbs are to be used to define the requirement level that is the foundation to indicate what has to be tested.</td><td/><td/><td>true</td><td/><td>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.</td><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  MAY<a name="obligationProposed-MAY"> </a></td><td>MAY</td><td>it is to the developers choice whether an element is supported or not</td><td><a href="#obligationProposed-Verbs">Verbs</a></td><td/><td/><td>notTestable</td><td>MAY primarily provides additional general information, but is still for the discretion of the implementer/developer.</td><td>MAYNOT</td><td>SHOULD, SHOULDNOT</td><td/></tr><tr><td>3</td><td style="white-space:nowrap">    SHOULD<a name="obligationProposed-SHOULD"> </a></td><td>SHOULD</td><td>It is a recommendation to take care of this element</td><td><a href="#obligationProposed-MAY">MAY</a></td><td/><td/><td/><td>Just a hint.</td><td/><td>SHALL, SHOULDNOT, SHALLNOT</td><td/></tr><tr><td>4</td><td style="white-space:nowrap">      SHALL<a name="obligationProposed-SHALL"> </a></td><td>SHALL</td><td>This verb denotes a testable requirement.</td><td><a href="#obligationProposed-SHOULD">SHOULD</a></td><td/><td/><td>testable</td><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  MAYNOT<a name="obligationProposed-MAYNOT"> </a></td><td>MAYNOT</td><td>It is to the developers choice whether an element is probably not supported.</td><td><a href="#obligationProposed-Verbs">Verbs</a>, <a href="#obligationProposed-Negation">Negation</a></td><td/><td>true</td><td>notTestable</td><td>MAYNOT is no reasonable option. It is mentioned though to complete the hierarchy.</td><td>MAY</td><td/><td/></tr><tr><td>3</td><td style="white-space:nowrap">    SHOULDNOT<a name="obligationProposed-SHOULDNOT"> </a></td><td>SHOULD NOT</td><td>it is a recommendation NOT to take care of this element (for some reasons)</td><td><a href="#obligationProposed-MAYNOT">MAYNOT</a></td><td>true</td><td/><td/><td/><td>SHOULD</td><td>SHALLNOT, SHOULD, SHALL</td><td/></tr><tr><td>4</td><td style="white-space:nowrap">      SHALLNOT<a name="obligationProposed-SHALLNOT"> </a></td><td>SHALL NOT</td><td>it is forbidden to handle this element</td><td><a href="#obligationProposed-SHOULDNOT">SHOULDNOT</a></td><td>true</td><td/><td>testable</td><td>It may happen for some elements, eg. due to security reasons, not to handle (provided/store/etc.) this element.</td><td>SHALL</td><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">FunctionalType<a name="obligationProposed-FunctionalType"> </a></td><td>Functional Type of Requirement</td><td>Functional Type of Requirement</td><td/><td/><td>true</td><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  functional<a name="obligationProposed-functional"> </a></td><td>functional</td><td>functional requirement</td><td><a href="#obligationProposed-FunctionalType">FunctionalType</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>3</td><td style="white-space:nowrap">    internal<a name="obligationProposed-internal"> </a></td><td>internal functional</td><td>function that operates on the internal data management</td><td><a href="#obligationProposed-functional">functional</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>3</td><td style="white-space:nowrap">    return<a name="obligationProposed-return"> </a></td><td>return functional</td><td>functional requirement on direct returns</td><td><a href="#obligationProposed-functional">functional</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>3</td><td style="white-space:nowrap">    response<a name="obligationProposed-response"> </a></td><td>response function</td><td>functional requirement to prepare responses</td><td><a href="#obligationProposed-functional">functional</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>3</td><td style="white-space:nowrap">    forward<a name="obligationProposed-forward"> </a></td><td>forwarding function</td><td>functional requirement to forward data</td><td><a href="#obligationProposed-functional">functional</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  data<a name="obligationProposed-data"> </a></td><td>data</td><td>data requirement</td><td><a href="#obligationProposed-FunctionalType">FunctionalType</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">Testable<a name="obligationProposed-Testable"> </a></td><td>Type of Testing</td><td>Type of Testing</td><td/><td/><td>true</td><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  testable<a name="obligationProposed-testable"> </a></td><td>testable</td><td>requirement is testable</td><td><a href="#obligationProposed-Testable">Testable</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>3</td><td style="white-space:nowrap">    testableByMachine<a name="obligationProposed-testableByMachine"> </a></td><td>machine testable</td><td>requirement is testable by a machine</td><td><a href="#obligationProposed-testable">testable</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>3</td><td style="white-space:nowrap">    testableByHuman<a name="obligationProposed-testableByHuman"> </a></td><td>human testable</td><td>requirement is testable by a human (inspection)</td><td><a href="#obligationProposed-testable">testable</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>4</td><td style="white-space:nowrap">      withChecklist<a name="obligationProposed-withChecklist"> </a></td><td>checklist</td><td>requirement is testable by using a checklist</td><td><a href="#obligationProposed-testableByHuman">testableByHuman</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  notTestable<a name="obligationProposed-notTestable"> </a></td><td>testable</td><td>requirement is not testable</td><td><a href="#obligationProposed-Testable">Testable</a></td><td>true</td><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">ActorType<a name="obligationProposed-ActorType"> </a></td><td>Type of Actor</td><td>An actor can operate in two ways: with the content itself, or as a manager of the instance.</td><td/><td/><td>true</td><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  transport<a name="obligationProposed-transport"> </a></td><td>transport</td><td>handle the transport of data once the instance is available/accessible</td><td><a href="#obligationProposed-ActorType">ActorType</a></td><td/><td/><td/><td>not sure whether this (and everything related) has to be taken out of this spec?</td><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  content<a name="obligationProposed-content"> </a></td><td>content mngmt</td><td>manage the data itself</td><td><a href="#obligationProposed-ActorType">ActorType</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">Actor<a name="obligationProposed-Actor"> </a></td><td>Actor of Communication</td><td>Actor, i.e. indirect direction of communication</td><td/><td/><td>true</td><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  both<a name="obligationProposed-both"> </a></td><td>sender and/or receiver</td><td>both: sender+receiver resp. creator+consumer</td><td><a href="#obligationProposed-Actor">Actor</a></td><td/><td>true</td><td/><td>an actor can only do one thing at a certain point in time. Therefore, both is not allowed and only listed for documentation.</td><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  sender<a name="obligationProposed-sender"> </a></td><td>sender</td><td>sender (transmitter) of data</td><td><a href="#obligationProposed-Actor">Actor</a>, <a href="#obligationProposed-transport">transport</a></td><td/><td/><td/><td>Sender does not necessarily need to create the instance.</td><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  receiver<a name="obligationProposed-receiver"> </a></td><td>receiver</td><td>receiver of data</td><td><a href="#obligationProposed-Actor">Actor</a>, <a href="#obligationProposed-transport">transport</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  creator<a name="obligationProposed-creator"> </a></td><td>creator</td><td>creator of data</td><td><a href="#obligationProposed-Actor">Actor</a>, <a href="#obligationProposed-content">content</a></td><td/><td/><td/><td>Creator does not necessarily need to send the instance.</td><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  consumer<a name="obligationProposed-consumer"> </a></td><td>consumer</td><td>Consumer of data</td><td><a href="#obligationProposed-Actor">Actor</a>, <a href="#obligationProposed-content">content</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  router<a name="obligationProposed-router"> </a></td><td>router</td><td>router of data: shall be receiver and sender!</td><td><a href="#obligationProposed-Actor">Actor</a>, <a href="#obligationProposed-transport">transport</a></td><td/><td>true</td><td/><td>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.</td><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">Device<a name="obligationProposed-Device"> </a></td><td>Device for Activity</td><td>Device to be used for the activity</td><td/><td/><td>true</td><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  screen<a name="obligationProposed-screen"> </a></td><td>screen</td><td>screen/display</td><td><a href="#obligationProposed-Device">Device</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>3</td><td style="white-space:nowrap">    wideScreen<a name="obligationProposed-wideScreen"> </a></td><td>wide screen</td><td>wide screen/display</td><td><a href="#obligationProposed-screen">screen</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>3</td><td style="white-space:nowrap">    radScreen<a name="obligationProposed-radScreen"> </a></td><td>radiologic screen</td><td>screen/display capable of showing radiologic results</td><td><a href="#obligationProposed-screen">screen</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  printer<a name="obligationProposed-printer"> </a></td><td>printer</td><td>printer</td><td><a href="#obligationProposed-Device">Device</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>3</td><td style="white-space:nowrap">    laserPrinter<a name="obligationProposed-laserPrinter"> </a></td><td>laser printer</td><td>laser printer</td><td><a href="#obligationProposed-printer">printer</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>3</td><td style="white-space:nowrap">    matrixPrinter<a name="obligationProposed-matrixPrinter"> </a></td><td>matrix printer</td><td>matrix printer</td><td><a href="#obligationProposed-printer">printer</a></td><td/><td/><td/><td>Sometimes it is important to use a matrix printer, esp. for creating carbon copies.</td><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  portableStorage<a name="obligationProposed-portableStorage"> </a></td><td>portable storage device</td><td>portable storage device</td><td><a href="#obligationProposed-Device">Device</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>3</td><td style="white-space:nowrap">    usbStick<a name="obligationProposed-usbStick"> </a></td><td>usb stick</td><td>USB Stick</td><td><a href="#obligationProposed-portableStorage">portableStorage</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>3</td><td style="white-space:nowrap">    tapeDrive<a name="obligationProposed-tapeDrive"> </a></td><td>tape drive</td><td>tape drive</td><td><a href="#obligationProposed-portableStorage">portableStorage</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">Media<a name="obligationProposed-Media"> </a></td><td>Media</td><td>different media to be used with specialised devices</td><td/><td/><td>true</td><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  paper<a name="obligationProposed-paper"> </a></td><td>paper</td><td>paper</td><td><a href="#obligationProposed-Media">Media</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  stick<a name="obligationProposed-stick"> </a></td><td>stick</td><td>stick</td><td><a href="#obligationProposed-Media">Media</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  disc<a name="obligationProposed-disc"> </a></td><td>disc</td><td>disc</td><td><a href="#obligationProposed-Media">Media</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  tape<a name="obligationProposed-tape"> </a></td><td>tape</td><td>tape</td><td><a href="#obligationProposed-Media">Media</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">ElementLevel<a name="obligationProposed-ElementLevel"> </a></td><td>Level of Application</td><td>On which level to apply this obligation: root, node, or leaf</td><td/><td/><td>true</td><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  root<a name="obligationProposed-root"> </a></td><td>on root node</td><td>apply obligation on root node only</td><td><a href="#obligationProposed-ElementLevel">ElementLevel</a></td><td/><td/><td/><td/><td>notRoot</td><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  node<a name="obligationProposed-node"> </a></td><td>on any node</td><td>apply on any node that is not root or leaf</td><td><a href="#obligationProposed-ElementLevel">ElementLevel</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  leaf<a name="obligationProposed-leaf"> </a></td><td>on leaf node</td><td>apply on leaf node only</td><td><a href="#obligationProposed-ElementLevel">ElementLevel</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  all<a name="obligationProposed-all"> </a></td><td>on all levels</td><td>application on all levels possible</td><td><a href="#obligationProposed-ElementLevel">ElementLevel</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  notRoot<a name="obligationProposed-notRoot"> </a></td><td>all but root</td><td>apply on non-root nodes only</td><td><a href="#obligationProposed-ElementLevel">ElementLevel</a></td><td/><td/><td/><td/><td>root</td><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  notLeaf<a name="obligationProposed-notLeaf"> </a></td><td>all but leaf</td><td>apply on non-leaf nodes</td><td><a href="#obligationProposed-ElementLevel">ElementLevel</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">Activity<a name="obligationProposed-Activity"> </a></td><td>Activity</td><td>Activities, aka of general obligation</td><td/><td/><td>true</td><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  FunctionalObligations<a name="obligationProposed-FunctionalObligations"> </a></td><td>Functional Obligations</td><td>Functional Obligation describing processsing functionalities</td><td><a href="#obligationProposed-Activity">Activity</a></td><td/><td>true</td><td/><td/><td/><td/><td/></tr><tr><td>3</td><td style="white-space:nowrap">    ProducerObligations<a name="obligationProposed-ProducerObligations"> </a></td><td>Resource Producer Obligations</td><td/><td><a href="#obligationProposed-FunctionalObligations">FunctionalObligations</a></td><td/><td>true</td><td/><td/><td/><td/><td/></tr><tr><td>4</td><td style="white-space:nowrap">      send<a name="obligationProposed-send"> </a></td><td>send</td><td>convey instance with values to somewhere</td><td><a href="#obligationProposed-ProducerObligations">ProducerObligations</a>, <a href="#obligationProposed-sender">sender</a></td><td/><td/><td/><td/><td/><td/><td>root</td></tr><tr><td>4</td><td style="white-space:nowrap">      populate<a name="obligationProposed-populate"> </a></td><td>populate</td><td>populate with values from somewhere</td><td><a href="#obligationProposed-ProducerObligations">ProducerObligations</a>, <a href="#obligationProposed-creator">creator</a></td><td/><td/><td/><td>prohibited elements can be expressed by 'SHALL NOT send'.</td><td/><td/><td/></tr><tr><td>5</td><td style="white-space:nowrap">        from-ui<a name="obligationProposed-from-ui"> </a></td><td>from UI</td><td>Take the data from UI, so that the user has the ability to enter it.</td><td><a href="#obligationProposed-populate">populate</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>5</td><td style="white-space:nowrap">        from-store<a name="obligationProposed-from-store"> </a></td><td>from persistence layer</td><td>Take data from storage/persistence layer.</td><td><a href="#obligationProposed-populate">populate</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>5</td><td style="white-space:nowrap">        generate<a name="obligationProposed-generate"> </a></td><td>generate this data</td><td>This data can be generated.</td><td><a href="#obligationProposed-populate">populate</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>6</td><td style="white-space:nowrap">          from-other<a name="obligationProposed-from-other"> </a></td><td>generate from other values</td><td>This data can be generated from other data.</td><td><a href="#obligationProposed-generate">generate</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>6</td><td style="white-space:nowrap">          sequence<a name="obligationProposed-sequence"> </a></td><td>generate a sequence number</td><td/><td><a href="#obligationProposed-generate">generate</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>5</td><td style="white-space:nowrap">        from-input<a name="obligationProposed-from-input"> </a></td><td>from input stream</td><td>As a router, take data from input stream.</td><td><a href="#obligationProposed-populate">populate</a>, <a href="#obligationProposed-router">router</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>5</td><td style="white-space:nowrap">        as-constant<a name="obligationProposed-as-constant"> </a></td><td>constant</td><td>added as constant to the data, no special treatment done internally</td><td><a href="#obligationProposed-populate">populate</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>5</td><td style="white-space:nowrap">        into-narrative<a name="obligationProposed-into-narrative"> </a></td><td>narrative</td><td>added to the narrative, no special treatment done internally</td><td><a href="#obligationProposed-populate">populate</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>3</td><td style="white-space:nowrap">    ConsumerObligations<a name="obligationProposed-ConsumerObligations"> </a></td><td>Resource Consumer Obligations</td><td>Obligation for Consumer</td><td><a href="#obligationProposed-FunctionalObligations">FunctionalObligations</a>, <a href="#obligationProposed-receiver">receiver</a></td><td/><td>true</td><td/><td/><td/><td/><td/></tr><tr><td>4</td><td style="white-space:nowrap">      receive<a name="obligationProposed-receive"> </a></td><td>receive</td><td>receive data form somewhere</td><td><a href="#obligationProposed-ConsumerObligations">ConsumerObligations</a>, <a href="#obligationProposed-receiver">receiver</a></td><td/><td/><td/><td/><td/><td/><td>root</td></tr><tr><td>4</td><td style="white-space:nowrap">      process<a name="obligationProposed-process"> </a></td><td>process</td><td>handle data from instances as needed for general message consumption, store permitted.</td><td><a href="#obligationProposed-ConsumerObligations">ConsumerObligations</a>, <a href="#obligationProposed-consumer">consumer</a></td><td/><td/><td/><td>elements that are to be ignored can be expressed by 'SHALL NOT process'.</td><td/><td/><td/></tr><tr><td>5</td><td style="white-space:nowrap">        follow-up<a name="obligationProposed-follow-up"> </a></td><td>follow-up activity</td><td>what to do internally</td><td><a href="#obligationProposed-process">process</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>6</td><td style="white-space:nowrap">          display<a name="obligationProposed-display"> </a></td><td>display/present (UI)</td><td>present the data on a display</td><td><a href="#obligationProposed-follow-up">follow-up</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>6</td><td style="white-space:nowrap">          persist<a name="obligationProposed-persist"> </a></td><td>persist</td><td>persist/store the data somewhere</td><td><a href="#obligationProposed-router">router</a>, <a href="#obligationProposed-follow-up">follow-up</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>7</td><td style="white-space:nowrap">            archive<a name="obligationProposed-archive"> </a></td><td>archive</td><td>persist/store the archive which ensures longlasting access</td><td><a href="#obligationProposed-persist">persist</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>7</td><td style="white-space:nowrap">            in-database<a name="obligationProposed-in-database"> </a></td><td>persist in a database</td><td>persist in a database</td><td><a href="#obligationProposed-persist">persist</a></td><td/><td/><td/><td>too explicit/dedicated, concerns application details</td><td/><td/><td/></tr><tr><td>7</td><td style="white-space:nowrap">            in-file<a name="obligationProposed-in-file"> </a></td><td>store in a file</td><td>store in a file</td><td><a href="#obligationProposed-persist">persist</a></td><td/><td/><td/><td>too explicit/dedicated, concerns application details</td><td/><td/><td/></tr><tr><td>6</td><td style="white-space:nowrap">          print<a name="obligationProposed-print"> </a></td><td>print</td><td>print the data (somewhere)</td><td><a href="#obligationProposed-follow-up">follow-up</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>6</td><td style="white-space:nowrap">          eval<a name="obligationProposed-eval"> </a></td><td>evaluate</td><td>consider the data in order to interpret other correctly</td><td><a href="#obligationProposed-follow-up">follow-up</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>6</td><td style="white-space:nowrap">          integrate<a name="obligationProposed-integrate"> </a></td><td>integrate into data</td><td>to UPDATE existing data by merging other data with the existing data in a controlled manner</td><td><a href="#obligationProposed-follow-up">follow-up</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>5</td><td style="white-space:nowrap">        respond<a name="obligationProposed-respond"> </a></td><td>activity as response</td><td>what to respond</td><td><a href="#obligationProposed-process">process</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>6</td><td style="white-space:nowrap">          warning<a name="obligationProposed-warning"> </a></td><td>return warnings</td><td>return possible warnings</td><td><a href="#obligationProposed-respond">respond</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>7</td><td style="white-space:nowrap">            error<a name="obligationProposed-error"> </a></td><td>return error</td><td>return possible errors</td><td><a href="#obligationProposed-warning">warning</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>7</td><td style="white-space:nowrap">            reject-invalid<a name="obligationProposed-reject-invalid"> </a></td><td>reject invalid data</td><td>reject if data is invalid</td><td><a href="#obligationProposed-warning">warning</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>6</td><td style="white-space:nowrap">          accept-invalid<a name="obligationProposed-accept-invalid"> </a></td><td>accept invalid data</td><td>accept if data is invalid</td><td><a href="#obligationProposed-respond">respond</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>3</td><td style="white-space:nowrap">    ExchangerObligations<a name="obligationProposed-ExchangerObligations"> </a></td><td>Resource Exchanger Obligations</td><td>needs clarification ...</td><td><a href="#obligationProposed-FunctionalObligations">FunctionalObligations</a>, <a href="#obligationProposed-both">both</a>, <a href="#obligationProposed-router">router</a></td><td/><td>true</td><td/><td/><td/><td/><td/></tr><tr><td>4</td><td style="white-space:nowrap">      route<a name="obligationProposed-route"> </a></td><td>route  forward</td><td>as a router forward to the next recipient</td><td><a href="#obligationProposed-ExchangerObligations">ExchangerObligations</a></td><td/><td>false</td><td/><td/><td/><td/><td/></tr><tr><td>3</td><td style="white-space:nowrap">    OtherObligations<a name="obligationProposed-OtherObligations"> </a></td><td>Resource Other Obligations</td><td>Other obligations beyond what has been described above.</td><td><a href="#obligationProposed-FunctionalObligations">FunctionalObligations</a></td><td/><td>true</td><td/><td/><td/><td/><td/></tr><tr><td>4</td><td style="white-space:nowrap">      explain<a name="obligationProposed-explain"> </a></td><td>explain</td><td>provide an explanation in a capability statement how this element is handled</td><td><a href="#obligationProposed-OtherObligations">OtherObligations</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>4</td><td style="white-space:nowrap">      document<a name="obligationProposed-document"> </a></td><td>document</td><td>document the use of this element in a separate document</td><td><a href="#obligationProposed-OtherObligations">OtherObligations</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  DataObligation<a name="obligationProposed-DataObligation"> </a></td><td>Obligations on Data</td><td>Data Obligations</td><td><a href="#obligationProposed-Activity">Activity</a>, <a href="#obligationProposed-creator">creator</a>, <a href="#obligationProposed-consumer">consumer</a></td><td/><td>true</td><td/><td>The following codes may apply to creator and consumer. For example 'do not modify from UI'.</td><td/><td/><td/></tr><tr><td>3</td><td style="white-space:nowrap">    expected<a name="obligationProposed-expected"> </a></td><td>expected</td><td>data fits to expectations/specification</td><td><a href="#obligationProposed-DataObligation">DataObligation</a></td><td/><td/><td/><td>This applies to recipients and denotes that the data should be present according to the specification, i.e. is specified.</td><td/><td/><td/></tr><tr><td>4</td><td style="white-space:nowrap">      unaltered<a name="obligationProposed-unaltered"> </a></td><td>preserve</td><td>preserve what you get</td><td><a href="#obligationProposed-expected">expected</a></td><td/><td/><td/><td>That may also be used to take data from UI without any modifications.</td><td/><td/><td/></tr><tr><td>5</td><td style="white-space:nowrap">        exactly<a name="obligationProposed-exactly"> </a></td><td>exactly</td><td>exactly what is specified, nothing else</td><td><a href="#obligationProposed-unaltered">unaltered</a></td><td/><td/><td/><td>not sure whether 'unaltered' is sufficient so that we can drop that!?</td><td/><td/><td/></tr><tr><td>4</td><td style="white-space:nowrap">      modify<a name="obligationProposed-modify"> </a></td><td>modify</td><td>allow for modifications of the data</td><td><a href="#obligationProposed-expected">expected</a>, <a href="#obligationProposed-consumer">consumer</a></td><td/><td/><td/><td>Covers all types of modifications to data.</td><td/><td/><td/></tr><tr><td>5</td><td style="white-space:nowrap">        assocation<a name="obligationProposed-assocation"> </a></td><td>assocation</td><td>taken by association</td><td><a href="#obligationProposed-modify">modify</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>5</td><td style="white-space:nowrap">        equivalent<a name="obligationProposed-equivalent"> </a></td><td>equivalent</td><td>in an equivalent way</td><td><a href="#obligationProposed-modify">modify</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>5</td><td style="white-space:nowrap">        translate<a name="obligationProposed-translate"> </a></td><td>translate</td><td>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.</td><td><a href="#obligationProposed-modify">modify</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>6</td><td style="white-space:nowrap">          semantically<a name="obligationProposed-semantically"> </a></td><td>translate semantically</td><td>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.</td><td><a href="#obligationProposed-translate">translate</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>6</td><td style="white-space:nowrap">          clinically<a name="obligationProposed-clinically"> </a></td><td>translate clinically</td><td>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.</td><td><a href="#obligationProposed-translate">translate</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>5</td><td style="white-space:nowrap">        reference<a name="obligationProposed-reference"> </a></td><td>reference</td><td>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.</td><td><a href="#obligationProposed-modify">modify</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>5</td><td style="white-space:nowrap">        truncate<a name="obligationProposed-truncate"> </a></td><td>cut off data</td><td>cut off remaining characters from the data thereby shortening the data</td><td><a href="#obligationProposed-modify">modify</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>5</td><td style="white-space:nowrap">        more-details<a name="obligationProposed-more-details"> </a></td><td>additional details/values</td><td>extends the expected data with more/own information, e.g. appartment if street is specified</td><td><a href="#obligationProposed-modify">modify</a>, <a href="#obligationProposed-creator">creator</a></td><td/><td/><td/><td>This is in principle not a modification...</td><td/><td/><td/></tr><tr><td>5</td><td style="white-space:nowrap">        more-structure<a name="obligationProposed-more-structure"> </a></td><td>additional substructures</td><td>provides the data with more granular details, e.g. house number for an address line</td><td><a href="#obligationProposed-modify">modify</a>, <a href="#obligationProposed-creator">creator</a></td><td/><td/><td/><td>This is in principle not a modification...</td><td/><td/><td/></tr><tr><td>5</td><td style="white-space:nowrap">        missing<a name="obligationProposed-missing"> </a></td><td>data is missing/not available</td><td>provide a null-flavor/absent reason</td><td><a href="#obligationProposed-modify">modify</a>, <a href="#obligationProposed-creator">creator</a></td><td/><td/><td/><td>In FHIR this is the permission/indication for a data-absent-reason or something similar. In V3 it is null-flavor.</td><td/><td/><td/></tr><tr><td>5</td><td style="white-space:nowrap">        constant<a name="obligationProposed-constant"> </a></td><td>added as a constant</td><td>this value has no valid representation or meaning in the sending application, it is just added because it is required to be there</td><td><a href="#obligationProposed-modify">modify</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>3</td><td style="white-space:nowrap">    unexpected<a name="obligationProposed-unexpected"> </a></td><td>unexpected values</td><td>how to manage unexpected data (as sender or receiver)</td><td><a href="#obligationProposed-DataObligation">DataObligation</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>4</td><td style="white-space:nowrap">      replaces<a name="obligationProposed-replaces"> </a></td><td>new/other values</td><td>replaces the expected data by something else</td><td><a href="#obligationProposed-unexpected">unexpected</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>4</td><td style="white-space:nowrap">      consider<a name="obligationProposed-consider"> </a></td><td>consider unexpected values</td><td>take vare of values that are coming but not described/specified. Allows for warnings</td><td><a href="#obligationProposed-unexpected">unexpected</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">CombinedObligations<a name="obligationProposed-CombinedObligations"> </a></td><td>combined obligations</td><td>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.</td><td/><td/><td>true</td><td/><td>The following list is just a snippet and should be enhanced during the discussion..., The hierarchy has to discarded because not everything is explicitly modelled.</td><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">MAY:populate<a name="obligationProposed-MAY.58populate"> </a></td><td>MAY populate with data</td><td>Conformant applications MAY take and provide data.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-MAY">MAY</a>, <a href="#obligationProposed-populate">populate</a></td><td/><td/><td/><td>is this a useful combination?</td><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">MAY:populate:missing<a name="obligationProposed-MAY.58populate.58missing"> </a></td><td>MAY populate data element with why orig data is missing</td><td>Conformant applications MAY populate the element why the original data is missing.</td><td><a href="#obligationProposed-MAY.58populate">MAY:populate</a>, <a href="#obligationProposed-missing">missing</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">MAY:(populate)from-ui<a name="obligationProposed-MAY.58.40populate.41from-ui"> </a></td><td>MAY populate with data taken from ui</td><td>Conformant applications MAY take data from a UI and provide it.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-MAY">MAY</a>, <a href="#obligationProposed-from-ui">from-ui</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHOULD:populate<a name="obligationProposed-SHOULD.58populate"> </a></td><td>SHOULD populate with data</td><td>Conformant applications SHOULD take and provide data.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-MAY.58populate">MAY:populate</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">MAY:(populate)into-narrative<a name="obligationProposed-MAY.58.40populate.41into-narrative"> </a></td><td>MAY populate into-narrative</td><td>Conformant applications MAY populate element into narrative text as well.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHOULD.58populate">SHOULD:populate</a></td><td/><td/><td/><td>discuss whether other representation forms are better</td><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHOULD:(populate)into-narrative<a name="obligationProposed-SHOULD.58.40populate.41into-narrative"> </a></td><td>SHOULD populate into-narrative</td><td>Conformant applications SHOULD populate element into narrative text as well.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-MAY.58.40populate.41into-narrative">MAY:(populate)into-narrative</a></td><td/><td/><td/><td>discuss whether other representation forms are better</td><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHALL:(populate)into-narrative<a name="obligationProposed-SHALL.58.40populate.41into-narrative"> </a></td><td>SHALL populate into-narrative</td><td>Conformant applications SHALL populate element into narrative text as well.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHOULD.58.40populate.41into-narrative">SHOULD:(populate)into-narrative</a></td><td/><td/><td/><td>discuss whether other representation forms are better</td><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHOULDNOT:(populate)into-narrative<a name="obligationProposed-SHOULDNOT.58.40populate.41into-narrative"> </a></td><td>SHOULD NOT populate into-narrative</td><td>Conformant applications SHOULD NOT populate element into narrative text.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a></td><td/><td/><td/><td/><td>SHOULD:(populate)into-narrative</td><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHALLNOT:(populate)into-narrative<a name="obligationProposed-SHALLNOT.58.40populate.41into-narrative"> </a></td><td>SHALL NOT populate into-narrative</td><td>Conformant applications SHALL NOT populate element into narrative text.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHOULDNOT.58.40populate.41into-narrative">SHOULDNOT:(populate)into-narrative</a></td><td/><td/><td/><td/><td>SHALL:(populate)into-narrative</td><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHALL:populate<a name="obligationProposed-SHALL.58populate"> </a></td><td>SHALL populate with data</td><td>Conformant applications SHOULD take and provide data.</td><td><a href="#obligationProposed-SHOULD.58populate">SHOULD:populate</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHOULD:(populate)from-ui<a name="obligationProposed-SHOULD.58.40populate.41from-ui"> </a></td><td>SHOULD populate with data taken from ui</td><td>Conformant applications SHOULD take data from a UI and provide it.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHOULD">SHOULD</a>, <a href="#obligationProposed-from-ui">from-ui</a>, <a href="#obligationProposed-creator">creator</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHALL:(populate)from-ui<a name="obligationProposed-SHALL.58.40populate.41from-ui"> </a></td><td>SHALL populate data taken from ui</td><td>Conformant applications SHALL take data from a UI and provide it.</td><td><a href="#obligationProposed-SHOULD.58.40populate.41from-ui">SHOULD:(populate)from-ui</a>, <a href="#obligationProposed-SHALL">SHALL</a>, <a href="#obligationProposed-from-ui">from-ui</a></td><td/><td/><td>testableByHuman</td><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHALL:(populate)from-ui:more-details<a name="obligationProposed-SHALL.58.40populate.41from-ui.58more-details"> </a></td><td>SHALL populate with data taken from ui perhaps with more details</td><td>Conformant applications SHALL take data from a UI and bring it into the instance. It is allowed to provide more details then specified.</td><td><a href="#obligationProposed-SHALL.58.40populate.41from-ui">SHALL:(populate)from-ui</a>, <a href="#obligationProposed-more-details">more-details</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHOULD:send<a name="obligationProposed-SHOULD.58send"> </a></td><td>SHOULD send the instance</td><td>Conformant applications SHOULD send the instance.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  SHALL:send<a name="obligationProposed-SHALL.58send"> </a></td><td>SHALL send the instance</td><td>Conformant applications SHALL send the instance.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHALL">SHALL</a>, <a href="#obligationProposed-send">send</a>, <a href="#obligationProposed-sender">sender</a></td><td/><td/><td>testableByMachine</td><td/><td/><td/><td>root</td></tr><tr><td>1</td><td style="white-space:nowrap">MAY:persist<a name="obligationProposed-MAY.58persist"> </a></td><td>MAY store the data</td><td>Conformant applications MAY store the data.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-MAY">MAY</a>, <a href="#obligationProposed-persist">persist</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHOULD:persist<a name="obligationProposed-SHOULD.58persist"> </a></td><td>SHOULD store the data</td><td>Conformant applications SHOULD store the data.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  SHALL:persist<a name="obligationProposed-SHALL.58persist"> </a></td><td>SHALL store the data somewhere</td><td>Conformant applications SHALL store the data in some way.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHALL">SHALL</a>, <a href="#obligationProposed-persist">persist</a></td><td/><td/><td>testableByHuman</td><td/><td/><td/><td/></tr><tr><td>3</td><td style="white-space:nowrap">    SHALL:persist:exactly<a name="obligationProposed-SHALL.58persist.58exactly"> </a></td><td>SHALL store the data somewhere, but exactly as is sent</td><td>Conformant applications SHALL store the data in a way that the originally data from the instance can be reestablished.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHALL">SHALL</a>, <a href="#obligationProposed-persist">persist</a>, <a href="#obligationProposed-exactly">exactly</a></td><td/><td/><td>testableByHuman</td><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  SHOULD:(persist)in-database<a name="obligationProposed-SHOULD.58.40persist.41in-database"> </a></td><td>SHOULD store the data in a database</td><td>Conformant applications are asked to store the data in a database.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHOULD">SHOULD</a>, <a href="#obligationProposed-persist">persist</a>, <a href="#obligationProposed-in-database">in-database</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  SHALLNOT:populate:more-details<a name="obligationProposed-SHALLNOT.58populate.58more-details"> </a></td><td>SHALL NOT populate more data than is specified</td><td>Conformant applications SHALL NOT populatae more data than is specified. The specification is closed.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHALLNOT">SHALLNOT</a>, <a href="#obligationProposed-populate">populate</a>, <a href="#obligationProposed-more-details">more-details</a>, <a href="#obligationProposed-creator">creator</a></td><td>true</td><td/><td>testableByMachine</td><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  SHALLNOT:populate:missing<a name="obligationProposed-SHALLNOT.58populate.58missing"> </a></td><td>SHALL NOT populate info about missing data, ie. data absent reasons</td><td>Conformant applications SHALL NOT populate a reason for missing information.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHALLNOT">SHALLNOT</a>, <a href="#obligationProposed-populate">populate</a>, <a href="#obligationProposed-missing">missing</a>, <a href="#obligationProposed-creator">creator</a></td><td>true</td><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  MAY:populate:more-structure<a name="obligationProposed-MAY.58populate.58more-structure"> </a></td><td>MAY populate the data in more structured way</td><td>Conformant applications are allowed to populate the data with more structure. For example, to split an address line into streetname and house number.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-MAY">MAY</a>, <a href="#obligationProposed-populate">populate</a>, <a href="#obligationProposed-more-structure">more-structure</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  SHALLNOT:follow-up:truncate<a name="obligationProposed-SHALLNOT.58follow-up.58truncate"> </a></td><td>SHALL NOT truncate data</td><td>Conformant applications SHALL NOT cut off data.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHALLNOT">SHALLNOT</a>, <a href="#obligationProposed-follow-up">follow-up</a>, <a href="#obligationProposed-truncate">truncate</a>, <a href="#obligationProposed-consumer">consumer</a></td><td>true</td><td/><td>testableByHuman</td><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  MAY:modify<a name="obligationProposed-MAY.58modify"> </a></td><td>MAY modify the data</td><td>Conformant applications MAY, i.e. are allowed to modify the data.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-MAY">MAY</a>, <a href="#obligationProposed-modify">modify</a></td><td/><td/><td/><td>nice hint</td><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  MAY:print<a name="obligationProposed-MAY.58print"> </a></td><td>MAY print data</td><td>Conformant applications MAY print the data.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-MAY">MAY</a>, <a href="#obligationProposed-print">print</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  SHOULD:print<a name="obligationProposed-SHOULD.58print"> </a></td><td>SHOULD print data</td><td>Conformant applications SHOULD print the data.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHOULD">SHOULD</a>, <a href="#obligationProposed-print">print</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  SHALL:print<a name="obligationProposed-SHALL.58print"> </a></td><td>SHALL print data</td><td>Conformant applications SHALL print the data.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHALL">SHALL</a>, <a href="#obligationProposed-print">print</a>, <a href="#obligationProposed-consumer">consumer</a></td><td/><td/><td>testableByHuman</td><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHALLNOT:(populate):in-narrative<a name="obligationProposed-SHALLNOT.58.40populate.41.58in-narrative"> </a></td><td>SHALL NOT add to narrative</td><td>Conformant applications SHALL NOT add this data to the narrative.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHALLNOT">SHALLNOT</a>, <a href="#obligationProposed-populate">populate</a>, <a href="#obligationProposed-into-narrative">into-narrative</a>, <a href="#obligationProposed-creator">creator</a></td><td/><td/><td>testableByHuman</td><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">MAY:process<a name="obligationProposed-MAY.58process"> </a></td><td>MAY process the data</td><td>Conformant applications MAY process the data somehow.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-MAY">MAY</a>, <a href="#obligationProposed-process">process</a></td><td/><td/><td/><td>There is no further specification in which way the data can be processed.</td><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHOULD:process<a name="obligationProposed-SHOULD.58process"> </a></td><td>SHOULD process the data</td><td>Conformant applications SHOULD process the data in some meaningful way.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-MAY.58process">MAY:process</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHALL:process<a name="obligationProposed-SHALL.58process"> </a></td><td>SHALL process the data</td><td>Conformant applications SHALL process the data in some meaningful way.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHOULD.58process">SHOULD:process</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHOULDNOT:process<a name="obligationProposed-SHOULDNOT.58process"> </a></td><td>SHOULD NOT process the data</td><td>Conformant applications SHOULD NOT process the data in some meaningful way.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHOULDNOT">SHOULDNOT</a>, <a href="#obligationProposed-process">process</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHALLNOT:process<a name="obligationProposed-SHALLNOT.58process"> </a></td><td>SHALL NOT process the data</td><td>Conformant applications SHALL NOT process the data in some meaningful way.</td><td><a href="#obligationProposed-SHOULDNOT.58process">SHOULDNOT:process</a>, <a href="#obligationProposed-SHALLNOT">SHALLNOT</a>, <a href="#obligationProposed-process">process</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHOULD:document<a name="obligationProposed-SHOULD.58document"> </a></td><td>SHOULD document how the data is used</td><td>Conformant applications SHOULD document the way the data is used in some (meaningful) way.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHOULD">SHOULD</a>, <a href="#obligationProposed-document">document</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHALL:document<a name="obligationProposed-SHALL.58document"> </a></td><td>SHALL document how the data is used</td><td>Conformant applications SHALL document the way the data is used in some (meaningful) way.</td><td><a href="#obligationProposed-SHOULD.58document">SHOULD:document</a>, <a href="#obligationProposed-SHALL">SHALL</a>, <a href="#obligationProposed-document">document</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHOULD:display<a name="obligationProposed-SHOULD.58display"> </a></td><td>SHOULD display the data</td><td>Conformant applications SHOULD display the data in some meaningful way.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHOULD">SHOULD</a>, <a href="#obligationProposed-display">display</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHALL:display<a name="obligationProposed-SHALL.58display"> </a></td><td>SHALL display the data</td><td>Conformant applications SHALL display the data in some meaningful way.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHOULD.58display">SHOULD:display</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHOULDNOT:modify<a name="obligationProposed-SHOULDNOT.58modify"> </a></td><td>SHOULD NOT modify the data</td><td>Conformant applications SHOULD NOT modiify the data in any way.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHOULDNOT">SHOULDNOT</a>, <a href="#obligationProposed-modify">modify</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHALLNOT:modify<a name="obligationProposed-SHALLNOT.58modify"> </a></td><td>SHALL NOT modify the data</td><td>Conformant applications SHALL NOT modiify the data in any way.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHALLNOT">SHALLNOT</a>, <a href="#obligationProposed-modify">modify</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">MAYNOT:process<a name="obligationProposed-MAYNOT.58process"> </a></td><td>MAY NOT process data</td><td>Conformant applications MAY NOT process data, aka of ignoring.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-MAYNOT">MAYNOT</a>, <a href="#obligationProposed-process">process</a></td><td/><td/><td/><td>this is equivalent to MAY:ignore.</td><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHOULD:reject-invalid<a name="obligationProposed-SHOULD.58reject-invalid"> </a></td><td>SHOULD reject invalid data</td><td>Conformant applications SHOULD reject invalid data.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHOULD">SHOULD</a>, <a href="#obligationProposed-reject-invalid">reject-invalid</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHALL:reject-invalid<a name="obligationProposed-SHALL.58reject-invalid"> </a></td><td>SHALL reject invalid data</td><td>Conformant applications SHALL reject invalid data.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHALL">SHALL</a>, <a href="#obligationProposed-reject-invalid">reject-invalid</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHOULD:accept-invalid<a name="obligationProposed-SHOULD.58accept-invalid"> </a></td><td>SHOULD accept invalid data</td><td>Conformant applications SHOULD accept invalid data.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHOULD">SHOULD</a>, <a href="#obligationProposed-accept-invalid">accept-invalid</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHALL:accept-invalid<a name="obligationProposed-SHALL.58accept-invalid"> </a></td><td>SHALL accept invalid data</td><td>Conformant applications SHALL accept invalid data.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHALL">SHALL</a>, <a href="#obligationProposed-accept-invalid">accept-invalid</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHOULD:receive<a name="obligationProposed-SHOULD.58receive"> </a></td><td>SHOULD be able to receive the data</td><td>Conformant applications SHOULD be able to receive the data.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHOULD">SHOULD</a>, <a href="#obligationProposed-receive">receive</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHALL:receive<a name="obligationProposed-SHALL.58receive"> </a></td><td>SHALL be able to receive the data</td><td>Conformant applications SHALL be able to receive the data.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHALL">SHALL</a>, <a href="#obligationProposed-receive">receive</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHOULDNOT:error<a name="obligationProposed-SHOULDNOT.58error"> </a></td><td>SHOULD NOT return an error to the sender of the data</td><td>Conformant applications SHOULD NOT reurn an erorr to the sender of the data.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHOULDNOT">SHOULDNOT</a>, <a href="#obligationProposed-error">error</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">SHALLNOT:error<a name="obligationProposed-SHALLNOT.58error"> </a></td><td>SHALL NOT return an error to the sender of the data</td><td>Conformant applications SHALL NOT reurn an erorr to the sender of the data.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a>, <a href="#obligationProposed-SHALLNOT">SHALLNOT</a>, <a href="#obligationProposed-error">error</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">ForeignStandards<a name="obligationProposed-ForeignStandards"> </a></td><td>concept codes from other standards</td><td>Other standards use specific terms for optionality/usage that should be conceptualized here.</td><td><a href="#obligationProposed-CombinedObligations">CombinedObligations</a></td><td/><td>true</td><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">v2<a name="obligationProposed-v2"> </a></td><td>v2 concept codes</td><td>optionality/usage codes from v2</td><td><a href="#obligationProposed-ForeignStandards">ForeignStandards</a></td><td/><td>true</td><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  v2-r<a name="obligationProposed-v2-r"> </a></td><td>v2: R</td><td>required in v2.x</td><td><a href="#obligationProposed-v2">v2</a>, <a href="#obligationProposed-SHALL">SHALL</a>, <a href="#obligationProposed-populate">populate</a></td><td/><td/><td/><td>minCard = 1</td><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  v2-re<a name="obligationProposed-v2-re"> </a></td><td>v2: RE</td><td>required but may be empty in v2.x</td><td><a href="#obligationProposed-v2">v2</a>, <a href="#obligationProposed-SHALL">SHALL</a>, <a href="#obligationProposed-populate">populate</a></td><td/><td/><td/><td>minCard = 0</td><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  v2-x<a name="obligationProposed-v2-x"> </a></td><td>v2: X</td><td>forbidden in v2</td><td><a href="#obligationProposed-v2">v2</a>, <a href="#obligationProposed-SHOULDNOT">SHOULDNOT</a>, <a href="#obligationProposed-populate">populate</a>, <a href="#obligationProposed-process">process</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  v2-b<a name="obligationProposed-v2-b"> </a></td><td>v2: B</td><td>backwards use in v2 only</td><td><a href="#obligationProposed-v2">v2</a>, <a href="#obligationProposed-SHOULDNOT">SHOULDNOT</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  v2-w<a name="obligationProposed-v2-w"> </a></td><td>v2: W</td><td>withdrawn use in v2 only</td><td><a href="#obligationProposed-v2">v2</a>, <a href="#obligationProposed-SHOULDNOT">SHOULDNOT</a>, <a href="#obligationProposed-populate">populate</a>, <a href="#obligationProposed-process">process</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">v3<a name="obligationProposed-v3"> </a></td><td>V3 concept codes</td><td>optionality/usage codes from V3/CDA</td><td><a href="#obligationProposed-ForeignStandards">ForeignStandards</a></td><td/><td>true</td><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  v3-m<a name="obligationProposed-v3-m"> </a></td><td>v3: M</td><td>mandatory in IHE V3</td><td><a href="#obligationProposed-v3">v3</a>, <a href="#obligationProposed-SHALL">SHALL</a>, <a href="#obligationProposed-populate">populate</a>, <a href="#obligationProposed-exactly">exactly</a>, <a href="#obligationProposed-SHALLNOT.58populate.58missing">SHALLNOT:populate:missing</a></td><td/><td/><td/><td>A value must be present and null-flavors are not allowed; to be combined with minCard = 1</td><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  v3-r<a name="obligationProposed-v3-r"> </a></td><td>v3: R</td><td>required in IHE V3</td><td><a href="#obligationProposed-v3">v3</a>, <a href="#obligationProposed-SHALL">SHALL</a>, <a href="#obligationProposed-populate">populate</a>, <a href="#obligationProposed-MAY.58populate.58missing">MAY:populate:missing</a></td><td/><td/><td/><td>A value must be present but it can be a null-flavors</td><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  v3-x<a name="obligationProposed-v3-x"> </a></td><td>v3: X</td><td>forbidden in IHE V3</td><td><a href="#obligationProposed-v3">v3</a>, <a href="#obligationProposed-SHALLNOT">SHALLNOT</a>, <a href="#obligationProposed-populate">populate</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">ihe<a name="obligationProposed-ihe"> </a></td><td>IHE concept codes</td><td>optionality/usage codes from IHE</td><td><a href="#obligationProposed-ForeignStandards">ForeignStandards</a></td><td/><td>true</td><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  ihe-r<a name="obligationProposed-ihe-r"> </a></td><td>IHE: R</td><td>required in IHE v2.x specs</td><td><a href="#obligationProposed-ihe">ihe</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  ihe-r2<a name="obligationProposed-ihe-r2"> </a></td><td>IHE: R2</td><td>R2 in IHE v2.x specs</td><td><a href="#obligationProposed-ihe">ihe</a>, <a href="#obligationProposed-SHALL.58process">SHALL:process</a>, <a href="#obligationProposed-SHOULD.58populate">SHOULD:populate</a></td><td/><td/><td/><td>This is interpreted as the receiver has to support it, but when becoming the sender it is not really necessary to return it again</td><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  ihe-x<a name="obligationProposed-ihe-x"> </a></td><td>IHE: X</td><td>XX in IHE v2.x specs</td><td><a href="#obligationProposed-ihe">ihe</a></td><td/><td/><td/><td>forbidden?</td><td/><td/><td/></tr><tr><td>1</td><td style="white-space:nowrap">xDT<a name="obligationProposed-xDT"> </a></td><td>German xDT standards</td><td>The German xDT standard family has a very specific set of codes and is just presented here for completeness and demonstration purposes</td><td><a href="#obligationProposed-ForeignStandards">ForeignStandards</a></td><td/><td>true</td><td/><td>all concept codes are to processed by the receiver; different requirements for sender</td><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  xDT-M<a name="obligationProposed-xDT-M"> </a></td><td>xDT: M</td><td>MUSS in xDT (unbedingtes Mussfeld)</td><td><a href="#obligationProposed-xDT">xDT</a>, <a href="#obligationProposed-SHALL">SHALL</a>, <a href="#obligationProposed-SHALL.58process">SHALL:process</a>, <a href="#obligationProposed-SHALL.58populate">SHALL:populate</a></td><td/><td/><td/><td>minCard=1</td><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  xDT-m<a name="obligationProposed-xDT-m"> </a></td><td>xDT: m</td><td>muss in xDT (bedingtes Mussfeld)</td><td><a href="#obligationProposed-xDT">xDT</a>, <a href="#obligationProposed-SHALL">SHALL</a>, <a href="#obligationProposed-SHALL.58process">SHALL:process</a>, <a href="#obligationProposed-SHALL.58populate">SHALL:populate</a></td><td/><td/><td/><td>depends on the value of another field</td><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  xDT-K<a name="obligationProposed-xDT-K"> </a></td><td>xDT: K</td><td>KANN in xDT (unbedingts KANNfeld)</td><td><a href="#obligationProposed-xDT">xDT</a>, <a href="#obligationProposed-SHALL">SHALL</a>, <a href="#obligationProposed-SHALL.58process">SHALL:process</a>, <a href="#obligationProposed-SHALL.58populate">SHALL:populate</a></td><td/><td/><td/><td/><td/><td/><td/></tr><tr><td>2</td><td style="white-space:nowrap">  xDT-k<a name="obligationProposed-xDT-k"> </a></td><td>xDT: k</td><td>kann in xDT (bedingtes Kannfeld)</td><td><a href="#obligationProposed-xDT">xDT</a>, <a href="#obligationProposed-SHALL">SHALL</a>, <a href="#obligationProposed-SHALL.58process">SHALL:process</a>, <a href="#obligationProposed-SHALL.58populate">SHALL:populate</a></td><td/><td/><td/><td>depends on the value of another field</td><td/><td/><td/></tr></table></div>
  </text>
  <url value="http://v2.hl7.org/fhir/CodeSystem/obligationProposed"/>
  <version value="0.1.0"/>
  <name value="ObligationProposedCodes"/>
  <title value="Proposed Obligation Codes"/>
  <status value="draft"/>
  <experimental value="true"/>
  <date value="2024-05-08T17:58:37+02:00"/>
  <publisher value="FO"/>
  <contact>
    <telecom>
      <system value="url"/>
      <value value="http://www.hl7.org/Special/committees/conformancewg"/>
    </telecom>
  </contact>
  <description
               value="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 value="Conformance WG"/>
  <caseSensitive value="true"/>
  <hierarchyMeaning value="is-a"/>
  <compositional value="true"/>
  <content value="complete"/>
  <count value="177"/>
  <property>
    <code value="parent"/>
    <uri value="http://hl7.org/fhir/concept-properties#parent"/>
    <description
                 value="Who is the parent element of this concept? Multiple parents are possible."/>
    <type value="code"/>
  </property>
  <property>
    <code value="negation"/>
    <description value="Negating the underlying combination of concepts."/>
    <type value="boolean"/>
  </property>
  <property>
    <code value="abstract"/>
    <uri value="http://hl7.org/fhir/concept-properties#notSelectable"/>
    <description
                 value="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 value="boolean"/>
  </property>
  <property>
    <code value="testable"/>
    <description value="Is this a testable requirement?"/>
    <type value="code"/>
  </property>
  <property>
    <code value="comment"/>
    <uri value="http://hl7.org/fhir/concept-properties#comment"/>
    <description value="Comment from Conformance WG"/>
    <type value="string"/>
  </property>
  <property>
    <code value="converse"/>
    <description value="What is the opposite item"/>
    <type value="code"/>
  </property>
  <property>
    <code value="constrainTo"/>
    <description
                 value="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 value="code"/>
  </property>
  <property>
    <code value="applyOn"/>
    <description
                 value="Apply on which element level: root, node, leaf, all, notRoot, notLeaf"/>
    <type value="code"/>
  </property>
  <property>
    <code value="actor"/>
    <description value="Actor"/>
    <type value="code"/>
  </property>
  <concept>
    <code value="Negation"/>
    <display value="Negation"/>
    <definition
                value="Negate the meaning of the concepts that inherit 'negation'. (Negation is not negated again.)"/>
    <property>
      <code value="abstract"/>
      <valueBoolean value="true"/>
    </property>
    <property>
      <code value="negation"/>
      <valueBoolean value="true"/>
    </property>
    <property>
      <code value="comment"/>
      <valueString
                   value="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."/>
    </property>
  </concept>
  <concept>
    <code value="Verbs"/>
    <display value="conformance verbs"/>
    <definition
                value="Conformance verbs are to be used to define the requirement level that is the foundation to indicate what has to be tested."/>
    <property>
      <code value="abstract"/>
      <valueBoolean value="true"/>
    </property>
    <property>
      <code value="comment"/>
      <valueString
                   value="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."/>
    </property>
    <concept>
      <code value="MAY"/>
      <display value="MAY"/>
      <definition
                  value="it is to the developers choice whether an element is supported or not"/>
      <property>
        <code value="parent"/>
        <valueCode value="Verbs"/>
      </property>
      <property>
        <code value="constrainTo"/>
        <valueCode value="SHOULD"/>
      </property>
      <property>
        <code value="constrainTo"/>
        <valueCode value="SHOULDNOT"/>
      </property>
      <property>
        <code value="testable"/>
        <valueCode value="notTestable"/>
      </property>
      <property>
        <code value="converse"/>
        <valueCode value="MAYNOT"/>
      </property>
      <property>
        <code value="comment"/>
        <valueString
                     value="MAY primarily provides additional general information, but is still for the discretion of the implementer/developer."/>
      </property>
      <concept>
        <code value="SHOULD"/>
        <display value="SHOULD"/>
        <definition
                    value="It is a recommendation to take care of this element"/>
        <property>
          <code value="parent"/>
          <valueCode value="MAY"/>
        </property>
        <property>
          <code value="constrainTo"/>
          <valueCode value="SHALL"/>
        </property>
        <property>
          <code value="constrainTo"/>
          <valueCode value="SHOULDNOT"/>
        </property>
        <property>
          <code value="constrainTo"/>
          <valueCode value="SHALLNOT"/>
        </property>
        <property>
          <code value="comment"/>
          <valueString value="Just a hint."/>
        </property>
        <concept>
          <code value="SHALL"/>
          <display value="SHALL"/>
          <definition value="This verb denotes a testable requirement."/>
          <property>
            <code value="parent"/>
            <valueCode value="SHOULD"/>
          </property>
          <property>
            <code value="testable"/>
            <valueCode value="testable"/>
          </property>
        </concept>
      </concept>
    </concept>
    <concept>
      <code value="MAYNOT"/>
      <display value="MAYNOT"/>
      <definition
                  value="It is to the developers choice whether an element is probably not supported."/>
      <property>
        <code value="parent"/>
        <valueCode value="Verbs"/>
      </property>
      <property>
        <code value="abstract"/>
        <valueBoolean value="true"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="Negation"/>
      </property>
      <property>
        <code value="converse"/>
        <valueCode value="MAY"/>
      </property>
      <property>
        <code value="comment"/>
        <valueString
                     value="MAYNOT is no reasonable option. It is mentioned though to complete the hierarchy."/>
      </property>
      <property>
        <code value="testable"/>
        <valueCode value="notTestable"/>
      </property>
      <concept>
        <code value="SHOULDNOT"/>
        <display value="SHOULD NOT"/>
        <definition
                    value="it is a recommendation NOT to take care of this element (for some reasons)"/>
        <property>
          <code value="parent"/>
          <valueCode value="MAYNOT"/>
        </property>
        <property>
          <code value="negation"/>
          <valueBoolean value="true"/>
        </property>
        <property>
          <code value="constrainTo"/>
          <valueCode value="SHALLNOT"/>
        </property>
        <property>
          <code value="constrainTo"/>
          <valueCode value="SHOULD"/>
        </property>
        <property>
          <code value="constrainTo"/>
          <valueCode value="SHALL"/>
        </property>
        <property>
          <code value="converse"/>
          <valueCode value="SHOULD"/>
        </property>
        <concept>
          <code value="SHALLNOT"/>
          <display value="SHALL NOT"/>
          <definition value="it is forbidden to handle this element"/>
          <property>
            <code value="parent"/>
            <valueCode value="SHOULDNOT"/>
          </property>
          <property>
            <code value="negation"/>
            <valueBoolean value="true"/>
          </property>
          <property>
            <code value="testable"/>
            <valueCode value="testable"/>
          </property>
          <property>
            <code value="converse"/>
            <valueCode value="SHALL"/>
          </property>
          <property>
            <code value="comment"/>
            <valueString
                         value="It may happen for some elements, eg. due to security reasons, not to handle (provided/store/etc.) this element."/>
          </property>
        </concept>
      </concept>
    </concept>
  </concept>
  <concept>
    <code value="FunctionalType"/>
    <display value="Functional Type of Requirement"/>
    <definition value="Functional Type of Requirement"/>
    <property>
      <code value="abstract"/>
      <valueBoolean value="true"/>
    </property>
    <concept>
      <code value="functional"/>
      <display value="functional"/>
      <definition value="functional requirement"/>
      <property>
        <code value="parent"/>
        <valueCode value="FunctionalType"/>
      </property>
      <concept>
        <code value="internal"/>
        <display value="internal functional"/>
        <definition
                    value="function that operates on the internal data management"/>
        <property>
          <code value="parent"/>
          <valueCode value="functional"/>
        </property>
      </concept>
      <concept>
        <code value="return"/>
        <display value="return functional"/>
        <definition value="functional requirement on direct returns"/>
        <property>
          <code value="parent"/>
          <valueCode value="functional"/>
        </property>
      </concept>
      <concept>
        <code value="response"/>
        <display value="response function"/>
        <definition value="functional requirement to prepare responses"/>
        <property>
          <code value="parent"/>
          <valueCode value="functional"/>
        </property>
      </concept>
      <concept>
        <code value="forward"/>
        <display value="forwarding function"/>
        <definition value="functional requirement to forward data"/>
        <property>
          <code value="parent"/>
          <valueCode value="functional"/>
        </property>
      </concept>
    </concept>
    <concept>
      <code value="data"/>
      <display value="data"/>
      <definition value="data requirement"/>
      <property>
        <code value="parent"/>
        <valueCode value="FunctionalType"/>
      </property>
    </concept>
  </concept>
  <concept>
    <code value="Testable"/>
    <display value="Type of Testing"/>
    <definition value="Type of Testing"/>
    <property>
      <code value="abstract"/>
      <valueBoolean value="true"/>
    </property>
    <concept>
      <code value="testable"/>
      <display value="testable"/>
      <definition value="requirement is testable"/>
      <property>
        <code value="parent"/>
        <valueCode value="Testable"/>
      </property>
      <concept>
        <code value="testableByMachine"/>
        <display value="machine testable"/>
        <definition value="requirement is testable by a machine"/>
        <property>
          <code value="parent"/>
          <valueCode value="testable"/>
        </property>
      </concept>
      <concept>
        <code value="testableByHuman"/>
        <display value="human testable"/>
        <definition value="requirement is testable by a human (inspection)"/>
        <property>
          <code value="parent"/>
          <valueCode value="testable"/>
        </property>
        <concept>
          <code value="withChecklist"/>
          <display value="checklist"/>
          <definition value="requirement is testable by using a checklist"/>
          <property>
            <code value="parent"/>
            <valueCode value="testableByHuman"/>
          </property>
        </concept>
      </concept>
    </concept>
    <concept>
      <code value="notTestable"/>
      <display value="testable"/>
      <definition value="requirement is not testable"/>
      <property>
        <code value="parent"/>
        <valueCode value="Testable"/>
      </property>
      <property>
        <code value="negation"/>
        <valueBoolean value="true"/>
      </property>
    </concept>
  </concept>
  <concept>
    <code value="ActorType"/>
    <display value="Type of Actor"/>
    <definition
                value="An actor can operate in two ways: with the content itself, or as a manager of the instance."/>
    <property>
      <code value="abstract"/>
      <valueBoolean value="true"/>
    </property>
    <concept>
      <code value="transport"/>
      <display value="transport"/>
      <definition
                  value="handle the transport of data once the instance is available/accessible"/>
      <property>
        <code value="parent"/>
        <valueCode value="ActorType"/>
      </property>
      <property>
        <code value="comment"/>
        <valueString
                     value="not sure whether this (and everything related) has to be taken out of this spec?"/>
      </property>
    </concept>
    <concept>
      <code value="content"/>
      <display value="content mngmt"/>
      <definition value="manage the data itself"/>
      <property>
        <code value="parent"/>
        <valueCode value="ActorType"/>
      </property>
    </concept>
  </concept>
  <concept>
    <code value="Actor"/>
    <display value="Actor of Communication"/>
    <definition value="Actor, i.e. indirect direction of communication"/>
    <property>
      <code value="abstract"/>
      <valueBoolean value="true"/>
    </property>
    <concept>
      <code value="both"/>
      <display value="sender and/or receiver"/>
      <definition value="both: sender+receiver resp. creator+consumer"/>
      <property>
        <code value="parent"/>
        <valueCode value="Actor"/>
      </property>
      <property>
        <code value="abstract"/>
        <valueBoolean value="true"/>
      </property>
      <property>
        <code value="comment"/>
        <valueString
                     value="an actor can only do one thing at a certain point in time. Therefore, both is not allowed and only listed for documentation."/>
      </property>
    </concept>
    <concept>
      <code value="sender"/>
      <display value="sender"/>
      <definition value="sender (transmitter) of data"/>
      <property>
        <code value="parent"/>
        <valueCode value="Actor"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="transport"/>
      </property>
      <property>
        <code value="comment"/>
        <valueString
                     value="Sender does not necessarily need to create the instance."/>
      </property>
    </concept>
    <concept>
      <code value="receiver"/>
      <display value="receiver"/>
      <definition value="receiver of data"/>
      <property>
        <code value="parent"/>
        <valueCode value="Actor"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="transport"/>
      </property>
    </concept>
    <concept>
      <code value="creator"/>
      <display value="creator"/>
      <definition value="creator of data"/>
      <property>
        <code value="parent"/>
        <valueCode value="Actor"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="content"/>
      </property>
      <property>
        <code value="comment"/>
        <valueString
                     value="Creator does not necessarily need to send the instance."/>
      </property>
    </concept>
    <concept>
      <code value="consumer"/>
      <display value="consumer"/>
      <definition value="Consumer of data"/>
      <property>
        <code value="parent"/>
        <valueCode value="Actor"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="content"/>
      </property>
    </concept>
    <concept>
      <code value="router"/>
      <display value="router"/>
      <definition value="router of data: shall be receiver and sender!"/>
      <property>
        <code value="parent"/>
        <valueCode value="Actor"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="transport"/>
      </property>
      <property>
        <code value="abstract"/>
        <valueBoolean value="true"/>
      </property>
      <property>
        <code value="comment"/>
        <valueString
                     value="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."/>
      </property>
    </concept>
  </concept>
  <concept>
    <code value="Device"/>
    <display value="Device for Activity"/>
    <definition value="Device to be used for the activity"/>
    <property>
      <code value="abstract"/>
      <valueBoolean value="true"/>
    </property>
    <concept>
      <code value="screen"/>
      <display value="screen"/>
      <definition value="screen/display"/>
      <property>
        <code value="parent"/>
        <valueCode value="Device"/>
      </property>
      <concept>
        <code value="wideScreen"/>
        <display value="wide screen"/>
        <definition value="wide screen/display"/>
        <property>
          <code value="parent"/>
          <valueCode value="screen"/>
        </property>
      </concept>
      <concept>
        <code value="radScreen"/>
        <display value="radiologic screen"/>
        <definition
                    value="screen/display capable of showing radiologic results"/>
        <property>
          <code value="parent"/>
          <valueCode value="screen"/>
        </property>
      </concept>
    </concept>
    <concept>
      <code value="printer"/>
      <display value="printer"/>
      <definition value="printer"/>
      <property>
        <code value="parent"/>
        <valueCode value="Device"/>
      </property>
      <concept>
        <code value="laserPrinter"/>
        <display value="laser printer"/>
        <definition value="laser printer"/>
        <property>
          <code value="parent"/>
          <valueCode value="printer"/>
        </property>
      </concept>
      <concept>
        <code value="matrixPrinter"/>
        <display value="matrix printer"/>
        <definition value="matrix printer"/>
        <property>
          <code value="parent"/>
          <valueCode value="printer"/>
        </property>
        <property>
          <code value="comment"/>
          <valueString
                       value="Sometimes it is important to use a matrix printer, esp. for creating carbon copies."/>
        </property>
      </concept>
    </concept>
    <concept>
      <code value="portableStorage"/>
      <display value="portable storage device"/>
      <definition value="portable storage device"/>
      <property>
        <code value="parent"/>
        <valueCode value="Device"/>
      </property>
      <concept>
        <code value="usbStick"/>
        <display value="usb stick"/>
        <definition value="USB Stick"/>
        <property>
          <code value="parent"/>
          <valueCode value="portableStorage"/>
        </property>
      </concept>
      <concept>
        <code value="tapeDrive"/>
        <display value="tape drive"/>
        <definition value="tape drive"/>
        <property>
          <code value="parent"/>
          <valueCode value="portableStorage"/>
        </property>
      </concept>
    </concept>
  </concept>
  <concept>
    <code value="Media"/>
    <display value="Media"/>
    <definition value="different media to be used with specialised devices"/>
    <property>
      <code value="abstract"/>
      <valueBoolean value="true"/>
    </property>
    <concept>
      <code value="paper"/>
      <display value="paper"/>
      <definition value="paper"/>
      <property>
        <code value="parent"/>
        <valueCode value="Media"/>
      </property>
    </concept>
    <concept>
      <code value="stick"/>
      <display value="stick"/>
      <definition value="stick"/>
      <property>
        <code value="parent"/>
        <valueCode value="Media"/>
      </property>
    </concept>
    <concept>
      <code value="disc"/>
      <display value="disc"/>
      <definition value="disc"/>
      <property>
        <code value="parent"/>
        <valueCode value="Media"/>
      </property>
    </concept>
    <concept>
      <code value="tape"/>
      <display value="tape"/>
      <definition value="tape"/>
      <property>
        <code value="parent"/>
        <valueCode value="Media"/>
      </property>
    </concept>
  </concept>
  <concept>
    <code value="ElementLevel"/>
    <display value="Level of Application"/>
    <definition
                value="On which level to apply this obligation: root, node, or leaf"/>
    <property>
      <code value="abstract"/>
      <valueBoolean value="true"/>
    </property>
    <concept>
      <code value="root"/>
      <display value="on root node"/>
      <definition value="apply obligation on root node only"/>
      <property>
        <code value="parent"/>
        <valueCode value="ElementLevel"/>
      </property>
      <property>
        <code value="converse"/>
        <valueCode value="notRoot"/>
      </property>
    </concept>
    <concept>
      <code value="node"/>
      <display value="on any node"/>
      <definition value="apply on any node that is not root or leaf"/>
      <property>
        <code value="parent"/>
        <valueCode value="ElementLevel"/>
      </property>
    </concept>
    <concept>
      <code value="leaf"/>
      <display value="on leaf node"/>
      <definition value="apply on leaf node only"/>
      <property>
        <code value="parent"/>
        <valueCode value="ElementLevel"/>
      </property>
    </concept>
    <concept>
      <code value="all"/>
      <display value="on all levels"/>
      <definition value="application on all levels possible"/>
      <property>
        <code value="parent"/>
        <valueCode value="ElementLevel"/>
      </property>
    </concept>
    <concept>
      <code value="notRoot"/>
      <display value="all but root"/>
      <definition value="apply on non-root nodes only"/>
      <property>
        <code value="parent"/>
        <valueCode value="ElementLevel"/>
      </property>
      <property>
        <code value="converse"/>
        <valueCode value="root"/>
      </property>
    </concept>
    <concept>
      <code value="notLeaf"/>
      <display value="all but leaf"/>
      <definition value="apply on non-leaf nodes"/>
      <property>
        <code value="parent"/>
        <valueCode value="ElementLevel"/>
      </property>
    </concept>
  </concept>
  <concept>
    <code value="Activity"/>
    <display value="Activity"/>
    <definition value="Activities, aka of general obligation"/>
    <property>
      <code value="abstract"/>
      <valueBoolean value="true"/>
    </property>
    <concept>
      <code value="FunctionalObligations"/>
      <display value="Functional Obligations"/>
      <definition
                  value="Functional Obligation describing processsing functionalities"/>
      <property>
        <code value="abstract"/>
        <valueBoolean value="true"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="Activity"/>
      </property>
      <concept>
        <code value="ProducerObligations"/>
        <display value="Resource Producer Obligations"/>
        <property>
          <code value="parent"/>
          <valueCode value="FunctionalObligations"/>
        </property>
        <property>
          <code value="abstract"/>
          <valueBoolean value="true"/>
        </property>
        <concept>
          <code value="send"/>
          <display value="send"/>
          <definition value="convey instance with values to somewhere"/>
          <property>
            <code value="parent"/>
            <valueCode value="ProducerObligations"/>
          </property>
          <property>
            <code value="parent"/>
            <valueCode value="sender"/>
          </property>
          <property>
            <code value="applyOn"/>
            <valueCode value="root"/>
          </property>
        </concept>
        <concept>
          <code value="populate"/>
          <display value="populate"/>
          <definition value="populate with values from somewhere"/>
          <property>
            <code value="parent"/>
            <valueCode value="ProducerObligations"/>
          </property>
          <property>
            <code value="parent"/>
            <valueCode value="creator"/>
          </property>
          <property>
            <code value="comment"/>
            <valueString
                         value="prohibited elements can be expressed by 'SHALL NOT send'."/>
          </property>
          <concept>
            <code value="from-ui"/>
            <display value="from UI"/>
            <definition
                        value="Take the data from UI, so that the user has the ability to enter it."/>
            <property>
              <code value="parent"/>
              <valueCode value="populate"/>
            </property>
          </concept>
          <concept>
            <code value="from-store"/>
            <display value="from persistence layer"/>
            <definition value="Take data from storage/persistence layer."/>
            <property>
              <code value="parent"/>
              <valueCode value="populate"/>
            </property>
          </concept>
          <concept>
            <code value="generate"/>
            <display value="generate this data"/>
            <definition value="This data can be generated."/>
            <property>
              <code value="parent"/>
              <valueCode value="populate"/>
            </property>
            <concept>
              <code value="from-other"/>
              <display value="generate from other values"/>
              <definition
                          value="This data can be generated from other data."/>
              <property>
                <code value="parent"/>
                <valueCode value="generate"/>
              </property>
            </concept>
            <concept>
              <code value="sequence"/>
              <display value="generate a sequence number"/>
              <property>
                <code value="parent"/>
                <valueCode value="generate"/>
              </property>
            </concept>
          </concept>
          <concept>
            <code value="from-input"/>
            <display value="from input stream"/>
            <definition value="As a router, take data from input stream."/>
            <property>
              <code value="parent"/>
              <valueCode value="populate"/>
            </property>
            <property>
              <code value="parent"/>
              <valueCode value="router"/>
            </property>
          </concept>
          <concept>
            <code value="as-constant"/>
            <display value="constant"/>
            <definition
                        value="added as constant to the data, no special treatment done internally"/>
            <property>
              <code value="parent"/>
              <valueCode value="populate"/>
            </property>
          </concept>
          <concept>
            <code value="into-narrative"/>
            <display value="narrative"/>
            <definition
                        value="added to the narrative, no special treatment done internally"/>
            <property>
              <code value="parent"/>
              <valueCode value="populate"/>
            </property>
          </concept>
        </concept>
      </concept>
      <concept>
        <code value="ConsumerObligations"/>
        <display value="Resource Consumer Obligations"/>
        <definition value="Obligation for Consumer"/>
        <property>
          <code value="parent"/>
          <valueCode value="FunctionalObligations"/>
        </property>
        <property>
          <code value="abstract"/>
          <valueBoolean value="true"/>
        </property>
        <property>
          <code value="parent"/>
          <valueCode value="receiver"/>
        </property>
        <concept>
          <code value="receive"/>
          <display value="receive"/>
          <definition value="receive data form somewhere"/>
          <property>
            <code value="parent"/>
            <valueCode value="ConsumerObligations"/>
          </property>
          <property>
            <code value="parent"/>
            <valueCode value="receiver"/>
          </property>
          <property>
            <code value="applyOn"/>
            <valueCode value="root"/>
          </property>
        </concept>
        <concept>
          <code value="process"/>
          <display value="process"/>
          <definition
                      value="handle data from instances as needed for general message consumption, store permitted."/>
          <property>
            <code value="parent"/>
            <valueCode value="ConsumerObligations"/>
          </property>
          <property>
            <code value="parent"/>
            <valueCode value="consumer"/>
          </property>
          <property>
            <code value="comment"/>
            <valueString
                         value="elements that are to be ignored can be expressed by 'SHALL NOT process'."/>
          </property>
          <concept>
            <code value="follow-up"/>
            <display value="follow-up activity"/>
            <definition value="what to do internally"/>
            <property>
              <code value="parent"/>
              <valueCode value="process"/>
            </property>
            <concept>
              <code value="display"/>
              <display value="display/present (UI)"/>
              <definition value="present the data on a display"/>
              <property>
                <code value="parent"/>
                <valueCode value="follow-up"/>
              </property>
            </concept>
            <concept>
              <code value="persist"/>
              <display value="persist"/>
              <definition value="persist/store the data somewhere"/>
              <property>
                <code value="parent"/>
                <valueCode value="router"/>
              </property>
              <property>
                <code value="parent"/>
                <valueCode value="follow-up"/>
              </property>
              <concept>
                <code value="archive"/>
                <display value="archive"/>
                <definition
                            value="persist/store the archive which ensures longlasting access"/>
                <property>
                  <code value="parent"/>
                  <valueCode value="persist"/>
                </property>
              </concept>
              <concept>
                <code value="in-database"/>
                <display value="persist in a database"/>
                <definition value="persist in a database"/>
                <property>
                  <code value="parent"/>
                  <valueCode value="persist"/>
                </property>
                <property>
                  <code value="comment"/>
                  <valueString
                               value="too explicit/dedicated, concerns application details"/>
                </property>
              </concept>
              <concept>
                <code value="in-file"/>
                <display value="store in a file"/>
                <definition value="store in a file"/>
                <property>
                  <code value="parent"/>
                  <valueCode value="persist"/>
                </property>
                <property>
                  <code value="comment"/>
                  <valueString
                               value="too explicit/dedicated, concerns application details"/>
                </property>
              </concept>
            </concept>
            <concept>
              <code value="print"/>
              <display value="print"/>
              <definition value="print the data (somewhere)"/>
              <property>
                <code value="parent"/>
                <valueCode value="follow-up"/>
              </property>
            </concept>
            <concept>
              <code value="eval"/>
              <display value="evaluate"/>
              <definition
                          value="consider the data in order to interpret other correctly"/>
              <property>
                <code value="parent"/>
                <valueCode value="follow-up"/>
              </property>
            </concept>
            <concept>
              <code value="integrate"/>
              <display value="integrate into data"/>
              <definition
                          value="to UPDATE existing data by merging other data with the existing data in a controlled manner"/>
              <property>
                <code value="parent"/>
                <valueCode value="follow-up"/>
              </property>
            </concept>
          </concept>
          <concept>
            <code value="respond"/>
            <display value="activity as response"/>
            <definition value="what to respond"/>
            <property>
              <code value="parent"/>
              <valueCode value="process"/>
            </property>
            <concept>
              <code value="warning"/>
              <display value="return warnings"/>
              <definition value="return possible warnings"/>
              <property>
                <code value="parent"/>
                <valueCode value="respond"/>
              </property>
              <concept>
                <code value="error"/>
                <display value="return error"/>
                <definition value="return possible errors"/>
                <property>
                  <code value="parent"/>
                  <valueCode value="warning"/>
                </property>
              </concept>
              <concept>
                <code value="reject-invalid"/>
                <display value="reject invalid data"/>
                <definition value="reject if data is invalid"/>
                <property>
                  <code value="parent"/>
                  <valueCode value="warning"/>
                </property>
              </concept>
            </concept>
            <concept>
              <code value="accept-invalid"/>
              <display value="accept invalid data"/>
              <definition value="accept if data is invalid"/>
              <property>
                <code value="parent"/>
                <valueCode value="respond"/>
              </property>
            </concept>
          </concept>
        </concept>
      </concept>
      <concept>
        <code value="ExchangerObligations"/>
        <display value="Resource Exchanger Obligations"/>
        <definition value="needs clarification ..."/>
        <property>
          <code value="parent"/>
          <valueCode value="FunctionalObligations"/>
        </property>
        <property>
          <code value="parent"/>
          <valueCode value="both"/>
        </property>
        <property>
          <code value="parent"/>
          <valueCode value="router"/>
        </property>
        <property>
          <code value="abstract"/>
          <valueBoolean value="true"/>
        </property>
        <concept>
          <code value="route"/>
          <display value="route  forward"/>
          <definition value="as a router forward to the next recipient"/>
          <property>
            <code value="parent"/>
            <valueCode value="ExchangerObligations"/>
          </property>
          <property>
            <code value="abstract"/>
            <valueBoolean value="false"/>
          </property>
        </concept>
      </concept>
      <concept>
        <code value="OtherObligations"/>
        <display value="Resource Other Obligations"/>
        <definition
                    value="Other obligations beyond what has been described above."/>
        <property>
          <code value="parent"/>
          <valueCode value="FunctionalObligations"/>
        </property>
        <property>
          <code value="abstract"/>
          <valueBoolean value="true"/>
        </property>
        <concept>
          <code value="explain"/>
          <display value="explain"/>
          <definition
                      value="provide an explanation in a capability statement how this element is handled"/>
          <property>
            <code value="parent"/>
            <valueCode value="OtherObligations"/>
          </property>
        </concept>
        <concept>
          <code value="document"/>
          <display value="document"/>
          <definition
                      value="document the use of this element in a separate document"/>
          <property>
            <code value="parent"/>
            <valueCode value="OtherObligations"/>
          </property>
        </concept>
      </concept>
    </concept>
    <concept>
      <code value="DataObligation"/>
      <display value="Obligations on Data"/>
      <definition value="Data Obligations"/>
      <property>
        <code value="abstract"/>
        <valueBoolean value="true"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="Activity"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="creator"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="consumer"/>
      </property>
      <property>
        <code value="comment"/>
        <valueString
                     value="The following codes may apply to creator and consumer. For example 'do not modify from UI'."/>
      </property>
      <concept>
        <code value="expected"/>
        <display value="expected"/>
        <definition value="data fits to expectations/specification"/>
        <property>
          <code value="parent"/>
          <valueCode value="DataObligation"/>
        </property>
        <property>
          <code value="comment"/>
          <valueString
                       value="This applies to recipients and denotes that the data should be present according to the specification, i.e. is specified."/>
        </property>
        <concept>
          <code value="unaltered"/>
          <display value="preserve"/>
          <definition value="preserve what you get"/>
          <property>
            <code value="parent"/>
            <valueCode value="expected"/>
          </property>
          <property>
            <code value="comment"/>
            <valueString
                         value="That may also be used to take data from UI without any modifications."/>
          </property>
          <concept>
            <code value="exactly"/>
            <display value="exactly"/>
            <definition value="exactly what is specified, nothing else"/>
            <property>
              <code value="parent"/>
              <valueCode value="unaltered"/>
            </property>
            <property>
              <code value="comment"/>
              <valueString
                           value="not sure whether 'unaltered' is sufficient so that we can drop that!?"/>
            </property>
          </concept>
        </concept>
        <concept>
          <code value="modify"/>
          <display value="modify"/>
          <definition value="allow for modifications of the data"/>
          <property>
            <code value="parent"/>
            <valueCode value="expected"/>
          </property>
          <property>
            <code value="parent"/>
            <valueCode value="consumer"/>
          </property>
          <property>
            <code value="comment"/>
            <valueString value="Covers all types of modifications to data."/>
          </property>
          <concept>
            <code value="assocation"/>
            <display value="assocation"/>
            <definition value="taken by association"/>
            <property>
              <code value="parent"/>
              <valueCode value="modify"/>
            </property>
          </concept>
          <concept>
            <code value="equivalent"/>
            <display value="equivalent"/>
            <definition value="in an equivalent way"/>
            <property>
              <code value="parent"/>
              <valueCode value="modify"/>
            </property>
          </concept>
          <concept>
            <code value="translate"/>
            <display value="translate"/>
            <definition
                        value="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 value="parent"/>
              <valueCode value="modify"/>
            </property>
            <concept>
              <code value="semantically"/>
              <display value="translate semantically"/>
              <definition
                          value="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>
                <code value="parent"/>
                <valueCode value="translate"/>
              </property>
            </concept>
            <concept>
              <code value="clinically"/>
              <display value="translate clinically"/>
              <definition
                          value="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>
                <code value="parent"/>
                <valueCode value="translate"/>
              </property>
            </concept>
          </concept>
          <concept>
            <code value="reference"/>
            <display value="reference"/>
            <definition
                        value="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 value="parent"/>
              <valueCode value="modify"/>
            </property>
          </concept>
          <concept>
            <code value="truncate"/>
            <display value="cut off data"/>
            <definition
                        value="cut off remaining characters from the data thereby shortening the data"/>
            <property>
              <code value="parent"/>
              <valueCode value="modify"/>
            </property>
          </concept>
          <concept>
            <code value="more-details"/>
            <display value="additional details/values"/>
            <definition
                        value="extends the expected data with more/own information, e.g. appartment if street is specified"/>
            <property>
              <code value="parent"/>
              <valueCode value="modify"/>
            </property>
            <property>
              <code value="parent"/>
              <valueCode value="creator"/>
            </property>
            <property>
              <code value="comment"/>
              <valueString
                           value="This is in principle not a modification..."/>
            </property>
          </concept>
          <concept>
            <code value="more-structure"/>
            <display value="additional substructures"/>
            <definition
                        value="provides the data with more granular details, e.g. house number for an address line"/>
            <property>
              <code value="parent"/>
              <valueCode value="modify"/>
            </property>
            <property>
              <code value="parent"/>
              <valueCode value="creator"/>
            </property>
            <property>
              <code value="comment"/>
              <valueString
                           value="This is in principle not a modification..."/>
            </property>
          </concept>
          <concept>
            <code value="missing"/>
            <display value="data is missing/not available"/>
            <definition value="provide a null-flavor/absent reason"/>
            <property>
              <code value="parent"/>
              <valueCode value="modify"/>
            </property>
            <property>
              <code value="parent"/>
              <valueCode value="creator"/>
            </property>
            <property>
              <code value="comment"/>
              <valueString
                           value="In FHIR this is the permission/indication for a data-absent-reason or something similar. In V3 it is null-flavor."/>
            </property>
          </concept>
          <concept>
            <code value="constant"/>
            <display value="added as a constant"/>
            <definition
                        value="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 value="parent"/>
              <valueCode value="modify"/>
            </property>
          </concept>
        </concept>
      </concept>
      <concept>
        <code value="unexpected"/>
        <display value="unexpected values"/>
        <definition
                    value="how to manage unexpected data (as sender or receiver)"/>
        <property>
          <code value="parent"/>
          <valueCode value="DataObligation"/>
        </property>
        <concept>
          <code value="replaces"/>
          <display value="new/other values"/>
          <definition value="replaces the expected data by something else"/>
          <property>
            <code value="parent"/>
            <valueCode value="unexpected"/>
          </property>
        </concept>
        <concept>
          <code value="consider"/>
          <display value="consider unexpected values"/>
          <definition
                      value="take vare of values that are coming but not described/specified. Allows for warnings"/>
          <property>
            <code value="parent"/>
            <valueCode value="unexpected"/>
          </property>
        </concept>
      </concept>
    </concept>
  </concept>
  <concept>
    <code value="CombinedObligations"/>
    <display value="combined obligations"/>
    <definition
                value="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 value="abstract"/>
      <valueBoolean value="true"/>
    </property>
    <property>
      <code value="comment"/>
      <valueString
                   value="The following list is just a snippet and should be enhanced during the discussion..."/>
    </property>
    <property>
      <code value="comment"/>
      <valueString
                   value="The hierarchy has to discarded because not everything is explicitly modelled."/>
    </property>
  </concept>
  <concept>
    <code value="MAY:populate"/>
    <display value="MAY populate with data"/>
    <definition value="Conformant applications MAY take and provide data."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="MAY"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="populate"/>
    </property>
    <property>
      <code value="comment"/>
      <valueString value="is this a useful combination?"/>
    </property>
  </concept>
  <concept>
    <code value="MAY:populate:missing"/>
    <display value="MAY populate data element with why orig data is missing"/>
    <definition
                value="Conformant applications MAY populate the element why the original data is missing."/>
    <property>
      <code value="parent"/>
      <valueCode value="MAY:populate"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="missing"/>
    </property>
  </concept>
  <concept>
    <code value="MAY:(populate)from-ui"/>
    <display value="MAY populate with data taken from ui"/>
    <definition
                value="Conformant applications MAY take data from a UI and provide it."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="MAY"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="from-ui"/>
    </property>
  </concept>
  <concept>
    <code value="SHOULD:populate"/>
    <display value="SHOULD populate with data"/>
    <definition
                value="Conformant applications SHOULD take and provide data."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="MAY:populate"/>
    </property>
  </concept>
  <concept>
    <code value="MAY:(populate)into-narrative"/>
    <display value="MAY populate into-narrative"/>
    <definition
                value="Conformant applications MAY populate element into narrative text as well."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHOULD:populate"/>
    </property>
    <property>
      <code value="comment"/>
      <valueString
                   value="discuss whether other representation forms are better"/>
    </property>
  </concept>
  <concept>
    <code value="SHOULD:(populate)into-narrative"/>
    <display value="SHOULD populate into-narrative"/>
    <definition
                value="Conformant applications SHOULD populate element into narrative text as well."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="MAY:(populate)into-narrative"/>
    </property>
    <property>
      <code value="comment"/>
      <valueString
                   value="discuss whether other representation forms are better"/>
    </property>
  </concept>
  <concept>
    <code value="SHALL:(populate)into-narrative"/>
    <display value="SHALL populate into-narrative"/>
    <definition
                value="Conformant applications SHALL populate element into narrative text as well."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHOULD:(populate)into-narrative"/>
    </property>
    <property>
      <code value="comment"/>
      <valueString
                   value="discuss whether other representation forms are better"/>
    </property>
  </concept>
  <concept>
    <code value="SHOULDNOT:(populate)into-narrative"/>
    <display value="SHOULD NOT populate into-narrative"/>
    <definition
                value="Conformant applications SHOULD NOT populate element into narrative text."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="converse"/>
      <valueCode value="SHOULD:(populate)into-narrative"/>
    </property>
  </concept>
  <concept>
    <code value="SHALLNOT:(populate)into-narrative"/>
    <display value="SHALL NOT populate into-narrative"/>
    <definition
                value="Conformant applications SHALL NOT populate element into narrative text."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHOULDNOT:(populate)into-narrative"/>
    </property>
    <property>
      <code value="converse"/>
      <valueCode value="SHALL:(populate)into-narrative"/>
    </property>
  </concept>
  <concept>
    <code value="SHALL:populate"/>
    <display value="SHALL populate with data"/>
    <definition
                value="Conformant applications SHOULD take and provide data."/>
    <property>
      <code value="parent"/>
      <valueCode value="SHOULD:populate"/>
    </property>
  </concept>
  <concept>
    <code value="SHOULD:(populate)from-ui"/>
    <display value="SHOULD populate with data taken from ui"/>
    <definition
                value="Conformant applications SHOULD take data from a UI and provide it."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHOULD"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="from-ui"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="creator"/>
    </property>
  </concept>
  <concept>
    <code value="SHALL:(populate)from-ui"/>
    <display value="SHALL populate data taken from ui"/>
    <definition
                value="Conformant applications SHALL take data from a UI and provide it."/>
    <property>
      <code value="parent"/>
      <valueCode value="SHOULD:(populate)from-ui"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHALL"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="from-ui"/>
    </property>
    <property>
      <code value="testable"/>
      <valueCode value="testableByHuman"/>
    </property>
  </concept>
  <concept>
    <code value="SHALL:(populate)from-ui:more-details"/>
    <display
             value="SHALL populate with data taken from ui perhaps with more details"/>
    <definition
                value="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 value="parent"/>
      <valueCode value="SHALL:(populate)from-ui"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="more-details"/>
    </property>
  </concept>
  <concept>
    <code value="SHOULD:send"/>
    <display value="SHOULD send the instance"/>
    <definition value="Conformant applications SHOULD send the instance."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <concept>
      <code value="SHALL:send"/>
      <display value="SHALL send the instance"/>
      <definition value="Conformant applications SHALL send the instance."/>
      <property>
        <code value="parent"/>
        <valueCode value="CombinedObligations"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALL"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="send"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="sender"/>
      </property>
      <property>
        <code value="applyOn"/>
        <valueCode value="root"/>
      </property>
      <property>
        <code value="testable"/>
        <valueCode value="testableByMachine"/>
      </property>
    </concept>
  </concept>
  <concept>
    <code value="MAY:persist"/>
    <display value="MAY store the data"/>
    <definition value="Conformant applications MAY store the data."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="MAY"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="persist"/>
    </property>
  </concept>
  <concept>
    <code value="SHOULD:persist"/>
    <display value="SHOULD store the data"/>
    <definition value="Conformant applications SHOULD store the data."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <concept>
      <code value="SHALL:persist"/>
      <display value="SHALL store the data somewhere"/>
      <definition
                  value="Conformant applications SHALL store the data in some way."/>
      <property>
        <code value="parent"/>
        <valueCode value="CombinedObligations"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALL"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="persist"/>
      </property>
      <property>
        <code value="testable"/>
        <valueCode value="testableByHuman"/>
      </property>
      <concept>
        <code value="SHALL:persist:exactly"/>
        <display
                 value="SHALL store the data somewhere, but exactly as is sent"/>
        <definition
                    value="Conformant applications SHALL store the data in a way that the originally data from the instance can be reestablished."/>
        <property>
          <code value="parent"/>
          <valueCode value="CombinedObligations"/>
        </property>
        <property>
          <code value="parent"/>
          <valueCode value="SHALL"/>
        </property>
        <property>
          <code value="parent"/>
          <valueCode value="persist"/>
        </property>
        <property>
          <code value="parent"/>
          <valueCode value="exactly"/>
        </property>
        <property>
          <code value="testable"/>
          <valueCode value="testableByHuman"/>
        </property>
      </concept>
    </concept>
    <concept>
      <code value="SHOULD:(persist)in-database"/>
      <display value="SHOULD store the data in a database"/>
      <definition
                  value="Conformant applications are asked to store the data in a database."/>
      <property>
        <code value="parent"/>
        <valueCode value="CombinedObligations"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHOULD"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="persist"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="in-database"/>
      </property>
    </concept>
    <concept>
      <code value="SHALLNOT:populate:more-details"/>
      <display value="SHALL NOT populate more data than is specified"/>
      <definition
                  value="Conformant applications SHALL NOT populatae more data than is specified. The specification is closed."/>
      <property>
        <code value="parent"/>
        <valueCode value="CombinedObligations"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALLNOT"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="populate"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="more-details"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="creator"/>
      </property>
      <property>
        <code value="negation"/>
        <valueBoolean value="true"/>
      </property>
      <property>
        <code value="testable"/>
        <valueCode value="testableByMachine"/>
      </property>
    </concept>
    <concept>
      <code value="SHALLNOT:populate:missing"/>
      <display
               value="SHALL NOT populate info about missing data, ie. data absent reasons"/>
      <definition
                  value="Conformant applications SHALL NOT populate a reason for missing information."/>
      <property>
        <code value="parent"/>
        <valueCode value="CombinedObligations"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALLNOT"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="populate"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="missing"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="creator"/>
      </property>
      <property>
        <code value="negation"/>
        <valueBoolean value="true"/>
      </property>
    </concept>
    <concept>
      <code value="MAY:populate:more-structure"/>
      <display value="MAY populate the data in more structured way"/>
      <definition
                  value="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 value="parent"/>
        <valueCode value="CombinedObligations"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="MAY"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="populate"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="more-structure"/>
      </property>
    </concept>
    <concept>
      <code value="SHALLNOT:follow-up:truncate"/>
      <display value="SHALL NOT truncate data"/>
      <definition value="Conformant applications SHALL NOT cut off data."/>
      <property>
        <code value="parent"/>
        <valueCode value="CombinedObligations"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALLNOT"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="follow-up"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="truncate"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="consumer"/>
      </property>
      <property>
        <code value="negation"/>
        <valueBoolean value="true"/>
      </property>
      <property>
        <code value="testable"/>
        <valueCode value="testableByHuman"/>
      </property>
    </concept>
    <concept>
      <code value="MAY:modify"/>
      <display value="MAY modify the data"/>
      <definition
                  value="Conformant applications MAY, i.e. are allowed to modify the data."/>
      <property>
        <code value="parent"/>
        <valueCode value="CombinedObligations"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="MAY"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="modify"/>
      </property>
      <property>
        <code value="comment"/>
        <valueString value="nice hint"/>
      </property>
    </concept>
    <concept>
      <code value="MAY:print"/>
      <display value="MAY print data"/>
      <definition value="Conformant applications MAY print the data."/>
      <property>
        <code value="parent"/>
        <valueCode value="CombinedObligations"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="MAY"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="print"/>
      </property>
    </concept>
    <concept>
      <code value="SHOULD:print"/>
      <display value="SHOULD print data"/>
      <definition value="Conformant applications SHOULD print the data."/>
      <property>
        <code value="parent"/>
        <valueCode value="CombinedObligations"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHOULD"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="print"/>
      </property>
    </concept>
    <concept>
      <code value="SHALL:print"/>
      <display value="SHALL print data"/>
      <definition value="Conformant applications SHALL print the data."/>
      <property>
        <code value="parent"/>
        <valueCode value="CombinedObligations"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALL"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="print"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="consumer"/>
      </property>
      <property>
        <code value="testable"/>
        <valueCode value="testableByHuman"/>
      </property>
    </concept>
  </concept>
  <concept>
    <code value="SHALLNOT:(populate):in-narrative"/>
    <display value="SHALL NOT add to narrative"/>
    <definition
                value="Conformant applications SHALL NOT add this data to the narrative."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHALLNOT"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="populate"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="into-narrative"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="creator"/>
    </property>
    <property>
      <code value="testable"/>
      <valueCode value="testableByHuman"/>
    </property>
  </concept>
  <concept>
    <code value="MAY:process"/>
    <display value="MAY process the data"/>
    <definition
                value="Conformant applications MAY process the data somehow."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="MAY"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="process"/>
    </property>
    <property>
      <code value="comment"/>
      <valueString
                   value="There is no further specification in which way the data can be processed."/>
    </property>
  </concept>
  <concept>
    <code value="SHOULD:process"/>
    <display value="SHOULD process the data"/>
    <definition
                value="Conformant applications SHOULD process the data in some meaningful way."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="MAY:process"/>
    </property>
  </concept>
  <concept>
    <code value="SHALL:process"/>
    <display value="SHALL process the data"/>
    <definition
                value="Conformant applications SHALL process the data in some meaningful way."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHOULD:process"/>
    </property>
  </concept>
  <concept>
    <code value="SHOULDNOT:process"/>
    <display value="SHOULD NOT process the data"/>
    <definition
                value="Conformant applications SHOULD NOT process the data in some meaningful way."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHOULDNOT"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="process"/>
    </property>
  </concept>
  <concept>
    <code value="SHALLNOT:process"/>
    <display value="SHALL NOT process the data"/>
    <definition
                value="Conformant applications SHALL NOT process the data in some meaningful way."/>
    <property>
      <code value="parent"/>
      <valueCode value="SHOULDNOT:process"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHALLNOT"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="process"/>
    </property>
  </concept>
  <concept>
    <code value="SHOULD:document"/>
    <display value="SHOULD document how the data is used"/>
    <definition
                value="Conformant applications SHOULD document the way the data is used in some (meaningful) way."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHOULD"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="document"/>
    </property>
  </concept>
  <concept>
    <code value="SHALL:document"/>
    <display value="SHALL document how the data is used"/>
    <definition
                value="Conformant applications SHALL document the way the data is used in some (meaningful) way."/>
    <property>
      <code value="parent"/>
      <valueCode value="SHOULD:document"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHALL"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="document"/>
    </property>
  </concept>
  <concept>
    <code value="SHOULD:display"/>
    <display value="SHOULD display the data"/>
    <definition
                value="Conformant applications SHOULD display the data in some meaningful way."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHOULD"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="display"/>
    </property>
  </concept>
  <concept>
    <code value="SHALL:display"/>
    <display value="SHALL display the data"/>
    <definition
                value="Conformant applications SHALL display the data in some meaningful way."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHOULD:display"/>
    </property>
  </concept>
  <concept>
    <code value="SHOULDNOT:modify"/>
    <display value="SHOULD NOT modify the data"/>
    <definition
                value="Conformant applications SHOULD NOT modiify the data in any way."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHOULDNOT"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="modify"/>
    </property>
  </concept>
  <concept>
    <code value="SHALLNOT:modify"/>
    <display value="SHALL NOT modify the data"/>
    <definition
                value="Conformant applications SHALL NOT modiify the data in any way."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHALLNOT"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="modify"/>
    </property>
  </concept>
  <concept>
    <code value="MAYNOT:process"/>
    <display value="MAY NOT process data"/>
    <definition
                value="Conformant applications MAY NOT process data, aka of ignoring."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="MAYNOT"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="process"/>
    </property>
    <property>
      <code value="comment"/>
      <valueString value="this is equivalent to MAY:ignore."/>
    </property>
  </concept>
  <concept>
    <code value="SHOULD:reject-invalid"/>
    <display value="SHOULD reject invalid data"/>
    <definition value="Conformant applications SHOULD reject invalid data."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHOULD"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="reject-invalid"/>
    </property>
  </concept>
  <concept>
    <code value="SHALL:reject-invalid"/>
    <display value="SHALL reject invalid data"/>
    <definition value="Conformant applications SHALL reject invalid data."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHALL"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="reject-invalid"/>
    </property>
  </concept>
  <concept>
    <code value="SHOULD:accept-invalid"/>
    <display value="SHOULD accept invalid data"/>
    <definition value="Conformant applications SHOULD accept invalid data."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHOULD"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="accept-invalid"/>
    </property>
  </concept>
  <concept>
    <code value="SHALL:accept-invalid"/>
    <display value="SHALL accept invalid data"/>
    <definition value="Conformant applications SHALL accept invalid data."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHALL"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="accept-invalid"/>
    </property>
  </concept>
  <concept>
    <code value="SHOULD:receive"/>
    <display value="SHOULD be able to receive the data"/>
    <definition
                value="Conformant applications SHOULD be able to receive the data."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHOULD"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="receive"/>
    </property>
  </concept>
  <concept>
    <code value="SHALL:receive"/>
    <display value="SHALL be able to receive the data"/>
    <definition
                value="Conformant applications SHALL be able to receive the data."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHALL"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="receive"/>
    </property>
  </concept>
  <concept>
    <code value="SHOULDNOT:error"/>
    <display value="SHOULD NOT return an error to the sender of the data"/>
    <definition
                value="Conformant applications SHOULD NOT reurn an erorr to the sender of the data."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHOULDNOT"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="error"/>
    </property>
  </concept>
  <concept>
    <code value="SHALLNOT:error"/>
    <display value="SHALL NOT return an error to the sender of the data"/>
    <definition
                value="Conformant applications SHALL NOT reurn an erorr to the sender of the data."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="SHALLNOT"/>
    </property>
    <property>
      <code value="parent"/>
      <valueCode value="error"/>
    </property>
  </concept>
  <concept>
    <code value="ForeignStandards"/>
    <display value="concept codes from other standards"/>
    <definition
                value="Other standards use specific terms for optionality/usage that should be conceptualized here."/>
    <property>
      <code value="parent"/>
      <valueCode value="CombinedObligations"/>
    </property>
    <property>
      <code value="abstract"/>
      <valueBoolean value="true"/>
    </property>
  </concept>
  <concept>
    <code value="v2"/>
    <display value="v2 concept codes"/>
    <definition value="optionality/usage codes from v2"/>
    <property>
      <code value="parent"/>
      <valueCode value="ForeignStandards"/>
    </property>
    <property>
      <code value="abstract"/>
      <valueBoolean value="true"/>
    </property>
    <concept>
      <code value="v2-r"/>
      <display value="v2: R"/>
      <definition value="required in v2.x"/>
      <property>
        <code value="parent"/>
        <valueCode value="v2"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALL"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="populate"/>
      </property>
      <property>
        <code value="comment"/>
        <valueString value="minCard = 1"/>
      </property>
    </concept>
    <concept>
      <code value="v2-re"/>
      <display value="v2: RE"/>
      <definition value="required but may be empty in v2.x"/>
      <property>
        <code value="parent"/>
        <valueCode value="v2"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALL"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="populate"/>
      </property>
      <property>
        <code value="comment"/>
        <valueString value="minCard = 0"/>
      </property>
    </concept>
    <concept>
      <code value="v2-x"/>
      <display value="v2: X"/>
      <definition value="forbidden in v2"/>
      <property>
        <code value="parent"/>
        <valueCode value="v2"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHOULDNOT"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="populate"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="process"/>
      </property>
    </concept>
    <concept>
      <code value="v2-b"/>
      <display value="v2: B"/>
      <definition value="backwards use in v2 only"/>
      <property>
        <code value="parent"/>
        <valueCode value="v2"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHOULDNOT"/>
      </property>
    </concept>
    <concept>
      <code value="v2-w"/>
      <display value="v2: W"/>
      <definition value="withdrawn use in v2 only"/>
      <property>
        <code value="parent"/>
        <valueCode value="v2"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHOULDNOT"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="populate"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="process"/>
      </property>
    </concept>
  </concept>
  <concept>
    <code value="v3"/>
    <display value="V3 concept codes"/>
    <definition value="optionality/usage codes from V3/CDA"/>
    <property>
      <code value="parent"/>
      <valueCode value="ForeignStandards"/>
    </property>
    <property>
      <code value="abstract"/>
      <valueBoolean value="true"/>
    </property>
    <concept>
      <code value="v3-m"/>
      <display value="v3: M"/>
      <definition value="mandatory in IHE V3"/>
      <property>
        <code value="parent"/>
        <valueCode value="v3"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALL"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="populate"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="exactly"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALLNOT:populate:missing"/>
      </property>
      <property>
        <code value="comment"/>
        <valueString
                     value="A value must be present and null-flavors are not allowed; to be combined with minCard = 1"/>
      </property>
    </concept>
    <concept>
      <code value="v3-r"/>
      <display value="v3: R"/>
      <definition value="required in IHE V3"/>
      <property>
        <code value="parent"/>
        <valueCode value="v3"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALL"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="populate"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="MAY:populate:missing"/>
      </property>
      <property>
        <code value="comment"/>
        <valueString
                     value="A value must be present but it can be a null-flavors"/>
      </property>
    </concept>
    <concept>
      <code value="v3-x"/>
      <display value="v3: X"/>
      <definition value="forbidden in IHE V3"/>
      <property>
        <code value="parent"/>
        <valueCode value="v3"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALLNOT"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="populate"/>
      </property>
    </concept>
  </concept>
  <concept>
    <code value="ihe"/>
    <display value="IHE concept codes"/>
    <definition value="optionality/usage codes from IHE"/>
    <property>
      <code value="parent"/>
      <valueCode value="ForeignStandards"/>
    </property>
    <property>
      <code value="abstract"/>
      <valueBoolean value="true"/>
    </property>
    <concept>
      <code value="ihe-r"/>
      <display value="IHE: R"/>
      <definition value="required in IHE v2.x specs"/>
      <property>
        <code value="parent"/>
        <valueCode value="ihe"/>
      </property>
    </concept>
    <concept>
      <code value="ihe-r2"/>
      <display value="IHE: R2"/>
      <definition value="R2 in IHE v2.x specs"/>
      <property>
        <code value="parent"/>
        <valueCode value="ihe"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALL:process"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHOULD:populate"/>
      </property>
      <property>
        <code value="comment"/>
        <valueString
                     value="This is interpreted as the receiver has to support it, but when becoming the sender it is not really necessary to return it again"/>
      </property>
    </concept>
    <concept>
      <code value="ihe-x"/>
      <display value="IHE: X"/>
      <definition value="XX in IHE v2.x specs"/>
      <property>
        <code value="parent"/>
        <valueCode value="ihe"/>
      </property>
      <property>
        <code value="comment"/>
        <valueString value="forbidden?"/>
      </property>
    </concept>
  </concept>
  <concept>
    <code value="xDT"/>
    <display value="German xDT standards"/>
    <definition
                value="The German xDT standard family has a very specific set of codes and is just presented here for completeness and demonstration purposes"/>
    <property>
      <code value="parent"/>
      <valueCode value="ForeignStandards"/>
    </property>
    <property>
      <code value="abstract"/>
      <valueBoolean value="true"/>
    </property>
    <property>
      <code value="comment"/>
      <valueString
                   value="all concept codes are to processed by the receiver; different requirements for sender"/>
    </property>
    <concept>
      <code value="xDT-M"/>
      <display value="xDT: M"/>
      <definition value="MUSS in xDT (unbedingtes Mussfeld)"/>
      <property>
        <code value="parent"/>
        <valueCode value="xDT"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALL"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALL:process"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALL:populate"/>
      </property>
      <property>
        <code value="comment"/>
        <valueString value="minCard=1"/>
      </property>
    </concept>
    <concept>
      <code value="xDT-m"/>
      <display value="xDT: m"/>
      <definition value="muss in xDT (bedingtes Mussfeld)"/>
      <property>
        <code value="parent"/>
        <valueCode value="xDT"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALL"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALL:process"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALL:populate"/>
      </property>
      <property>
        <code value="comment"/>
        <valueString value="depends on the value of another field"/>
      </property>
    </concept>
    <concept>
      <code value="xDT-K"/>
      <display value="xDT: K"/>
      <definition value="KANN in xDT (unbedingts KANNfeld)"/>
      <property>
        <code value="parent"/>
        <valueCode value="xDT"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALL"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALL:process"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALL:populate"/>
      </property>
    </concept>
    <concept>
      <code value="xDT-k"/>
      <display value="xDT: k"/>
      <definition value="kann in xDT (bedingtes Kannfeld)"/>
      <property>
        <code value="parent"/>
        <valueCode value="xDT"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALL"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALL:process"/>
      </property>
      <property>
        <code value="parent"/>
        <valueCode value="SHALL:populate"/>
      </property>
      <property>
        <code value="comment"/>
        <valueString value="depends on the value of another field"/>
      </property>
    </concept>
  </concept>
</CodeSystem>