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