У меня проблема с проверкой XML-документа, мне нужно добраться до цели с тегами <templateId root="2.16.840.1.113883.10.20.33.4.4"/>
и <entryRelationship>
, должны быть выполнены оба условия, потому что, если эти два условия будут выполнены, я смогу проверить, имеет ли entryRelationship <templateId root="2.16.840.1.113883.10.20.33.4.2"/>
. Я сделал это:
<rule context="//cda:entry/cda:organizer/cda:component/cda:observation[(./templateId/*[@root='2.16.840.1.113883.10.20.33.4.4']) and (./entryRelationship/*[@typeCode='REFR'])]">
<!--<rule context='*[cda:templateId/@root="2.16.840.1.113883.10.20.33.4.4"]'>-->
<assert test="self::cda:entryRelationship[@typeCode='REFR']">
FAIL: CONF-QR-176: The entryRelationship, if present, SHALL contain exactly one [1..1] @typeCode="REFR" (CodeSystem: HL7ActRelationshipType 2.16.840.1.113883.5.1002). Line:
<value-of select="@_line"/>
</assert>
<assert test="count(cda:entryRelationship/cda:observation/cda:templateId[@root='2.16.840.1.113883.10.20.33.4.2'])=1">
FAIL: CONF-QR-177: The entryRelationship, if present,SHALL contain exactly one [1..1] Question Help Text Pattern Observation template (templateId 2.16.840.1.113883.10.20.32.4.19). Line:
<value-of select="@_line"/>
</assert>
</rule>
но не работает, мне нужна помощь, большое спасибо.
Это xml:
<component>
<sequenceNumber value="4"/>
<observation classCode="OBS" moodCode="EVN">
<!--templateID for the Numeric Response Pattern-->
<templateId root="2.16.840.1.113883.10.20.33.4.4"/>
<languageCode></languageCode>
<entryRelationship typeCode="REFR">
<!--templateID for Response Media Pattern template-->
<!--<templateId root="2.16.840.1.113883.10.20.33.4.2"/>-->
</entryRelationship>
<id extension="ob4" root="2.16.840.1.113883.3.1817.1.6"/>
<code code="q4" codeSystem="Continua-Q-OID">
<originalText>How many hours did you sleep last night?</originalText>
</code>
<statusCode code="COMPLETED"/>
<value xsi:type="INT" value="7"/>
<referenceRange typeCode="REFV">
<!--templateID for the Response Reference Range Pattern-->
<templateId root="2.16.840.1.113883.10.20.33.4.3"/>
<observationRange>
<text></text>
<value xsi:type="IVL_INT">
<low value="0"/>
<high value="24"/>
</value>
</observationRange>
</referenceRange>
</observation>
</component>