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