<?xml version="1.0" encoding="UTF-8"?>
<!--
Template derived pattern
===========================================
ID: 1.2.40.0.34.11.10001
Name: ELGA CDA Dokument Entlassung Ärztlich
Description: 
-->
<pattern xmlns="http://purl.oclc.org/dsdl/schematron"
         id="template-1.2.40.0.34.11.10001-2011-12-19T000000">
   <title>ELGA CDA Dokument Entlassung Ärztlich</title>
   <!--
Template derived rules for ID: 1.2.40.0.34.11.10001
Context: hl7:ClinicalDocument
Item: (CDAEntlassbriefAerztlich)
-->

   <rule context="hl7:ClinicalDocument"
         id="tmp-r-df4ff8a5-c864-452f-8fd4-8818c2fdd97b">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.2.40.0.34.11.10001-2011-12-19T000000.html"
              test="string(@classCode)=('DOCCLIN') or not(@classCode)">(CDAEntlassbriefAerztlich): Der Wert von @classCode MUSS 'DOCCLIN' sein.</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.2.40.0.34.11.10001-2011-12-19T000000.html"
              test="string(@moodCode)=('EVN') or not(@moodCode)">(CDAEntlassbriefAerztlich): Der Wert von @moodCode MUSS 'EVN' sein.</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.2.40.0.34.11.10001-2011-12-19T000000.html"
              test="count(hl7:realmCode)&gt;=1 and not(hl7:realmCode/@nullFlavor)">(CDAEntlassbriefAerztlich): Element hl7:realmCode ist mandatory [min 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.2.40.0.34.11.10001-2011-12-19T000000.html"
              test="count(hl7:realmCode)&lt;=1">(CDAEntlassbriefAerztlich): Element hl7:realmCode kommt zu häufig vor [max 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.2.40.0.34.11.10001-2011-12-19T000000.html"
              test="count(hl7:typeId[@root='2.16.840.1.113883.1.3'])&gt;=1 and not(hl7:typeId[@root='2.16.840.1.113883.1.3']/@nullFlavor)">(CDAEntlassbriefAerztlich): Element hl7:typeId[@root='2.16.840.1.113883.1.3'] ist mandatory [min 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.2.40.0.34.11.10001-2011-12-19T000000.html"
              test="count(hl7:typeId[@root='2.16.840.1.113883.1.3'])&lt;=1">(CDAEntlassbriefAerztlich): Element hl7:typeId[@root='2.16.840.1.113883.1.3'] kommt zu häufig vor [max 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.2.40.0.34.11.10001-2011-12-19T000000.html"
              test="count(hl7:templateId[@root='1.2.40.0.34.11.1'])&gt;=1 and not(hl7:templateId[@root='1.2.40.0.34.11.1']/@nullFlavor)">(CDAEntlassbriefAerztlich): Element hl7:templateId[@root='1.2.40.0.34.11.1'] ist mandatory [min 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.2.40.0.34.11.10001-2011-12-19T000000.html"
              test="count(hl7:templateId[@root='1.2.40.0.34.11.1'])&lt;=1">(CDAEntlassbriefAerztlich): Element hl7:templateId[@root='1.2.40.0.34.11.1'] kommt zu häufig vor [max 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.2.40.0.34.11.10001-2011-12-19T000000.html"
              test="count(hl7:templateId[@root='1.2.40.0.34.11.2'])&gt;=1 and not(hl7:templateId[@root='1.2.40.0.34.11.2']/@nullFlavor)">(CDAEntlassbriefAerztlich): Element hl7:templateId[@root='1.2.40.0.34.11.2'] ist mandatory [min 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.2.40.0.34.11.10001-2011-12-19T000000.html"
              test="count(hl7:templateId[@root='1.2.40.0.34.11.2'])&lt;=1">(CDAEntlassbriefAerztlich): Element hl7:templateId[@root='1.2.40.0.34.11.2'] kommt zu häufig vor [max 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.2.40.0.34.11.10001-2011-12-19T000000.html"
              test="count(hl7:templateId[@root='1.2.40.0.34.11.2.0.1' or @root='1.2.40.0.34.11.2.0.2' or @root='1.2.40.0.34.11.2.0.3'])&gt;=1 and not(hl7:templateId[@root='1.2.40.0.34.11.2.0.1' or @root='1.2.40.0.34.11.2.0.2' or @root='1.2.40.0.34.11.2.0.3']/@nullFlavor)">(CDAEntlassbriefAerztlich): Element hl7:templateId[@root='1.2.40.0.34.11.2.0.1' or @root='1.2.40.0.34.11.2.0.2' or @root='1.2.40.0.34.11.2.0.3'] ist mandatory [min 1x].</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.2.40.0.34.11.10001-2011-12-19T000000.html"
              test="count(hl7:templateId[@root='1.2.40.0.34.11.2.0.1' or @root='1.2.40.0.34.11.2.0.2' or @root='1.2.40.0.34.11.2.0.3'])&lt;=1">(CDAEntlassbriefAerztlich): Element hl7:templateId[@root='1.2.40.0.34.11.2.0.1' or @root='1.2.40.0.34.11.2.0.2' or @root='1.2.40.0.34.11.2.0.3'] kommt zu häufig vor [max 1x].</assert>
   </rule>
   <!--
Template derived rules for ID: 1.2.40.0.34.11.10000
Context: hl7:ClinicalDocument/hl7:realmCode
Item: (FirstCDAHeaderElements)
-->

   <rule context="hl7:ClinicalDocument/hl7:realmCode"
         id="tmp-r-6697ec9d-b74e-460c-842c-a376b142b692">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.2.40.0.34.11.10000-2011-12-19T000000.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)">(FirstCDAHeaderElements): 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.2.40.0.34.11.10000-2011-12-19T000000.html"
              test="@code">(FirstCDAHeaderElements): Attribut @code MUSS vorkommen.</assert>
      <let name="theAttValue"
           value="distinct-values(tokenize(normalize-space(@code),' '))"/>
      <let name="theAttCheck"
           value="distinct-values(document('include/voc-1.2.40.0.34.10.3-DYNAMIC.xml')/*/valueSet/conceptList/concept[@code = $theAttValue]/@code)"/>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.2.40.0.34.11.10000-2011-12-19T000000.html"
              test="not(@code) or count($theAttValue) = count($theAttCheck)">(FirstCDAHeaderElements): Der Wert von code MUSS gewählt werden aus Value Set 'ELGA_RealmCode' (DYNAMIC).</assert>
   </rule>
   <!--
Template derived rules for ID: 1.2.40.0.34.11.10000
Context: hl7:ClinicalDocument/hl7:typeId[@root='2.16.840.1.113883.1.3']
Item: (FirstCDAHeaderElements)
-->

   <rule context="hl7:ClinicalDocument/hl7:typeId[@root='2.16.840.1.113883.1.3']"
         id="tmp-r-6a8c2465-5d48-4a07-a917-dc11aafda427">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.2.40.0.34.11.10000-2011-12-19T000000.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)">(FirstCDAHeaderElements): 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.2.40.0.34.11.10000-2011-12-19T000000.html"
              test="string(@root)=('2.16.840.1.113883.1.3')">(FirstCDAHeaderElements): Der Wert von @root MUSS '2.16.840.1.113883.1.3' sein.</assert>
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.2.40.0.34.11.10000-2011-12-19T000000.html"
              test="string(@extension)=('POCD_HD000040')">(FirstCDAHeaderElements): Der Wert von @extension MUSS 'POCD_HD000040' sein.</assert>
   </rule>
   <!--
Template derived rules for ID: 1.2.40.0.34.11.10000
Context: hl7:ClinicalDocument/hl7:templateId[@root='1.2.40.0.34.11.1']
Item: (FirstCDAHeaderElements)
-->

   <rule context="hl7:ClinicalDocument/hl7:templateId[@root='1.2.40.0.34.11.1']"
         id="tmp-r-43e9b74b-8a30-4b55-8661-def12c9798df">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.2.40.0.34.11.10000-2011-12-19T000000.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)">(FirstCDAHeaderElements): 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.2.40.0.34.11.10000-2011-12-19T000000.html"
              test="string(@root)=('1.2.40.0.34.11.1')">(FirstCDAHeaderElements): Der Wert von @root MUSS '1.2.40.0.34.11.1' sein.</assert>
   </rule>
   <!--
Template derived rules for ID: 1.2.40.0.34.11.10001
Context: hl7:ClinicalDocument/hl7:templateId[@root='1.2.40.0.34.11.2']
Item: (CDAEntlassbriefAerztlich)
-->

   <rule context="hl7:ClinicalDocument/hl7:templateId[@root='1.2.40.0.34.11.2']"
         id="tmp-r-b17eee1b-ef04-49be-aa28-c2f55704dbdf">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.2.40.0.34.11.10001-2011-12-19T000000.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)">(CDAEntlassbriefAerztlich): 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.2.40.0.34.11.10001-2011-12-19T000000.html"
              test="string(@root)=('1.2.40.0.34.11.2')">(CDAEntlassbriefAerztlich): Der Wert von @root MUSS '1.2.40.0.34.11.2' sein.</assert>
   </rule>
   <!--
Template derived rules for ID: 1.2.40.0.34.11.10001
Context: hl7:ClinicalDocument/hl7:templateId[@root='1.2.40.0.34.11.2.0.1' or @root='1.2.40.0.34.11.2.0.2' or @root='1.2.40.0.34.11.2.0.3']
Item: (CDAEntlassbriefAerztlich)
-->

   <rule context="hl7:ClinicalDocument/hl7:templateId[@root='1.2.40.0.34.11.2.0.1' or @root='1.2.40.0.34.11.2.0.2' or @root='1.2.40.0.34.11.2.0.3']"
         id="tmp-r-3ac18442-e61a-4373-93de-a79cd33a27d3">
      <assert role="error"
              see="http://elga.art-decor.org/elga-html-20150713T115013/tmp-1.2.40.0.34.11.10001-2011-12-19T000000.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)">(CDAEntlassbriefAerztlich): 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.2.40.0.34.11.10001-2011-12-19T000000.html"
              test="string(@root)=('1.2.40.0.34.11.2.0.1','1.2.40.0.34.11.2.0.2','1.2.40.0.34.11.2.0.3')">(CDAEntlassbriefAerztlich): Der Wert von @root MUSS '1.2.40.0.34.11.2.0.1','1.2.40.0.34.11.2.0.2','1.2.40.0.34.11.2.0.3' sein.</assert>
   </rule>
</pattern>
