<?xml version="1.0" encoding="UTF-8"?>
<!--
Template derived pattern
===========================================
ID: 1.3.6.1.4.1.19376.1.3.1.6
Name: Laborergebnisse (Laboratory Observation)
Description: 
-->
<pattern xmlns="http://purl.oclc.org/dsdl/schematron"
         id="template-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000">
   <title>Laborergebnisse (Laboratory Observation)</title>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]
Item: (LaboratoryObservation)
-->

   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']"
         id="tmp-r-7ffdfec4-c9ce-48bb-99b8-8856d28f216b">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="string(@classCode)=('OBS')">(LaboratoryObservation): Der Wert von @classCode MUSS 'OBS' sein.</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="string(@moodCode)=('EVN')">(LaboratoryObservation): Der Wert von @moodCode MUSS 'EVN' sein.</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:templateId[@root='1.3.6.1.4.1.19376.1.3.1.6'])&gt;=1 ">(LaboratoryObservation): Element hl7:templateId[@root='1.3.6.1.4.1.19376.1.3.1.6'] ist required [min 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:templateId[@root='1.3.6.1.4.1.19376.1.3.1.6'])&lt;=1">(LaboratoryObservation): Element hl7:templateId[@root='1.3.6.1.4.1.19376.1.3.1.6'] kommt zu häufig vor [max 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:id)&lt;=1">(LaboratoryObservation): Element hl7:id kommt zu häufig vor [max 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:code[concat(@code,@codeSystem)=doc('include/voc-1.2.40.0.34.10.44-DYNAMIC.xml')/*/valueSet/conceptList/concept/concat(@code,@codeSystem) or (@nullFlavor=doc('include/voc-1.2.40.0.34.10.44-DYNAMIC.xml')/*/valueSet/conceptList/exception/@code) or @nullFlavor])&gt;=1 ">(LaboratoryObservation): Element hl7:code[concat(@code,@codeSystem)=doc('include/voc-1.2.40.0.34.10.44-DYNAMIC.xml')/*/valueSet/conceptList/concept/concat(@code,@codeSystem) or (@nullFlavor=doc('include/voc-1.2.40.0.34.10.44-DYNAMIC.xml')/*/valueSet/conceptList/exception/@code) or @nullFlavor] ist required [min 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:code[concat(@code,@codeSystem)=doc('include/voc-1.2.40.0.34.10.44-DYNAMIC.xml')/*/valueSet/conceptList/concept/concat(@code,@codeSystem) or (@nullFlavor=doc('include/voc-1.2.40.0.34.10.44-DYNAMIC.xml')/*/valueSet/conceptList/exception/@code) or @nullFlavor])&lt;=1">(LaboratoryObservation): Element hl7:code[concat(@code,@codeSystem)=doc('include/voc-1.2.40.0.34.10.44-DYNAMIC.xml')/*/valueSet/conceptList/concept/concat(@code,@codeSystem) or (@nullFlavor=doc('include/voc-1.2.40.0.34.10.44-DYNAMIC.xml')/*/valueSet/conceptList/exception/@code) or @nullFlavor] kommt zu häufig vor [max 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:text)&lt;=1">(LaboratoryObservation): Element hl7:text kommt zu häufig vor [max 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:statusCode[@code='completed' or @code='aborted'])&gt;=1 and not(hl7:statusCode[@code='completed' or @code='aborted']/@nullFlavor)">(LaboratoryObservation): Element hl7:statusCode[@code='completed' or @code='aborted'] ist mandatory [min 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:statusCode[@code='completed' or @code='aborted'])&lt;=1">(LaboratoryObservation): Element hl7:statusCode[@code='completed' or @code='aborted'] kommt zu häufig vor [max 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:effectiveTime)&gt;=1 ">(LaboratoryObservation): Element hl7:effectiveTime ist required [min 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:effectiveTime)&lt;=1">(LaboratoryObservation): Element hl7:effectiveTime kommt zu häufig vor [max 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:value)&lt;=1">(LaboratoryObservation): Element hl7:value kommt zu häufig vor [max 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:participant[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.3.1.5'])&lt;=1">(LaboratoryObservation): Element hl7:participant[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.3.1.5'] kommt zu häufig vor [max 1x].</assert>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:templateId[@root='1.3.6.1.4.1.19376.1.3.1.6']
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:templateId[@root='1.3.6.1.4.1.19376.1.3.1.6']"
         id="tmp-r-9e1267cf-5cec-400d-82d7-371cb78cde35">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="(local-name-from-QName(resolve-QName(@xsi:type,.))='II' and namespace-uri-from-QName(resolve-QName(@xsi:type,.))='urn:hl7-org:v3') or not(@xsi:type)">(LaboratoryObservation): Wenn eine @xsi:type Instruktion anwesend ist MUSS diese den Wert "{urn:hl7-org:v3}:II" haben, gefunden "{<value-of select="namespace-uri-from-QName(resolve-QName(@xsi:type,.))"/>}:<value-of select="local-name-from-QName(resolve-QName(@xsi:type,.))"/>"</assert>
      <extends rule="II"/>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="string(@root)=('1.3.6.1.4.1.19376.1.3.1.6')">(LaboratoryObservation): Der Wert von @root MUSS '1.3.6.1.4.1.19376.1.3.1.6' sein.</assert>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:id
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:id"
         id="tmp-r-fd3e7815-f0dd-4902-b383-419afb38a05e">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="(local-name-from-QName(resolve-QName(@xsi:type,.))='II' and namespace-uri-from-QName(resolve-QName(@xsi:type,.))='urn:hl7-org:v3') or not(@xsi:type)">(LaboratoryObservation): Wenn eine @xsi:type Instruktion anwesend ist MUSS diese den Wert "{urn:hl7-org:v3}:II" haben, gefunden "{<value-of select="namespace-uri-from-QName(resolve-QName(@xsi:type,.))"/>}:<value-of select="local-name-from-QName(resolve-QName(@xsi:type,.))"/>"</assert>
      <extends rule="II"/>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:code[concat(@code,@codeSystem)=doc('include/voc-1.2.40.0.34.10.44-DYNAMIC.xml')/*/valueSet/conceptList/concept/concat(@code,@codeSystem) or (@nullFlavor=doc('include/voc-1.2.40.0.34.10.44-DYNAMIC.xml')/*/valueSet/conceptList/exception/@code) or @nullFlavor]
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:code[concat(@code,@codeSystem)=doc('include/voc-1.2.40.0.34.10.44-DYNAMIC.xml')/*/valueSet/conceptList/concept/concat(@code,@codeSystem) or (@nullFlavor=doc('include/voc-1.2.40.0.34.10.44-DYNAMIC.xml')/*/valueSet/conceptList/exception/@code) or @nullFlavor]"
         id="tmp-r-bbf2ac65-0e19-47ed-ac44-f3846c062dda">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="(local-name-from-QName(resolve-QName(@xsi:type,.))='CE' and namespace-uri-from-QName(resolve-QName(@xsi:type,.))='urn:hl7-org:v3') or not(@xsi:type)">(LaboratoryObservation): Wenn eine @xsi:type Instruktion anwesend ist MUSS diese den Wert "{urn:hl7-org:v3}:CE" haben, gefunden "{<value-of select="namespace-uri-from-QName(resolve-QName(@xsi:type,.))"/>}:<value-of select="local-name-from-QName(resolve-QName(@xsi:type,.))"/>"</assert>
      <extends rule="CE"/>
      <let name="theCode" value="@code"/>
      <let name="theCodeSystem" value="@codeSystem"/>
      <let name="theCodeSystemVersion" value="@codeSystemVersion"/>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="@nullFlavor or exists(doc('include/voc-1.2.40.0.34.10.44-DYNAMIC.xml')/*/valueSet[conceptList/concept[@code = $theCode][@codeSystem = $theCodeSystem][not(@codeSystemVersion) or @codeSystemVersion=$theCodeSystemVersion] or completeCodeSystem[@codeSystem=$theCodeSystem][not(@codeSystemVersion) or @codeSystemVersion=$theCodeSystemVersion]])">(LaboratoryObservation): Der Elementinhalt MUSS einer von 'ELGA_Laborparameter (DYNAMIC)' sein.</assert>
      <let name="theNullFlavor" value="@nullFlavor"/>
      <let name="validNullFlavorsFound"
           value="exists(doc('include/voc-1.2.40.0.34.10.44-DYNAMIC.xml')/*/valueSet/conceptList/exception[@code = $theNullFlavor][@codeSystem = '2.16.840.1.113883.5.1008'])"/>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="not(@nullFlavor) or $validNullFlavorsFound">(LaboratoryObservation): Der fehlende Wert '<value-of select="@nullFlavor"/>' für @code MUSS gewählt werden aus dem Set gültiger null flavors für dieses Attribut oder denen assoziiert mit Value Set ELGA_Laborparameter (DYNAMIC).</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="not(@nullFlavor) or @nullFlavor!='OTH' or (hl7:originalText)">(LaboratoryObservation): Wenn code/@nullFlavor=OTH dann MUSS code/originalText und optional code/translation anwesend sein.</assert>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:text
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:text"
         id="tmp-r-1e867cb4-87fc-4fdc-a07e-180e58424629">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="(local-name-from-QName(resolve-QName(@xsi:type,.))='ED' and namespace-uri-from-QName(resolve-QName(@xsi:type,.))='urn:hl7-org:v3') or not(@xsi:type)">(LaboratoryObservation): Wenn eine @xsi:type Instruktion anwesend ist MUSS diese den Wert "{urn:hl7-org:v3}:ED" haben, gefunden "{<value-of select="namespace-uri-from-QName(resolve-QName(@xsi:type,.))"/>}:<value-of select="local-name-from-QName(resolve-QName(@xsi:type,.))"/>"</assert>
      <extends rule="ED"/>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:statusCode[@code='completed' or @code='aborted']
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:statusCode[@code='completed' or @code='aborted']"
         id="tmp-r-87ec1aad-68e7-4db3-8493-af44b8775c6d">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="(local-name-from-QName(resolve-QName(@xsi:type,.))='CS' and namespace-uri-from-QName(resolve-QName(@xsi:type,.))='urn:hl7-org:v3') or not(@xsi:type)">(LaboratoryObservation): Wenn eine @xsi:type Instruktion anwesend ist MUSS diese den Wert "{urn:hl7-org:v3}:CS" haben, gefunden "{<value-of select="namespace-uri-from-QName(resolve-QName(@xsi:type,.))"/>}:<value-of select="local-name-from-QName(resolve-QName(@xsi:type,.))"/>"</assert>
      <extends rule="CS"/>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="@nullFlavor or (@code='completed') or (@code='aborted')">(LaboratoryObservation): Der Elementinhalt MUSS einer von 'code 'completed' oder code 'aborted'' sein.</assert>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:effectiveTime
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:effectiveTime"
         id="tmp-r-d1c0444e-7cbd-4763-9f3f-df272ddf98e2">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="(local-name-from-QName(resolve-QName(@xsi:type,.))='TS' and namespace-uri-from-QName(resolve-QName(@xsi:type,.))='urn:hl7-org:v3') or not(@xsi:type)">(LaboratoryObservation): Wenn eine @xsi:type Instruktion anwesend ist MUSS diese den Wert "{urn:hl7-org:v3}:TS" haben, gefunden "{<value-of select="namespace-uri-from-QName(resolve-QName(@xsi:type,.))"/>}:<value-of select="local-name-from-QName(resolve-QName(@xsi:type,.))"/>"</assert>
      <extends rule="TS"/>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:value
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:value"
         id="tmp-r-c71d16ad-d5c1-4971-b1ea-c5c1dda86ed2">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:translation)&lt;=1">(LaboratoryObservation): Element hl7:translation kommt zu häufig vor [max 1x].</assert>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:value/hl7:translation
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:value/hl7:translation"
         id="tmp-r-62a2c436-8e0b-4967-b325-11cd44e61d4a">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="(local-name-from-QName(resolve-QName(@xsi:type,.))='PQR' and namespace-uri-from-QName(resolve-QName(@xsi:type,.))='urn:hl7-org:v3') or not(@xsi:type)">(LaboratoryObservation): Wenn eine @xsi:type Instruktion anwesend ist MUSS diese den Wert "{urn:hl7-org:v3}:PQR" haben, gefunden "{<value-of select="namespace-uri-from-QName(resolve-QName(@xsi:type,.))"/>}:<value-of select="local-name-from-QName(resolve-QName(@xsi:type,.))"/>"</assert>
      <extends rule="PQR"/>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:interpretationCode
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:interpretationCode"
         id="tmp-r-4871577d-2cbc-4d01-805c-eb1f880defb4">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="(local-name-from-QName(resolve-QName(@xsi:type,.))='CE' and namespace-uri-from-QName(resolve-QName(@xsi:type,.))='urn:hl7-org:v3') or not(@xsi:type)">(LaboratoryObservation): Wenn eine @xsi:type Instruktion anwesend ist MUSS diese den Wert "{urn:hl7-org:v3}:CE" haben, gefunden "{<value-of select="namespace-uri-from-QName(resolve-QName(@xsi:type,.))"/>}:<value-of select="local-name-from-QName(resolve-QName(@xsi:type,.))"/>"</assert>
      <extends rule="CE"/>
      <let name="theCode" value="@code"/>
      <let name="theCodeSystem" value="@codeSystem"/>
      <let name="theCodeSystemVersion" value="@codeSystemVersion"/>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="@nullFlavor or exists(doc('include/voc-1.2.40.0.34.10.13-DYNAMIC.xml')/*/valueSet[conceptList/concept[@code = $theCode][@codeSystem = $theCodeSystem][not(@codeSystemVersion) or @codeSystemVersion=$theCodeSystemVersion] or completeCodeSystem[@codeSystem=$theCodeSystem][not(@codeSystemVersion) or @codeSystemVersion=$theCodeSystemVersion]])">(LaboratoryObservation): Der Elementinhalt MUSS einer von 'ELGA_ObservationInterpretation (DYNAMIC)' sein.</assert>
      <let name="theNullFlavor" value="@nullFlavor"/>
      <let name="validNullFlavorsFound"
           value="exists(doc('include/voc-1.2.40.0.34.10.13-DYNAMIC.xml')/*/valueSet/conceptList/exception[@code = $theNullFlavor][@codeSystem = '2.16.840.1.113883.5.1008'])"/>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="not(@nullFlavor) or $validNullFlavorsFound">(LaboratoryObservation): Der fehlende Wert '<value-of select="@nullFlavor"/>' für @code MUSS gewählt werden aus dem Set gültiger null flavors für dieses Attribut oder denen assoziiert mit Value Set ELGA_ObservationInterpretation (DYNAMIC).</assert>
   </rule>

   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:entryRelationship[hl7:act[hl7:templateId/@root='1.2.40.0.34.11.4.3.2' and hl7:templateId/@root='2.16.840.1.113883.10.20.1.40' and hl7:templateId/@root='1.3.6.1.4.1.19376.1.5.3.1.4.2']]
Item: (LaboratoryObservation)
-->
   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:entryRelationship[hl7:act[hl7:templateId/@root='1.2.40.0.34.11.4.3.2' and hl7:templateId/@root='2.16.840.1.113883.10.20.1.40' and hl7:templateId/@root='1.3.6.1.4.1.19376.1.5.3.1.4.2']]">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="string(@typeCode)=('COMP')">(LaboratoryObservation): Der Wert von @typeCode MUSS 'COMP' sein.</assert>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:participant[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.3.1.5']
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:participant[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.3.1.5']"
         id="tmp-r-062b70c1-2879-448b-aa68-394a6f74f835">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="string(@typeCode)=('AUTHEN')">(LaboratoryObservation): Der Wert von @typeCode MUSS 'AUTHEN' sein.</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:templateId[@root='1.3.6.1.4.1.19376.1.3.3.1.5'])&gt;=1 ">(LaboratoryObservation): Element hl7:templateId[@root='1.3.6.1.4.1.19376.1.3.3.1.5'] ist required [min 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:templateId[@root='1.3.6.1.4.1.19376.1.3.3.1.5'])&lt;=1">(LaboratoryObservation): Element hl7:templateId[@root='1.3.6.1.4.1.19376.1.3.3.1.5'] kommt zu häufig vor [max 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:time)&gt;=1 ">(LaboratoryObservation): Element hl7:time ist required [min 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:time)&lt;=1">(LaboratoryObservation): Element hl7:time kommt zu häufig vor [max 1x].</assert>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:participant[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.3.1.5']/hl7:templateId[@root='1.3.6.1.4.1.19376.1.3.3.1.5']
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:participant[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.3.1.5']/hl7:templateId[@root='1.3.6.1.4.1.19376.1.3.3.1.5']"
         id="tmp-r-f9bf934f-8cd5-475d-a808-4332c9165a93">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="(local-name-from-QName(resolve-QName(@xsi:type,.))='II' and namespace-uri-from-QName(resolve-QName(@xsi:type,.))='urn:hl7-org:v3') or not(@xsi:type)">(LaboratoryObservation): Wenn eine @xsi:type Instruktion anwesend ist MUSS diese den Wert "{urn:hl7-org:v3}:II" haben, gefunden "{<value-of select="namespace-uri-from-QName(resolve-QName(@xsi:type,.))"/>}:<value-of select="local-name-from-QName(resolve-QName(@xsi:type,.))"/>"</assert>
      <extends rule="II"/>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="string(@root)=('1.3.6.1.4.1.19376.1.3.3.1.5')">(LaboratoryObservation): Der Wert von @root MUSS '1.3.6.1.4.1.19376.1.3.3.1.5' sein.</assert>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:participant[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.3.1.5']/hl7:time
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:participant[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.3.1.5']/hl7:time"
         id="tmp-r-f8bf444d-4798-4448-9a55-b0bdb3cef843">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="(local-name-from-QName(resolve-QName(@xsi:type,.))='IVL_TS' and namespace-uri-from-QName(resolve-QName(@xsi:type,.))='urn:hl7-org:v3') or not(@xsi:type)">(LaboratoryObservation): Wenn eine @xsi:type Instruktion anwesend ist MUSS diese den Wert "{urn:hl7-org:v3}:IVL_TS" haben, gefunden "{<value-of select="namespace-uri-from-QName(resolve-QName(@xsi:type,.))"/>}:<value-of select="local-name-from-QName(resolve-QName(@xsi:type,.))"/>"</assert>
      <extends rule="IVL_TS"/>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:participant[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.3.1.5']/hl7:participantRole
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:participant[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.3.1.5']/hl7:participantRole"
         id="tmp-r-5ff6a40b-0c4c-4786-baa7-97c3e2e689b0">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:id)&gt;=1 and not(hl7:id/@nullFlavor)">(LaboratoryObservation): Element hl7:id ist mandatory [min 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:id)&lt;=1">(LaboratoryObservation): Element hl7:id kommt zu häufig vor [max 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:addr)&gt;=1 ">(LaboratoryObservation): Element hl7:addr ist required [min 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:addr)&lt;=1">(LaboratoryObservation): Element hl7:addr kommt zu häufig vor [max 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:telecom)&gt;=1 ">(LaboratoryObservation): Element hl7:telecom ist required [min 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:playingEntity)&gt;=1 and not(hl7:playingEntity/@nullFlavor)">(LaboratoryObservation): Element hl7:playingEntity ist mandatory [min 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:playingEntity)&lt;=1">(LaboratoryObservation): Element hl7:playingEntity kommt zu häufig vor [max 1x].</assert>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:participant[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.3.1.5']/hl7:participantRole/hl7:id
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:participant[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.3.1.5']/hl7:participantRole/hl7:id"
         id="tmp-r-77ab6395-4bca-4940-b81f-398635e6d518">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="(local-name-from-QName(resolve-QName(@xsi:type,.))='II' and namespace-uri-from-QName(resolve-QName(@xsi:type,.))='urn:hl7-org:v3') or not(@xsi:type)">(LaboratoryObservation): Wenn eine @xsi:type Instruktion anwesend ist MUSS diese den Wert "{urn:hl7-org:v3}:II" haben, gefunden "{<value-of select="namespace-uri-from-QName(resolve-QName(@xsi:type,.))"/>}:<value-of select="local-name-from-QName(resolve-QName(@xsi:type,.))"/>"</assert>
      <extends rule="II"/>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:participant[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.3.1.5']/hl7:participantRole/hl7:addr
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:participant[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.3.1.5']/hl7:participantRole/hl7:addr"
         id="tmp-r-3e128c08-31b4-4d40-96d0-c67b3095bbb9">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="(local-name-from-QName(resolve-QName(@xsi:type,.))='AD' and namespace-uri-from-QName(resolve-QName(@xsi:type,.))='urn:hl7-org:v3') or not(@xsi:type)">(LaboratoryObservation): Wenn eine @xsi:type Instruktion anwesend ist MUSS diese den Wert "{urn:hl7-org:v3}:AD" haben, gefunden "{<value-of select="namespace-uri-from-QName(resolve-QName(@xsi:type,.))"/>}:<value-of select="local-name-from-QName(resolve-QName(@xsi:type,.))"/>"</assert>
      <extends rule="AD"/>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:participant[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.3.1.5']/hl7:participantRole/hl7:telecom
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:participant[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.3.1.5']/hl7:participantRole/hl7:telecom"
         id="tmp-r-06031f1d-6e1b-4ac4-87e6-80c996bf464e">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="(local-name-from-QName(resolve-QName(@xsi:type,.))='TEL' and namespace-uri-from-QName(resolve-QName(@xsi:type,.))='urn:hl7-org:v3') or not(@xsi:type)">(LaboratoryObservation): Wenn eine @xsi:type Instruktion anwesend ist MUSS diese den Wert "{urn:hl7-org:v3}:TEL" haben, gefunden "{<value-of select="namespace-uri-from-QName(resolve-QName(@xsi:type,.))"/>}:<value-of select="local-name-from-QName(resolve-QName(@xsi:type,.))"/>"</assert>
      <extends rule="TEL.AT"/>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:participant[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.3.1.5']/hl7:participantRole/hl7:playingEntity
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:participant[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.3.1.5']/hl7:participantRole/hl7:playingEntity"
         id="tmp-r-3fc7e38d-8d47-4eee-acaa-543c6d7442d3">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:name)&gt;=1 and not(hl7:name/@nullFlavor)">(LaboratoryObservation): Element hl7:name ist mandatory [min 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:name)&lt;=1">(LaboratoryObservation): Element hl7:name kommt zu häufig vor [max 1x].</assert>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:participant[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.3.1.5']/hl7:participantRole/hl7:playingEntity/hl7:name
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:participant[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.3.1.5']/hl7:participantRole/hl7:playingEntity/hl7:name"
         id="tmp-r-9d755c29-4b00-437f-a2d0-7c6be9f94472">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="(local-name-from-QName(resolve-QName(@xsi:type,.))='PN' and namespace-uri-from-QName(resolve-QName(@xsi:type,.))='urn:hl7-org:v3') or not(@xsi:type)">(LaboratoryObservation): Wenn eine @xsi:type Instruktion anwesend ist MUSS diese den Wert "{urn:hl7-org:v3}:PN" haben, gefunden "{<value-of select="namespace-uri-from-QName(resolve-QName(@xsi:type,.))"/>}:<value-of select="local-name-from-QName(resolve-QName(@xsi:type,.))"/>"</assert>
      <extends rule="PN"/>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:referenceRange
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:referenceRange"
         id="tmp-r-c6904f34-8d0e-4369-811a-4764b042772d">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="string(@typeCode)=('REFV')">(LaboratoryObservation): Der Wert von @typeCode MUSS 'REFV' sein.</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:observationRange)&gt;=1 and not(hl7:observationRange/@nullFlavor)">(LaboratoryObservation): Element hl7:observationRange ist mandatory [min 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:observationRange)&lt;=1">(LaboratoryObservation): Element hl7:observationRange kommt zu häufig vor [max 1x].</assert>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:referenceRange/hl7:observationRange
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:referenceRange/hl7:observationRange"
         id="tmp-r-44d24dc6-844e-4adb-96c7-f2bcdd045751">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="string(@classCode)=('OBS')">(LaboratoryObservation): Der Wert von @classCode MUSS 'OBS' sein.</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="string(@moodCode)=('EVN.CRT')">(LaboratoryObservation): Der Wert von @moodCode MUSS 'EVN.CRT' sein.</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:text)&lt;=1">(LaboratoryObservation): Element hl7:text kommt zu häufig vor [max 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:value)&lt;=1">(LaboratoryObservation): Element hl7:value kommt zu häufig vor [max 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:interpretationCode[(@code='N' and @codeSystem='2.16.840.1.113883.5.83')])&gt;=1 and not(hl7:interpretationCode[(@code='N' and @codeSystem='2.16.840.1.113883.5.83')]/@nullFlavor)">(LaboratoryObservation): Element hl7:interpretationCode[(@code='N' and @codeSystem='2.16.840.1.113883.5.83')] ist mandatory [min 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:interpretationCode[(@code='N' and @codeSystem='2.16.840.1.113883.5.83')])&lt;=1">(LaboratoryObservation): Element hl7:interpretationCode[(@code='N' and @codeSystem='2.16.840.1.113883.5.83')] kommt zu häufig vor [max 1x].</assert>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:referenceRange/hl7:observationRange/hl7:text
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:referenceRange/hl7:observationRange/hl7:text"
         id="tmp-r-5f24c43c-06de-4cee-8772-7b340793c7be">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="(local-name-from-QName(resolve-QName(@xsi:type,.))='ED' and namespace-uri-from-QName(resolve-QName(@xsi:type,.))='urn:hl7-org:v3') or not(@xsi:type)">(LaboratoryObservation): Wenn eine @xsi:type Instruktion anwesend ist MUSS diese den Wert "{urn:hl7-org:v3}:ED" haben, gefunden "{<value-of select="namespace-uri-from-QName(resolve-QName(@xsi:type,.))"/>}:<value-of select="local-name-from-QName(resolve-QName(@xsi:type,.))"/>"</assert>
      <extends rule="ED"/>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:referenceRange/hl7:observationRange/hl7:value
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:referenceRange/hl7:observationRange/hl7:value"
         id="tmp-r-6706c4e5-bce6-41fb-a239-baa753f70cc8">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="(local-name-from-QName(resolve-QName(@xsi:type,.))='IVL_PQ' and namespace-uri-from-QName(resolve-QName(@xsi:type,.))='urn:hl7-org:v3') or not(@xsi:type)">(LaboratoryObservation): Wenn eine @xsi:type Instruktion anwesend ist MUSS diese den Wert "{urn:hl7-org:v3}:IVL_PQ" haben, gefunden "{<value-of select="namespace-uri-from-QName(resolve-QName(@xsi:type,.))"/>}:<value-of select="local-name-from-QName(resolve-QName(@xsi:type,.))"/>"</assert>
      <extends rule="IVL_PQ"/>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="not(hl7:low/@value) or matches(string(hl7:low/@value), '^[-+]?\d*\.?[0-9]+([eE][-+]?\d+)?$')">(LaboratoryObservation): value/low @value ist keine gültige PQ Zahl<value-of select="hl7:low/@value"/>
      </assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="not(hl7:high/@value) or matches(string(hl7:high/@value), '^[-+]?\d*\.?[0-9]+([eE][-+]?\d+)?$')">(LaboratoryObservation): value/high @value ist keine gültige PQ Zahl<value-of select="hl7:high/@value"/>
      </assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="not(hl7:center/@value) or matches(string(hl7:center/@value), '^[-+]?\d*\.?[0-9]+([eE][-+]?\d+)?$')">(LaboratoryObservation): value/center @value ist keine gültige PQ Zahl<value-of select="hl7:center/@value"/>
      </assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:low)&gt;=1 ">(LaboratoryObservation): Element hl7:low ist required [min 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:low)&lt;=1">(LaboratoryObservation): Element hl7:low kommt zu häufig vor [max 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:high)&gt;=1 ">(LaboratoryObservation): Element hl7:high ist required [min 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="count(hl7:high)&lt;=1">(LaboratoryObservation): Element hl7:high kommt zu häufig vor [max 1x].</assert>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:referenceRange/hl7:observationRange/hl7:value/hl7:low
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:referenceRange/hl7:observationRange/hl7:value/hl7:low"
         id="tmp-r-5676d66c-990b-4eb2-bf2f-65481b7f4955">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="(local-name-from-QName(resolve-QName(@xsi:type,.))='PQ' and namespace-uri-from-QName(resolve-QName(@xsi:type,.))='urn:hl7-org:v3') or not(@xsi:type)">(LaboratoryObservation): Wenn eine @xsi:type Instruktion anwesend ist MUSS diese den Wert "{urn:hl7-org:v3}:PQ" haben, gefunden "{<value-of select="namespace-uri-from-QName(resolve-QName(@xsi:type,.))"/>}:<value-of select="local-name-from-QName(resolve-QName(@xsi:type,.))"/>"</assert>
      <extends rule="PQ"/>
      <let name="digitok"
           value="matches(string(@value), '^[-+]?\d*\.?[0-9]+([eE][-+]?\d+)?$')"/>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="$digitok or @nullFlavor">(LaboratoryObservation): @value ist keine gültige PQ Zahl <value-of select="@value"/>
      </assert>
      <let name="theUnit" value="@unit"/>
      <let name="UCUMtest"
           value="doc('include/voc-UCUM.xml')/*/ucum[@unit=$theUnit]/@message"/>
      <assert role="warning"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="$UCUMtest='OK' or string-length($UCUMtest)=0">(LaboratoryObservation): value/@unit (PQ) MUSS eine gültige UCUM-Einheit sein (<value-of select="$UCUMtest"/>).</assert>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:referenceRange/hl7:observationRange/hl7:value/hl7:high
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:referenceRange/hl7:observationRange/hl7:value/hl7:high"
         id="tmp-r-f4622257-9b67-4368-bd78-9618be88a987">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="(local-name-from-QName(resolve-QName(@xsi:type,.))='PQ' and namespace-uri-from-QName(resolve-QName(@xsi:type,.))='urn:hl7-org:v3') or not(@xsi:type)">(LaboratoryObservation): Wenn eine @xsi:type Instruktion anwesend ist MUSS diese den Wert "{urn:hl7-org:v3}:PQ" haben, gefunden "{<value-of select="namespace-uri-from-QName(resolve-QName(@xsi:type,.))"/>}:<value-of select="local-name-from-QName(resolve-QName(@xsi:type,.))"/>"</assert>
      <extends rule="PQ"/>
      <let name="digitok"
           value="matches(string(@value), '^[-+]?\d*\.?[0-9]+([eE][-+]?\d+)?$')"/>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="$digitok or @nullFlavor">(LaboratoryObservation): @value ist keine gültige PQ Zahl <value-of select="@value"/>
      </assert>
      <let name="theUnit" value="@unit"/>
      <let name="UCUMtest"
           value="doc('include/voc-UCUM.xml')/*/ucum[@unit=$theUnit]/@message"/>
      <assert role="warning"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="$UCUMtest='OK' or string-length($UCUMtest)=0">(LaboratoryObservation): value/@unit (PQ) MUSS eine gültige UCUM-Einheit sein (<value-of select="$UCUMtest"/>).</assert>
   </rule>
   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:referenceRange/hl7:observationRange/hl7:interpretationCode[(@code='N' and @codeSystem='2.16.840.1.113883.5.83')]
Item: (LaboratoryObservation)
-->

   <rule context="*[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:referenceRange/hl7:observationRange/hl7:interpretationCode[(@code='N' and @codeSystem='2.16.840.1.113883.5.83')]"
         id="tmp-r-bd699d6b-7ee8-4cbd-a16b-998ca5f2a71c">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="(local-name-from-QName(resolve-QName(@xsi:type,.))='CE' and namespace-uri-from-QName(resolve-QName(@xsi:type,.))='urn:hl7-org:v3') or not(@xsi:type)">(LaboratoryObservation): Wenn eine @xsi:type Instruktion anwesend ist MUSS diese den Wert "{urn:hl7-org:v3}:CE" haben, gefunden "{<value-of select="namespace-uri-from-QName(resolve-QName(@xsi:type,.))"/>}:<value-of select="local-name-from-QName(resolve-QName(@xsi:type,.))"/>"</assert>
      <extends rule="CE"/>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.3.6.1.4.1.19376.1.3.1.6-2014-12-06T000000.html"
              test="@nullFlavor or (@code='N' and @codeSystem='2.16.840.1.113883.5.83')">(LaboratoryObservation): Der Elementinhalt MUSS einer von 'code 'N' codeSystem '2.16.840.1.113883.5.83'' sein.</assert>
   </rule>

   <!--
Template derived rules for ID: 1.3.6.1.4.1.19376.1.3.1.6
Context: *[hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']]/hl7:observation[hl7:templateId/@root='1.3.6.1.4.1.19376.1.3.1.6']/hl7:performer[hl7:templateId/@root='1.2.40.0.34.11.4.3.3']
Item: (LaboratoryObservation)
--></pattern>
