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 - TTL Representation

Draft as of 2024-05-08

Raw ttl | Download

@prefix fhir: <http://hl7.org/fhir/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# - resource -------------------------------------------------------------------

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