diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d867557a476cb712709ff973f583e06e78a8fe13..67008b636e9e4c8ae5fd343ed632e29a32718664 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -28,6 +28,7 @@ code: - .buildCodeForJavaWithPostgresql variables: P_MAVEN_EXTRA_ARGS: "-DskipIT=true" + P_MAVEN_TEST_SKIP: "true" quality: stage: tests @@ -35,6 +36,7 @@ quality: - .testQualityForJavaWithSonarqube variables: P_MAVEN_IMAGE_TAG: "3.6.3-jdk-11" + P_MAVEN_TEST_SKIP: "true" release/code: stage: release @@ -42,3 +44,5 @@ release/code: - .releaseCodeForJava variables: P_MAVEN_EXTRA_ARGS: "-DskipIT=true" + P_MAVEN_TEST_SKIP: "true" + P_MAVEN_PROFIL: "release" \ No newline at end of file diff --git a/archetype/generated-validator/validator-archetype/src/main/resources/archetype-resources/pom.xml b/archetype/generated-validator/validator-archetype/src/main/resources/archetype-resources/pom.xml index f53c3e68d7103fce9d78965dc2223408c253e361..f1c0952578cafe0537dddb3f3471cda7bf3a8ad9 100644 --- a/archetype/generated-validator/validator-archetype/src/main/resources/archetype-resources/pom.xml +++ b/archetype/generated-validator/validator-archetype/src/main/resources/archetype-resources/pom.xml @@ -219,7 +219,7 @@ <dependency> <groupId>net.ihe.gazelle</groupId> <artifactId>cdabasic-validator-jar</artifactId> - <version>1.1.1</version> + <version>1.1.2</version> </dependency> <dependency> diff --git a/docs/installation-guide.md b/docs/installation-guide.md index 8a1b08528bd1e1a465a760baa049b5576f27c42b..9f44a1846a1e9babe7b1a0f5f3cf7ba9a36e887d 100644 --- a/docs/installation-guide.md +++ b/docs/installation-guide.md @@ -41,6 +41,7 @@ If you worked already with the previous versions of GOC, the following structure - Archetypes - generated-validator - Hl7templates + - goc-tests - gocmodel-jar - hl7templates-model-jar - hl7templates-api-jar @@ -209,6 +210,10 @@ following parameters during install process: This section remains to **run** Gazelle Objects Checker and generate the CDA MBVal validator. we will need the following parameters to run GOC and generate the validator: + + +> Notice: ignoreChoicesPredicates is a new feature to ignore all choices predicates +> (wasn't in the last version ) <table> <thead> <th>Parameters</th> @@ -266,6 +271,13 @@ we will need the following parameters to run GOC and generate the validator: <td>VOID, parameter present ==> it's true, not present ==> it's false</td> <td>not Required (default=false [Not present])</td> </tr> + <tr> + <td>-ignoreChoicesPredicates</td> + <td>Ignore Choices Predicates in generation constraints name (useful to ignore processing Choices for predicates name) </td> + <td>Boolean</td> + <td>VOID, Parameter present ==> It’s True, Not Present (Default) ==> it's False</td> + <td>not Required (default=false [Not present])</td> + </tr> <tr> <td>-versionLabel</td> <td>VersionLabel that will be used during the generation</td> @@ -569,12 +581,17 @@ Available options for `SPECIFICATION` are: <div id='extras'></div> +####10.3 GOC System Testing guide for developers + +You can find more details about System Testing: +- [GOC System Testing guide for developers](https://saskereval-my.sharepoint.com/:w:/g/personal/nabila_aazibou-el-gerrab_kereval_com/EfRES8rEmoVEt0Ty2NPnljMBPfmnWWdJ02YjJw_x-xTPWA?e=wk0EJM) + ## 11. Extras You can find some previous made documentation here _(belong the old GOC, and could probably not represent the actual version)_: -- [GOC Installation guide for developers](https://docs.google.com/document/d/1G5bmLhFKNjOvg_rxEllidTofYrwxBeZG_kigTM0pqXM/edit?usp=sharing) - [Gazelle Object Checker General Public info - GOC](https://docs.google.com/document/d/1265YcvKk983Fna2Y8TI6V9O1wnKqERFAibIlVGYgW20/edit?usp=sharing) +- [GOC Installation guide for developers](https://docs.google.com/document/d/1G5bmLhFKNjOvg_rxEllidTofYrwxBeZG_kigTM0pqXM/edit?usp=sharing) #### Next released documentation diff --git a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/cardinality/cda_cardinality.xml b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/cardinality/cda_cardinality.xml index 99ce50e53204fe0a87b1f113f867f3e1228a0385..48f9317c10b56176f4eef1878a8c8caa29be7d08 100644 --- a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/cardinality/cda_cardinality.xml +++ b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/cardinality/cda_cardinality.xml @@ -42,16 +42,46 @@ <title>CDA For Test</title> <entry> <act classCode="ACT" moodCode="DEF"> - - <!-- Test CONF:0005 "1_n" FALSE [DO NOT UNCOMENT, EXPECTED TO BE MISSING]--> + <!-- Test CONF:0005 "1_1" FALSE [DO NOT UNCOMENT, EXPECTED TO BE MISSING]--> <!-- <realmCode />--> - <!-- Test CONF:0004 "1_n" TRUE--> + <!-- Test CONF:0004 "0_2" TRUE--> <typeId extension="123456789" root="2.16.840.1.113883.1.3" /> <!-- Test CONF:0006 "1_1" TRUE--> <code code="12345-6" /> + <!-- Test CONF:0008 "0_n" True --> + <priorityCode nullFlavor="UNK"/> </act> + + </entry> + </section> + </component> + <component> + <section> + <templateId root="1.1.1.1.1.1.1.1"/> + <id root="1.2.3.5.7"/> + <code code="29545-1" codeSystem="2.11.111.1.111111.1.1" codeSystemName="LOINC"/> + <title>CDA For Test</title> + <entry> + <act classCode="ACT" moodCode="DEF"> + + <!-- Test CONF:0005 "1_1" FALSE [Test of cardinality maximal] --> + <realmCode nullFlavor="UNK" /> + <realmCode code="12345" nullFlavor="UNK" /> + + <!-- Test CONF:0004 "0_2" TRUE--> + <!--<typeId extension="123456789" root="2.16.840.1.113883.1.3" />--> + + <!-- Test CONF:0006 "1_1" TRUE--> + <code code="12345-1" /> + + <!-- Test CONF:0008"1_n" False--> + <!-- <priorityCode nullFlavor="UNK"/> --> + + + </act> + </entry> </section> </component> diff --git a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/cardinality/decor_cardinality.xml b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/cardinality/decor_cardinality.xml index 385aed8d67b6a29f25f6f8ccb6449090b8cbd5a4..9b5c57ba02f2cf2d42dea6bf8107860f53e40e7f 100644 --- a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/cardinality/decor_cardinality.xml +++ b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/cardinality/decor_cardinality.xml @@ -25,13 +25,13 @@ <element name="cda:entry" minimumMultiplicity="1" maximumMultiplicity="*" id="2.16.840.1.113883.3.1937.99.3.9.5341"> <element name="cda:act" minimumMultiplicity="1" maximumMultiplicity="*" id="2.16.840.1.113883.3.1937.99.3.9.5347"> - <!-- Test element: NEED TO BE FALSE 1_n --> - <element name="cda:realmCode" minimumMultiplicity="1" maximumMultiplicity="*"> + <!-- Test element: NEED TO BE FALSE 1_1 --> + <element name="cda:realmCode" minimumMultiplicity="1" maximumMultiplicity="1"> <item label="CONF:0004"></item> </element> - <!-- Test element: NEED TO BE TRUE 1_n --> - <element name="cda:typeId" minimumMultiplicity="1" maximumMultiplicity="*"> + <!-- Test element: NEED TO BE TRUE 0_2 --> + <element name="cda:typeId" minimumMultiplicity="0" maximumMultiplicity="2"> <item label="CONF:0005"></item> </element> @@ -40,6 +40,11 @@ <item label="CONF:0006"></item> </element> + <!-- Test element: NEED TO BE TRUE 1_* in the first INSTANCE and FALSE in the second--> + <element name="cda:priorityCode" minimumMultiplicity="1" maximumMultiplicity="*" id="2.16.840.1.113883.3.1937.99.3.9.5343"> + <item label="CONF:0008"></item> + </element> + <attribute name="classCode"/> <attribute name="moodCode" /> diff --git a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/cardinality/expected_cardinality.xml b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/cardinality/expected_cardinality.xml index 77df1c9d138ed31752e0e5166fa79fdeefcbd78d..f39eb882873c6bf409fd215a8bc4935ac5141e28 100644 --- a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/cardinality/expected_cardinality.xml +++ b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/cardinality/expected_cardinality.xml @@ -21,6 +21,13 @@ <Identifiant>NullFlavorChecker</Identifiant> <Type>Null Flavor Check</Type> </Warning> + <Warning> + <Test>NullFlavorChecker</Test> + <Location>/ClinicalDocument/component/structuredBody/component/section[1]/entry/act/realmCode</Location> + <Description>In /ClinicalDocument/component/structuredBody/component/section[1]/entry/act/realmCode nullFlavor is defined but the element still defines attributes and sub-elements</Description> + <Identifiant>NullFlavorChecker</Identifiant> + <Type>Null Flavor Check</Type> + </Warning> <Note> <Test>test_IDs</Test> <Location>/ClinicalDocument</Location> @@ -106,22 +113,22 @@ <assertion idScheme="card" assertionId="CONF:0003"/> <Type>Cardinality</Type> </Note> - <Error> + <Note> <Test>card011</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act SHALL contain at least ONE hl7:realmCode (Item : CONF:0004)</Description> + <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act SHALL contain at most ONE hl7:realmCode (Item : CONF:0004)</Description> <Identifiant>card-TestCardinality-card011</Identifiant> <assertion idScheme="card" assertionId="CONF:0004;CONF:0007"/> <Type>Cardinality</Type> - </Error> - <Note> + </Note> + <Error> <Test>card012</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act SHALL contain at least ONE hl7:typeId (Item : CONF:0005)</Description> + <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act SHALL contain at least ONE hl7:realmCode (Item : CONF:0004)</Description> <Identifiant>card-TestCardinality-card012</Identifiant> - <assertion idScheme="card" assertionId="CONF:0005;CONF:0007"/> + <assertion idScheme="card" assertionId="CONF:0004;CONF:0007"/> <Type>Cardinality</Type> - </Note> + </Error> <Note> <Test>card013</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> @@ -133,19 +140,155 @@ <Note> <Test>card014</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry SHALL contain at least ONE hl7:act</Description> + <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act SHALL contain at least ONE hl7:priorityCode (Item : CONF:0008)</Description> <Identifiant>card-TestCardinality-card014</Identifiant> - <assertion idScheme="card" assertionId="CONF:0007"/> + <assertion idScheme="card" assertionId="CONF:0007;CONF:0008"/> <Type>Cardinality</Type> </Note> <Note> <Test>card015</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> + <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry SHALL contain at least ONE hl7:act</Description> + <Identifiant>card-TestCardinality-card015</Identifiant> + <assertion idScheme="card" assertionId="CONF:0007"/> + <Type>Cardinality</Type> + </Note> + <Note> + <Test>card016</Test> + <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:entry (Item : CONF:0007)</Description> + <Identifiant>card-TestCardinality-card016</Identifiant> + <assertion idScheme="card" assertionId="CONF:0007"/> + <Type>Cardinality</Type> + </Note> + <Note> + <Test>card001</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Cardinality Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute root SHALL be present</Description> + <Identifiant>card-TestCardinality-card001</Identifiant> + <assertion idScheme="card" assertionId="CONF:0001"/> + <Type>Cardinality</Type> + </Note> + <Note> + <Test>card002</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Cardinality Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.1'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> + <Identifiant>card-TestCardinality-card002</Identifiant> + <assertion idScheme="card" assertionId="CONF:0001"/> + <Type>Mandatory</Type> + </Note> + <Note> + <Test>card003</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> + <Identifiant>card-TestCardinality-card003</Identifiant> + <assertion idScheme="card" assertionId="CONF:0001"/> + <Type>Cardinality</Type> + </Note> + <Note> + <Test>card004</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> + <Identifiant>card-TestCardinality-card004</Identifiant> + <assertion idScheme="card" assertionId="CONF:0001"/> + <Type>Cardinality</Type> + </Note> + <Note> + <Test>card005</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Cardinality Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:code, the attribute code SHALL be present</Description> + <Identifiant>card-TestCardinality-card005</Identifiant> + <assertion idScheme="card" assertionId="CONF:0002"/> + <Type>Cardinality</Type> + </Note> + <Note> + <Test>card006</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Cardinality Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:code, the attribute code SHALL have the value '29545-1' if present</Description> + <Identifiant>card-TestCardinality-card006</Identifiant> + <assertion idScheme="card" assertionId="CONF:0002"/> + <Type>Fixed value</Type> + </Note> + <Note> + <Test>card007</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Cardinality Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> + <Identifiant>card-TestCardinality-card007</Identifiant> + <assertion idScheme="card" assertionId="CONF:0002"/> + <Type>Fixed value</Type> + </Note> + <Note> + <Test>card008</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Cardinality Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'], the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0002)</Description> + <Identifiant>card-TestCardinality-card008</Identifiant> + <assertion idScheme="card" assertionId="CONF:0002"/> + <Type>Mandatory</Type> + </Note> + <Note> + <Test>card009</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:code (Item : CONF:0002)</Description> + <Identifiant>card-TestCardinality-card009</Identifiant> + <assertion idScheme="card" assertionId="CONF:0002"/> + <Type>Cardinality</Type> + </Note> + <Note> + <Test>card010</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:title (Item : CONF:0003)</Description> + <Identifiant>card-TestCardinality-card010</Identifiant> + <assertion idScheme="card" assertionId="CONF:0003"/> + <Type>Cardinality</Type> + </Note> + <Error> + <Test>card011</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act SHALL contain at most ONE hl7:realmCode (Item : CONF:0004)</Description> + <Identifiant>card-TestCardinality-card011</Identifiant> + <assertion idScheme="card" assertionId="CONF:0004;CONF:0007"/> + <Type>Cardinality</Type> + </Error> + <Note> + <Test>card012</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act SHALL contain at least ONE hl7:realmCode (Item : CONF:0004)</Description> + <Identifiant>card-TestCardinality-card012</Identifiant> + <assertion idScheme="card" assertionId="CONF:0004;CONF:0007"/> + <Type>Cardinality</Type> + </Note> + <Note> + <Test>card013</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Cardinality Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0006)</Description> + <Identifiant>card-TestCardinality-card013</Identifiant> + <assertion idScheme="card" assertionId="CONF:0006;CONF:0007"/> + <Type>Mandatory</Type> + </Note> + <Error> + <Test>card014</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act SHALL contain at least ONE hl7:priorityCode (Item : CONF:0008)</Description> + <Identifiant>card-TestCardinality-card014</Identifiant> + <assertion idScheme="card" assertionId="CONF:0007;CONF:0008"/> + <Type>Cardinality</Type> + </Error> + <Note> + <Test>card015</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry SHALL contain at least ONE hl7:act</Description> <Identifiant>card-TestCardinality-card015</Identifiant> <assertion idScheme="card" assertionId="CONF:0007"/> <Type>Cardinality</Type> </Note> + <Note> + <Test>card016</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:entry (Item : CONF:0007)</Description> + <Identifiant>card-TestCardinality-card016</Identifiant> + <assertion idScheme="card" assertionId="CONF:0007"/> + <Type>Cardinality</Type> + </Note> <Note> <Test>test_IDs</Test> <Location>/ClinicalDocument</Location> @@ -159,6 +302,14 @@ <assertion idScheme="RMIM" assertionId="RMIM-052"/> <Type>Mandatory</Type> </Warning> + <Warning> + <Test>rmim052</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>Section.text SHALL be specified, as it is a required element (RMIM-052)</Description> + <Identifiant>cdabasic-SectionSpec-rmim052</Identifiant> + <assertion idScheme="RMIM" assertionId="RMIM-052"/> + <Type>Mandatory</Type> + </Warning> <Note> <Test>test_IDs</Test> <Location>/ClinicalDocument</Location> @@ -167,8 +318,8 @@ <Result>FAILED</Result> </MDAValidation> <ValidationResultsOverview> - <ValidationDate>2022, 01 07</ValidationDate> - <ValidationTime>12:31:39</ValidationTime> + <ValidationDate>2022, 03 07</ValidationDate> + <ValidationTime>11:43:17</ValidationTime> <ValidationServiceName>Gazelle CDA Validation : card</ValidationServiceName> <ValidationTestResult>FAILED</ValidationTestResult> </ValidationResultsOverview> @@ -176,5 +327,8 @@ <Template validation="Error" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[0]/section"> <templateId id="1.1.1.1.1.1.1.1" name="TestCardinality"/> </Template> + <Template validation="Error" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[1]/section"> + <templateId id="1.1.1.1.1.1.1.1" name="TestCardinality"/> + </Template> </TemplateDesc> </detailedResult> diff --git a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/fixedvalue/cda_fixedvalue.xml b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/fixedvalue/cda_fixedvalue.xml index 2b21717232489af7bd169173ba2dad5146c646ca..01454009781f55f12b74a9d87e60878427cc86a2 100644 --- a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/fixedvalue/cda_fixedvalue.xml +++ b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/fixedvalue/cda_fixedvalue.xml @@ -36,22 +36,35 @@ <structuredBody> <component> <section> - <templateId root="1.1.1.1.1.1.1.1"/> + <!-- Test conf:4440 extension TRUE--> + <templateId root="1.1.1.1.1.1.1.1" extension="2019-10-01"/> <id root="1.2.3.5.6"/> + <title >CDA For Test Instance-1</title> + <!-- Test conf:4450 extension False supposed to be typeCode="COMP"--> + <entry typeCode="DRIV"> + <!-- Test conf:0005 classCode TRUE moodCode TRUE--> + <act classCode="ACT" moodCode="EVN" > + <!-- Test CONF:0002 "Fixed Value" TRUE--> + <code code="29545-1" codeSystem="2.11.111.1.111111.1.1" codeSystemName="LOINC"/> + </act> + </entry> - <!-- Test CONF:0002 "Fixed Value" TRUE--> - <code code="29545-1" codeSystem="2.11.111.1.111111.1.1" codeSystemName="LOINC"/> - <title>CDA For Test Instance-1</title> </section> </component> <component> <section> - <templateId root="1.1.1.1.1.1.1.1"/> + <!-- Test conf:4440 extension FALSE--> + <templateId root="1.1.1.1.1.1.1.1" extension="2015-10-01"/> <id root="1.2.3.5.7"/> - - <!-- Test CONF:0002 "Fixed Value" FALSE--> - <code code="111111" codeSystem="2.11.111.1.111111.1.1" codeSystemName="LOINC"/> - <title>CDA For Test Instance-2</title> + <title >CDA For Test Instance-2</title> + <!-- Test conf:4450 extension TRUE supposed to be typeCode="COMP"--> + <entry typeCode="COMP"> + <!-- Test conf:0005 classCode FALSE moodCode FALSE--> + <act classCode="ACCM" moodCode="ARQ"> + <!-- Test CONF:0002 "Fixed Value" FALSE--> + <code code="111111" codeSystem="2.11.111.1.111111.1.1" codeSystemName="LOINC"/> + </act> + </entry> </section> </component> </structuredBody> diff --git a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/fixedvalue/decor_fixedvalue.xml b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/fixedvalue/decor_fixedvalue.xml index 3aecc0271a7cdc60eac735ed9b2e82ff135b7152..97842b09083ee800f88089401ad493be3e0d29a1 100644 --- a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/fixedvalue/decor_fixedvalue.xml +++ b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/fixedvalue/decor_fixedvalue.xml @@ -7,21 +7,45 @@ <template id="1.1.1.1.1.1.1.1" name="TestFixedVal" displayName="Test Fixed Value Template" effectiveDate="2022-01-01T00:00:00" statusCode="active" versionLabel="1.0"> <context id="**"></context> <element name="cda:section" id="2.16.840.1.113883.3.1937.99.3.9.5334"> - <element name="cda:templateId" datatype="II" minimumMultiplicity="1" maximumMultiplicity="1" isMandatory="true"> <item label="CONF:0001"></item> <attribute name="root" value="1.1.1.1.1.1.1.1" datatype="uid"></attribute> - </element> - <element name="cda:code" datatype="CE" minimumMultiplicity="1" maximumMultiplicity="1" isMandatory="true" id="2.16.840.1.113883.3.1937.99.3.9.5338"> - <desc language="en-US">SHALL contain exactly one [1..1] code (CONF:0002).</desc> - <item label="CONF:0002"></item> - - <!-- Test element: HAVE TWO INSTANCES, 1st TRUE and 2nd FALSE --> - <vocabulary code="29545-1" codeSystem="2.11.111.1.111111.1.1"></vocabulary> + <!-- Test element: HAVE TWO INSTANCES, 1st TRUE and 2nd FALSE >>>> EXTENSION--> + <attribute name="extension" value="2019-10-01"> + <desc language="en-US">SHALL contain exactly one [1..1] @extension="2019-10-01" (CONF:4440).</desc> + <item label="CONF:4440"></item> + </attribute> </element> <element name="cda:title" datatype="ST" minimumMultiplicity="1" maximumMultiplicity="1" id="2.16.840.1.113883.3.1937.99.3.9.5339"> <desc language="en-US">SHALL contain exactly one [1..1] title (CONF:0003).</desc> - <item label="CONF:0003"></item> + <item label="CONF:0002"></item> + </element> + <element name="cda:entry" flexibility="2015-08-01T00:00:00" minimumMultiplicity="1" maximumMultiplicity="*" id="2.16.840.1.113883.3.1937.99.3.9.5341"> + <!-- Test element: HAVE TWO INSTANCES, 1st False and 2nd True >>>> typeCode --> + <attribute typeCode="COMP"> + <item label="CONF:4450"></item> + </attribute> + <element name="cda:act" minimumMultiplicity="1" maximumMultiplicity="*" id="2.16.840.1.113883.3.1937.99.3.9.5347"> + <element name="cda:code" minimumMultiplicity="1" maximumMultiplicity="1" isMandatory="true" id="2.16.840.1.113883.3.1937.99.3.9.5338"> + <desc language="en-US">SHALL contain exactly one [1..1] code (CONF:0002).</desc> + <item label="CONF:0003"></item> + <!-- Test element: HAVE TWO INSTANCES, 1st TRUE and 2nd FALSE --> + <vocabulary code="29545" codeSystem="2.11.111.1.111111.1.1"></vocabulary> + </element> + <element name="cda:entryRelationship" contains="2.16.840.1.113883.10.20.22.4.76" flexibility="2015-08-01T00:00:00" minimumMultiplicity="0" maximumMultiplicity="*" id="2.16.840.1.113883.3.1937.99.3.9.5330"> + <attribute name="typeCode" value="COMP" datatype="cs" id="2.16.840.1.113883.3.1937.99.3.9.5331"> + <item label="CONF:1198-31891"></item> + </attribute> + </element> + + <!-- Test element: HAVE TWO INSTANCES, 1st TRUE and 2nd FALSE (with Info) "classCode and moodCode attribute" "fixed value" --> + <attribute name="classCode" value="ACT"> + <item label="CONF:0004"></item> + </attribute> + <attribute name="moodCode" value="EVN"> + <item label="CONF:0005"></item> + </attribute> + </element> </element> </element> diff --git a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/fixedvalue/expected_fixedvalue.xml b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/fixedvalue/expected_fixedvalue.xml index c83ca05781bf443f46ed3057db633a338f33d392..271c3e2ed859ea75226aa7a5f1bf36c839eec11b 100644 --- a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/fixedvalue/expected_fixedvalue.xml +++ b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/fixedvalue/expected_fixedvalue.xml @@ -37,75 +37,129 @@ <Note> <Test>fixedval002</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.1'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute extension SHALL be present (Item : CONF:4440)</Description> <Identifiant>fixedval-TestFixedVal-fixedval002</Identifiant> - <assertion idScheme="fixedval" assertionId="CONF:0001"/> - <Type>Mandatory</Type> + <assertion idScheme="fixedval" assertionId="CONF:0001;CONF:4440"/> + <Type>Cardinality</Type> </Note> <Note> <Test>fixedval003</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute extension SHALL have the value '2019-10-01' if present (Item : CONF:4440)</Description> <Identifiant>fixedval-TestFixedVal-fixedval003</Identifiant> - <assertion idScheme="fixedval" assertionId="CONF:0001"/> - <Type>Cardinality</Type> + <assertion idScheme="fixedval" assertionId="CONF:0001;CONF:4440"/> + <Type>Fixed value</Type> </Note> <Note> <Test>fixedval004</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.1'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> <Identifiant>fixedval-TestFixedVal-fixedval004</Identifiant> <assertion idScheme="fixedval" assertionId="CONF:0001"/> - <Type>Cardinality</Type> + <Type>Mandatory</Type> </Note> <Note> <Test>fixedval005</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:code, the attribute code SHALL be present</Description> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> <Identifiant>fixedval-TestFixedVal-fixedval005</Identifiant> - <assertion idScheme="fixedval" assertionId="CONF:0002"/> + <assertion idScheme="fixedval" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> <Test>fixedval006</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:code, the attribute code SHALL have the value '29545-1' if present</Description> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> <Identifiant>fixedval-TestFixedVal-fixedval006</Identifiant> - <assertion idScheme="fixedval" assertionId="CONF:0002"/> - <Type>Fixed value</Type> + <assertion idScheme="fixedval" assertionId="CONF:0001"/> + <Type>Cardinality</Type> </Note> <Note> <Test>fixedval007</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:title (Item : CONF:0002)</Description> <Identifiant>fixedval-TestFixedVal-fixedval007</Identifiant> <assertion idScheme="fixedval" assertionId="CONF:0002"/> - <Type>Fixed value</Type> + <Type>Cardinality</Type> </Note> <Note> <Test>fixedval008</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'], the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0002)</Description> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry, the attribute typeCode SHALL be present (Item : CONF:4450)</Description> <Identifiant>fixedval-TestFixedVal-fixedval008</Identifiant> - <assertion idScheme="fixedval" assertionId="CONF:0002"/> - <Type>Mandatory</Type> + <assertion idScheme="fixedval" assertionId="CONF:4450"/> + <Type>Cardinality</Type> </Note> - <Note> + <Error> <Test>fixedval009</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:code (Item : CONF:0002)</Description> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry, the attribute typeCode SHALL have the value 'COMP' if present (Item : CONF:4450)</Description> <Identifiant>fixedval-TestFixedVal-fixedval009</Identifiant> - <assertion idScheme="fixedval" assertionId="CONF:0002"/> - <Type>Cardinality</Type> - </Note> + <assertion idScheme="fixedval" assertionId="CONF:4450"/> + <Type>Fixed value</Type> + </Error> <Note> <Test>fixedval010</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:title (Item : CONF:0003)</Description> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the attribute classCode SHALL have the value 'ACT' if present (Item : CONF:0004)</Description> <Identifiant>fixedval-TestFixedVal-fixedval010</Identifiant> + <assertion idScheme="fixedval" assertionId="CONF:0004"/> + <Type>Fixed value</Type> + </Note> + <Note> + <Test>fixedval011</Test> + <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the attribute moodCode SHALL have the value 'EVN' if present (Item : CONF:0005)</Description> + <Identifiant>fixedval-TestFixedVal-fixedval011</Identifiant> + <assertion idScheme="fixedval" assertionId="CONF:0005"/> + <Type>Fixed value</Type> + </Note> + <Note> + <Test>fixedval012</Test> + <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute code SHALL be present</Description> + <Identifiant>fixedval-TestFixedVal-fixedval012</Identifiant> <assertion idScheme="fixedval" assertionId="CONF:0003"/> <Type>Cardinality</Type> </Note> + <Error> + <Test>fixedval013</Test> + <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute code SHALL have the value '29545' if present</Description> + <Identifiant>fixedval-TestFixedVal-fixedval013</Identifiant> + <assertion idScheme="fixedval" assertionId="CONF:0003"/> + <Type>Fixed value</Type> + </Error> + <Note> + <Test>fixedval014</Test> + <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> + <Identifiant>fixedval-TestFixedVal-fixedval014</Identifiant> + <assertion idScheme="fixedval" assertionId="CONF:0003"/> + <Type>Fixed value</Type> + </Note> + <Note> + <Test>fixedval015</Test> + <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0003)</Description> + <Identifiant>fixedval-TestFixedVal-fixedval015</Identifiant> + <assertion idScheme="fixedval" assertionId="CONF:0003"/> + <Type>Mandatory</Type> + </Note> + <Note> + <Test>fixedval016</Test> + <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry SHALL contain at least ONE hl7:act</Description> + <Identifiant>fixedval-TestFixedVal-fixedval016</Identifiant> + <Type>Cardinality</Type> + </Note> + <Note> + <Test>fixedval017</Test> + <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:entry</Description> + <Identifiant>fixedval-TestFixedVal-fixedval017</Identifiant> + <Type>Cardinality</Type> + </Note> <Note> <Test>fixedval001</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> @@ -117,75 +171,129 @@ <Note> <Test>fixedval002</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.1'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute extension SHALL be present (Item : CONF:4440)</Description> <Identifiant>fixedval-TestFixedVal-fixedval002</Identifiant> - <assertion idScheme="fixedval" assertionId="CONF:0001"/> - <Type>Mandatory</Type> + <assertion idScheme="fixedval" assertionId="CONF:0001;CONF:4440"/> + <Type>Cardinality</Type> </Note> - <Note> + <Error> <Test>fixedval003</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute extension SHALL have the value '2019-10-01' if present (Item : CONF:4440)</Description> <Identifiant>fixedval-TestFixedVal-fixedval003</Identifiant> - <assertion idScheme="fixedval" assertionId="CONF:0001"/> - <Type>Cardinality</Type> - </Note> + <assertion idScheme="fixedval" assertionId="CONF:0001;CONF:4440"/> + <Type>Fixed value</Type> + </Error> <Note> <Test>fixedval004</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.1'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> <Identifiant>fixedval-TestFixedVal-fixedval004</Identifiant> <assertion idScheme="fixedval" assertionId="CONF:0001"/> - <Type>Cardinality</Type> + <Type>Mandatory</Type> </Note> <Note> <Test>fixedval005</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:code, the attribute code SHALL be present</Description> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> <Identifiant>fixedval-TestFixedVal-fixedval005</Identifiant> - <assertion idScheme="fixedval" assertionId="CONF:0002"/> + <assertion idScheme="fixedval" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> - <Error> + <Note> <Test>fixedval006</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:code, the attribute code SHALL have the value '29545-1' if present</Description> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> <Identifiant>fixedval-TestFixedVal-fixedval006</Identifiant> - <assertion idScheme="fixedval" assertionId="CONF:0002"/> - <Type>Fixed value</Type> - </Error> + <assertion idScheme="fixedval" assertionId="CONF:0001"/> + <Type>Cardinality</Type> + </Note> <Note> <Test>fixedval007</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:title (Item : CONF:0002)</Description> <Identifiant>fixedval-TestFixedVal-fixedval007</Identifiant> <assertion idScheme="fixedval" assertionId="CONF:0002"/> - <Type>Fixed value</Type> + <Type>Cardinality</Type> </Note> <Note> <Test>fixedval008</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'], the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0002)</Description> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry, the attribute typeCode SHALL be present (Item : CONF:4450)</Description> <Identifiant>fixedval-TestFixedVal-fixedval008</Identifiant> - <assertion idScheme="fixedval" assertionId="CONF:0002"/> - <Type>Mandatory</Type> + <assertion idScheme="fixedval" assertionId="CONF:4450"/> + <Type>Cardinality</Type> </Note> <Note> <Test>fixedval009</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:code (Item : CONF:0002)</Description> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry, the attribute typeCode SHALL have the value 'COMP' if present (Item : CONF:4450)</Description> <Identifiant>fixedval-TestFixedVal-fixedval009</Identifiant> - <assertion idScheme="fixedval" assertionId="CONF:0002"/> - <Type>Cardinality</Type> + <assertion idScheme="fixedval" assertionId="CONF:4450"/> + <Type>Fixed value</Type> </Note> - <Note> + <Error> <Test>fixedval010</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:title (Item : CONF:0003)</Description> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the attribute classCode SHALL have the value 'ACT' if present (Item : CONF:0004)</Description> <Identifiant>fixedval-TestFixedVal-fixedval010</Identifiant> + <assertion idScheme="fixedval" assertionId="CONF:0004"/> + <Type>Fixed value</Type> + </Error> + <Error> + <Test>fixedval011</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the attribute moodCode SHALL have the value 'EVN' if present (Item : CONF:0005)</Description> + <Identifiant>fixedval-TestFixedVal-fixedval011</Identifiant> + <assertion idScheme="fixedval" assertionId="CONF:0005"/> + <Type>Fixed value</Type> + </Error> + <Note> + <Test>fixedval012</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute code SHALL be present</Description> + <Identifiant>fixedval-TestFixedVal-fixedval012</Identifiant> <assertion idScheme="fixedval" assertionId="CONF:0003"/> <Type>Cardinality</Type> </Note> + <Error> + <Test>fixedval013</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute code SHALL have the value '29545' if present</Description> + <Identifiant>fixedval-TestFixedVal-fixedval013</Identifiant> + <assertion idScheme="fixedval" assertionId="CONF:0003"/> + <Type>Fixed value</Type> + </Error> + <Note> + <Test>fixedval014</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> + <Identifiant>fixedval-TestFixedVal-fixedval014</Identifiant> + <assertion idScheme="fixedval" assertionId="CONF:0003"/> + <Type>Fixed value</Type> + </Note> + <Note> + <Test>fixedval015</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0003)</Description> + <Identifiant>fixedval-TestFixedVal-fixedval015</Identifiant> + <assertion idScheme="fixedval" assertionId="CONF:0003"/> + <Type>Mandatory</Type> + </Note> + <Note> + <Test>fixedval016</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry SHALL contain at least ONE hl7:act</Description> + <Identifiant>fixedval-TestFixedVal-fixedval016</Identifiant> + <Type>Cardinality</Type> + </Note> + <Note> + <Test>fixedval017</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:entry</Description> + <Identifiant>fixedval-TestFixedVal-fixedval017</Identifiant> + <Type>Cardinality</Type> + </Note> <Note> <Test>test_IDs</Test> <Location>/ClinicalDocument</Location> @@ -199,6 +307,14 @@ <assertion idScheme="RMIM" assertionId="RMIM-052"/> <Type>Mandatory</Type> </Warning> + <Error> + <Test>rmim066</Test> + <Location>/ClinicalDocument/component/structuredBody/component[0]/section/entry[0]</Location> + <Description>When entry@typeCode=DRIV, the section containing the entry SHALL contain a text element (RMIM-066)</Description> + <Identifiant>cdabasic-EntrySpec-rmim066</Identifiant> + <assertion idScheme="RMIM" assertionId="RMIM-066"/> + <Type>Datatype</Type> + </Error> <Warning> <Test>rmim052</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> @@ -215,17 +331,17 @@ <Result>FAILED</Result> </MDAValidation> <ValidationResultsOverview> - <ValidationDate>2022, 01 07</ValidationDate> - <ValidationTime>12:25:30</ValidationTime> + <ValidationDate>2022, 03 07</ValidationDate> + <ValidationTime>10:48:30</ValidationTime> <ValidationServiceName>Gazelle CDA Validation : fixedval</ValidationServiceName> <ValidationTestResult>FAILED</ValidationTestResult> </ValidationResultsOverview> <TemplateDesc validation="Error"> - <Template validation="Report" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[0]/section"> + <Template validation="Error" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[0]/section"> <templateId id="1.1.1.1.1.1.1.1" name="TestFixedVal"/> </Template> <Template validation="Error" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[1]/section"> <templateId id="1.1.1.1.1.1.1.1" name="TestFixedVal"/> </Template> </TemplateDesc> -</detailedResult> +</detailedResult> \ No newline at end of file diff --git a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/global/cda_global.xml b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/global/cda_global.xml index bf2afaf61d880349e468587939afa4c692657ca6..af17c2e317c277a4c2687998e28491bd3a14d57c 100644 --- a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/global/cda_global.xml +++ b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/global/cda_global.xml @@ -45,28 +45,58 @@ <title>CDA For Test</title> <entry> <act classCode="ACT" moodCode="DEF"> - - <!-- Test CONF:0005 "1_n" FALSE [DO NOT UNCOMENT, EXPECTED TO BE MISSING]--> + <!-- Test CONF:0005 "1_1" FALSE [DO NOT UNCOMENT, EXPECTED TO BE MISSING]--> <!-- <realmCode />--> - <!-- Test CONF:0004 "1_n" TRUE--> + <!-- Test CONF:0004 "0_2" TRUE--> <typeId extension="123456789" root="2.16.840.1.113883.1.3" /> <!-- Test CONF:0006 "1_1" TRUE--> <code code="12345-6" /> + <!-- Test CONF:0008 "0_n" True --> + <priorityCode nullFlavor="UNK"/> </act> + </entry> </section> </component> - - <!-- VOCABULARY --> <component> <section> - <templateId root="1.1.1.1.1.1.1.2"/> + <templateId root="1.1.1.1.1.1.1.1"/> <id root="1.2.3.5.7"/> <code code="29545-1" codeSystem="2.11.111.1.111111.1.1" codeSystemName="LOINC"/> <title>CDA For Test</title> + <entry> + <act classCode="ACT" moodCode="DEF"> + + <!-- Test CONF:0005 "1_1" FALSE [Test of cardinality maximal] --> + <realmCode nullFlavor="UNK" /> + <realmCode code="12345" nullFlavor="UNK" /> + + <!-- Test CONF:0004 "0_2" TRUE--> + <!--<typeId extension="123456789" root="2.16.840.1.113883.1.3" />--> + + <!-- Test CONF:0006 "1_1" TRUE--> + <code code="12345-1" /> + <!-- Test CONF:0008"1_n" False--> + <!-- <priorityCode nullFlavor="UNK"/> --> + + + </act> + + </entry> + </section> + </component> + + + <!-- VOCABULARY --> + <component> + <section> + <templateId root="1.1.1.1.1.1.1.1"/> + <id root="1.2.3.5.6"/> + <code code="29545-1" codeSystem="2.11.111.1.111111.1.1" codeSystemName="LOINC"/> + <title>CDA For Test</title> <entry> <act classCode="ACT" moodCode="DEF"> <!-- Test CONF:0005 "matchesValueSet" TRUE--> @@ -83,13 +113,13 @@ </component> <component> <section> - <templateId root="1.1.1.1.1.1.1.2"/> - <id root="1.2.3.5.8"/> + <templateId root="1.1.1.1.1.1.1.1"/> + <id root="1.2.3.5.7"/> <code code="29545-1" codeSystem="2.11.111.1.111111.1.1" codeSystemName="LOINC"/> <title>CDA For Test</title> <entry> - <act classCode="ACT" moodCode="DEF"> - <!-- Test CONF:0005 "matchesValueSet" FALSE--> + <act classCode="ACCM" moodCode="DEF"> + <!-- Test CONF:0005 "matchesValueSet" FALSE ___BUT on a WARNING --> <code code="B" /> <!-- Test CONF:0006 "multiple ValueSets" False--> @@ -102,12 +132,11 @@ </section> </component> - <!-- MANDATORY --> <component> <section> - <templateId root="1.1.1.1.1.1.1.3"/> - <id root="1.2.3.5.9"/> + <templateId root="1.1.1.1.1.1.1.1"/> + <id root="1.2.3.5.6"/> <code code="29545-1" codeSystem="2.11.111.1.111111.1.1" codeSystemName="LOINC"/> <title>CDA For Test</title> <entry> @@ -115,10 +144,10 @@ <!-- Test CONF:0004 "not mandatory" TRUE--> <realmCode code="12345-7" nullFlavor="UNK"/> + <!--<realmCode nullFlavor="UNK"/> --> <!-- Test CONF:0005 "mandatory" FALSE--> <typeId extension="123456789" root="2.16.840.1.113883.1.3" nullFlavor="UNK" /> - <!-- Test CONF:0006 "mandatory" TRUE--> <code code="12345-6" /> </act> @@ -126,30 +155,41 @@ </section> </component> - <!-- FIXED_VALUE --> <component> <section> - <templateId root="1.1.1.1.1.1.1.4"/> - <id root="1.2.3.5.10"/> + <!-- Test conf:4440 extension TRUE--> + <templateId root="1.1.1.1.1.1.1.1" extension="2019-10-01"/> + <id root="1.2.3.5.6"/> + <title >CDA For Test Instance-1</title> + <!-- Test conf:4450 extension False supposed to be typeCode="COMP"--> + <entry typeCode="DRIV"> + <!-- Test conf:0005 classCode TRUE moodCode TRUE--> + <act classCode="ACT" moodCode="EVN" > + <!-- Test CONF:0002 "Fixed Value" TRUE--> + <code code="29545-1" codeSystem="2.11.111.1.111111.1.1" codeSystemName="LOINC"/> + </act> + </entry> - <!-- Test CONF:0002 "Fixed Value" TRUE--> - <code code="29545-1" codeSystem="2.11.111.1.111111.1.1" codeSystemName="LOINC"/> - <title>CDA For Test Instance-1</title> </section> </component> <component> <section> - <templateId root="1.1.1.1.1.1.1.4"/> - <id root="1.2.3.5.11"/> - - <!-- Test CONF:0002 "Fixed Value" FALSE--> - <code code="111111" codeSystem="2.11.111.1.111111.1.1" codeSystemName="LOINC"/> - <title>CDA For Test Instance-2</title> + <!-- Test conf:4440 extension FALSE--> + <templateId root="1.1.1.1.1.1.1.1" extension="2015-10-01"/> + <id root="1.2.3.5.7"/> + <title >CDA For Test Instance-2</title> + <!-- Test conf:4450 extension TRUE supposed to be typeCode="COMP"--> + <entry typeCode="COMP"> + <!-- Test conf:0005 classCode FALSE moodCode FALSE--> + <act classCode="ACCM" moodCode="ARQ"> + <!-- Test CONF:0002 "Fixed Value" FALSE--> + <code code="111111" codeSystem="2.11.111.1.111111.1.1" codeSystemName="LOINC"/> + </act> + </entry> </section> </component> - <!-- DATATYPE --> <component> <section> diff --git a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/global/decor_global.xml b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/global/decor_global.xml index c74ce2b7e3d71789dfcf5b87a476b7b274e93073..b8ff7768359772704c5d695dbd117dfb0d5bf534 100644 --- a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/global/decor_global.xml +++ b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/global/decor_global.xml @@ -46,13 +46,13 @@ <element name="cda:entry" minimumMultiplicity="1" maximumMultiplicity="*" id="2.16.840.1.113883.3.1937.99.3.9.5341"> <element name="cda:act" minimumMultiplicity="1" maximumMultiplicity="*" id="2.16.840.1.113883.3.1937.99.3.9.5347"> - <!-- Test element: NEED TO BE FALSE 1_n --> - <element name="cda:realmCode" minimumMultiplicity="1" maximumMultiplicity="*"> + <!-- Test element: NEED TO BE FALSE 1_1 --> + <element name="cda:realmCode" minimumMultiplicity="1" maximumMultiplicity="1"> <item label="CONF:0004"></item> </element> - <!-- Test element: NEED TO BE TRUE 1_n --> - <element name="cda:typeId" minimumMultiplicity="1" maximumMultiplicity="*"> + <!-- Test element: NEED TO BE TRUE 0_2 --> + <element name="cda:typeId" minimumMultiplicity="0" maximumMultiplicity="2"> <item label="CONF:0005"></item> </element> @@ -61,6 +61,11 @@ <item label="CONF:0006"></item> </element> + <!-- Test element: NEED TO BE TRUE 1_* in the first INSTANCE and FALSE in the second--> + <element name="cda:priorityCode" minimumMultiplicity="1" maximumMultiplicity="*" id="2.16.840.1.113883.3.1937.99.3.9.5343"> + <item label="CONF:0008"></item> + </element> + <attribute name="classCode"/> <attribute name="moodCode" /> @@ -72,44 +77,45 @@ </template> <!-- VOCABULARY --> - <template id="1.1.1.1.1.1.1.2" name="TestVocabulary" displayName="Test Vocabulary Template" effectiveDate="2022-01-01T00:00:00" statusCode="active" versionLabel="1.0"> + <template id="1.1.1.1.1.1.1.1" name="TestVocabulary" displayName="Test Vocabulary Template" effectiveDate="2022-01-01T00:00:00" statusCode="active" versionLabel="1.0"> <context id="**"></context> <element name="cda:section" id="2.16.840.1.113883.3.1937.99.3.9.5334"> <element name="cda:templateId" datatype="II" minimumMultiplicity="1" maximumMultiplicity="1" isMandatory="true"> <item label="CONF:0001"></item> - <attribute name="root" value="1.1.1.1.1.1.1.2" datatype="uid"></attribute> + <attribute name="root" value="1.1.1.1.1.1.1.1" datatype="uid"></attribute> + </element> <element name="cda:code" datatype="CE" minimumMultiplicity="1" maximumMultiplicity="1" isMandatory="true" id="2.16.840.1.113883.3.1937.99.3.9.5338"> <desc language="en-US">SHALL contain exactly one [1..1] code (CONF:0002).</desc> <item label="CONF:0002"></item> - <vocabulary code="29545-1" codeSystem="2.11.111.1.111111.1.1"></vocabulary> + <vocabulary code="29545-1" codeSystem="2.11.111.1.111111.1.1" codeSystemName="FalseV"></vocabulary> </element> <element name="cda:title" datatype="ST" minimumMultiplicity="1" maximumMultiplicity="1" id="2.16.840.1.113883.3.1937.99.3.9.5339"> <desc language="en-US">SHALL contain exactly one [1..1] title (CONF:0003).</desc> <item label="CONF:0003"></item> </element> - <element name="cda:entry" flexibility="2015-08-01T00:00:00" minimumMultiplicity="1" maximumMultiplicity="1" id="2.16.840.1.113883.3.1937.99.3.9.6341"> - <element name="cda:act" minimumMultiplicity="1" maximumMultiplicity="*" id="2.16.840.1.113883.3.1937.99.3.9.6347"> + <element name="cda:entry" flexibility="2015-08-01T00:00:00" minimumMultiplicity="1" maximumMultiplicity="*" id="2.16.840.1.113883.3.1937.99.3.9.5341"> + <element name="cda:act" minimumMultiplicity="1" maximumMultiplicity="*" id="2.16.840.1.113883.3.1937.99.3.9.5347"> <!-- Test element: HAVE TWO INSTANCES, 1st TRUE and 2nd FALSE "matchsValueSet" --> - <element name="cda:code" datatype="CD" minimumMultiplicity="1" maximumMultiplicity="1" isMandatory="true" id="2.16.840.1.113883.3.1937.99.3.9.6342"> + <element name="cda:code" strength="extensible" datatype="CD" minimumMultiplicity="1" maximumMultiplicity="1" isMandatory="true" id="2.16.840.1.113883.3.1937.99.3.9.5342"> <item label="CONF:0005"></item> - <vocabulary valueSet="1.2.3.4.5.6.7.8.9"></vocabulary> + <vocabulary valueSet="1.2.3.4.5.6.7.8.9" ></vocabulary> </element> - <!-- Test element: HAVE TWO INSTANCES, 1st TRUE and 2nd FALSE "multiple valueSets" --> - <element name="cda:priorityCode" datatype="CE" minimumMultiplicity="1" maximumMultiplicity="1" id="2.16.840.1.113883.3.1937.99.3.9.6343"> + <!-- Test element: HAVE TWO INSTANCES, 1st TRUE and 2nd FALSE (with warning) "multiple valueSets" --> + <element name="cda:priorityCode" strength="required" datatype="CE" minimumMultiplicity="1" maximumMultiplicity="1" id="2.16.840.1.113883.3.1937.99.3.9.5343"> <item label="CONF:0006"></item> - <vocabulary valueSet="1.2.3.4.5.6.7.8.9"></vocabulary> - <vocabulary valueSet="1.2.3.4.5.6.7.8.10"></vocabulary> </element> - <!-- Test element: HAVE TWO INSTANCES, 1st TRUE and 2nd FALSE "flexibility" --> - <element name="cda:languageCode" datatype="CS" minimumMultiplicity="1" maximumMultiplicity="1" id="2.16.840.1.113883.3.1937.99.3.9.63414"> + <!-- Test element: HAVE TWO INSTANCES, 1st TRUE and 2nd FALSE (with Info) "flexibility" --> + <vocabulary valueSet="1.2.3.4.5.6.7.8.9"></vocabulary> + <vocabulary valueSet="1.2.3.4.5.6.7.8.10" ></vocabulary> + <element name="cda:languageCode" strength="preferred" datatype="CS" minimumMultiplicity="1" maximumMultiplicity="1" id="2.16.840.1.113883.3.1937.99.3.9.53414"> <item label="CONF:0007"></item> - <vocabulary valueSet="1.2.3.4.5.6.7.8.9" flexibility="2021-01-01T00:00:00"></vocabulary> + <vocabulary valueSet="1.2.3.4.5.6.7.8.9" flexibility="2021-01-01T00:00:00" ></vocabulary> </element> <attribute name="classCode"/> @@ -123,13 +129,13 @@ </template> <!-- MANDATORY --> - <template id="1.1.1.1.1.1.1.3" name="TestMandatory" displayName="Test Mandatory Template" effectiveDate="2022-01-01T00:00:00" statusCode="active" versionLabel="1.0"> + <template id="1.1.1.1.1.1.1.1" name="TestMandatory" displayName="Test Mandatory Template" effectiveDate="2022-01-01T00:00:00" statusCode="active" versionLabel="1.0"> <context id="**"></context> <element name="cda:section" id="2.16.840.1.113883.3.1937.99.3.9.5334"> <element name="cda:templateId" datatype="II" minimumMultiplicity="1" maximumMultiplicity="1" isMandatory="true"> <item label="CONF:0001"></item> - <attribute name="root" value="1.1.1.1.1.1.1.3" datatype="uid"></attribute> + <attribute name="root" value="1.1.1.1.1.1.1.1" datatype="uid"></attribute> </element> <element name="cda:code" datatype="CE" minimumMultiplicity="1" maximumMultiplicity="1" isMandatory="true" id="2.16.840.1.113883.3.1937.99.3.9.5338"> <desc language="en-US">SHALL contain exactly one [1..1] code (CONF:0002).</desc> @@ -159,6 +165,8 @@ <item label="CONF:0006"></item> </element> + + <attribute name="classCode"/> <attribute name="moodCode" /> @@ -169,26 +177,49 @@ </element> </template> - - <!-- MANDATORY --> - <template id="1.1.1.1.1.1.1.4" name="TestFixedVal" displayName="Test Fixed Value Template" effectiveDate="2022-01-01T00:00:00" statusCode="active" versionLabel="1.0"> + <!-- FIXED VALUE --> + <template id="1.1.1.1.1.1.1.1" name="TestFixedVal" displayName="Test Fixed Value Template" effectiveDate="2022-01-01T00:00:00" statusCode="active" versionLabel="1.0"> <context id="**"></context> <element name="cda:section" id="2.16.840.1.113883.3.1937.99.3.9.5334"> - <element name="cda:templateId" datatype="II" minimumMultiplicity="1" maximumMultiplicity="1" isMandatory="true"> <item label="CONF:0001"></item> - <attribute name="root" value="1.1.1.1.1.1.1.4" datatype="uid"></attribute> - </element> - <element name="cda:code" datatype="CE" minimumMultiplicity="1" maximumMultiplicity="1" isMandatory="true" id="2.16.840.1.113883.3.1937.99.3.9.5338"> - <desc language="en-US">SHALL contain exactly one [1..1] code (CONF:0002).</desc> - <item label="CONF:0002"></item> - - <!-- Test element: HAVE TWO INSTANCES, 1st TRUE and 2nd FALSE --> - <vocabulary code="29545-1" codeSystem="2.11.111.1.111111.1.1"></vocabulary> + <attribute name="root" value="1.1.1.1.1.1.1.1" datatype="uid"></attribute> + <!-- Test element: HAVE TWO INSTANCES, 1st TRUE and 2nd FALSE >>>> EXTENSION--> + <attribute name="extension" value="2019-10-01"> + <desc language="en-US">SHALL contain exactly one [1..1] @extension="2019-10-01" (CONF:4440).</desc> + <item label="CONF:4440"></item> + </attribute> </element> <element name="cda:title" datatype="ST" minimumMultiplicity="1" maximumMultiplicity="1" id="2.16.840.1.113883.3.1937.99.3.9.5339"> <desc language="en-US">SHALL contain exactly one [1..1] title (CONF:0003).</desc> - <item label="CONF:0003"></item> + <item label="CONF:0002"></item> + </element> + <element name="cda:entry" flexibility="2015-08-01T00:00:00" minimumMultiplicity="1" maximumMultiplicity="*" id="2.16.840.1.113883.3.1937.99.3.9.5341"> + <!-- Test element: HAVE TWO INSTANCES, 1st False and 2nd True >>>> typeCode --> + <attribute typeCode="COMP"> + <item label="CONF:4450"></item> + </attribute> + <element name="cda:act" minimumMultiplicity="1" maximumMultiplicity="*" id="2.16.840.1.113883.3.1937.99.3.9.5347"> + <element name="cda:code" minimumMultiplicity="1" maximumMultiplicity="1" isMandatory="true" id="2.16.840.1.113883.3.1937.99.3.9.5338"> + <desc language="en-US">SHALL contain exactly one [1..1] code (CONF:0002).</desc> + <item label="CONF:0003"></item> + <!-- Test element: HAVE TWO INSTANCES, 1st TRUE and 2nd FALSE --> + <vocabulary code="29545" codeSystem="2.11.111.1.111111.1.1"></vocabulary> + </element> + <element name="cda:entryRelationship" contains="2.16.840.1.113883.10.20.22.4.76" flexibility="2015-08-01T00:00:00" minimumMultiplicity="0" maximumMultiplicity="*" id="2.16.840.1.113883.3.1937.99.3.9.5330"> + <attribute name="typeCode" value="COMP" datatype="cs" id="2.16.840.1.113883.3.1937.99.3.9.5331"> + <item label="CONF:1198-31891"></item> + </attribute> + </element> + + <!-- Test element: HAVE TWO INSTANCES, 1st TRUE and 2nd FALSE (with Info) "classCode and moodCode attribute" "fixed value" --> + <attribute name="classCode" value="ACT"> + <item label="CONF:0004"></item> + </attribute> + <attribute name="moodCode" value="EVN"> + <item label="CONF:0005"></item> + </attribute> + </element> </element> </element> diff --git a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/global/expected_global.xml b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/global/expected_global.xml index 9573fb75caf259cb1a4b1bea17c01ab4145acb48..a72b7fcb8c1a04dd03975260aaed03d6c5d4e58e 100644 --- a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/global/expected_global.xml +++ b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/global/expected_global.xml @@ -23,15 +23,22 @@ </Warning> <Warning> <Test>NullFlavorChecker</Test> - <Location>/ClinicalDocument/component/structuredBody/component/section[3]/entry/act/realmCode</Location> - <Description>In /ClinicalDocument/component/structuredBody/component/section[3]/entry/act/realmCode nullFlavor is defined but the element still defines attributes and sub-elements</Description> + <Location>/ClinicalDocument/component/structuredBody/component/section[1]/entry/act/realmCode</Location> + <Description>In /ClinicalDocument/component/structuredBody/component/section[1]/entry/act/realmCode nullFlavor is defined but the element still defines attributes and sub-elements</Description> <Identifiant>NullFlavorChecker</Identifiant> <Type>Null Flavor Check</Type> </Warning> <Warning> <Test>NullFlavorChecker</Test> - <Location>/ClinicalDocument/component/structuredBody/component/section[3]/entry/act/typeId</Location> - <Description>In /ClinicalDocument/component/structuredBody/component/section[3]/entry/act/typeId nullFlavor is defined but the element still defines attributes and sub-elements</Description> + <Location>/ClinicalDocument/component/structuredBody/component/section[4]/entry/act/realmCode</Location> + <Description>In /ClinicalDocument/component/structuredBody/component/section[4]/entry/act/realmCode nullFlavor is defined but the element still defines attributes and sub-elements</Description> + <Identifiant>NullFlavorChecker</Identifiant> + <Type>Null Flavor Check</Type> + </Warning> + <Warning> + <Test>NullFlavorChecker</Test> + <Location>/ClinicalDocument/component/structuredBody/component/section[4]/entry/act/typeId</Location> + <Description>In /ClinicalDocument/component/structuredBody/component/section[4]/entry/act/typeId nullFlavor is defined but the element still defines attributes and sub-elements</Description> <Identifiant>NullFlavorChecker</Identifiant> <Type>Null Flavor Check</Type> </Warning> @@ -43,1365 +50,1591 @@ <Note> <Test>global001</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Cardinality Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute root SHALL be present</Description> - <Identifiant>global-TestCardinality-global001</Identifiant> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute root SHALL be present</Description> + <Identifiant>global-TestFixedVal-global001</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> - <Note> + <Error> <Test>global002</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Cardinality Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.1'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> - <Identifiant>global-TestCardinality-global002</Identifiant> - <assertion idScheme="global" assertionId="CONF:0001"/> - <Type>Mandatory</Type> - </Note> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute extension SHALL be present (Item : CONF:4440)</Description> + <Identifiant>global-TestFixedVal-global002</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001;CONF:4440"/> + <Type>Cardinality</Type> + </Error> <Note> <Test>global003</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> - <Identifiant>global-TestCardinality-global003</Identifiant> - <assertion idScheme="global" assertionId="CONF:0001"/> - <Type>Cardinality</Type> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute extension SHALL have the value '2019-10-01' if present (Item : CONF:4440)</Description> + <Identifiant>global-TestFixedVal-global003</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001;CONF:4440"/> + <Type>Fixed value</Type> </Note> <Note> <Test>global004</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> - <Identifiant>global-TestCardinality-global004</Identifiant> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.1'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> + <Identifiant>global-TestFixedVal-global004</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> - <Type>Cardinality</Type> + <Type>Mandatory</Type> </Note> <Note> <Test>global005</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Cardinality Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:code, the attribute code SHALL be present</Description> - <Identifiant>global-TestCardinality-global005</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> + <Identifiant>global-TestFixedVal-global005</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> <Test>global006</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Cardinality Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:code, the attribute code SHALL have the value '29545-1' if present</Description> - <Identifiant>global-TestCardinality-global006</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> - <Type>Fixed value</Type> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> + <Identifiant>global-TestFixedVal-global006</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001"/> + <Type>Cardinality</Type> </Note> <Note> <Test>global007</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Cardinality Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> - <Identifiant>global-TestCardinality-global007</Identifiant> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:title (Item : CONF:0002)</Description> + <Identifiant>global-TestFixedVal-global007</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> - <Type>Fixed value</Type> + <Type>Cardinality</Type> </Note> - <Note> + <Error> <Test>global008</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Cardinality Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'], the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0002)</Description> - <Identifiant>global-TestCardinality-global008</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> - <Type>Mandatory</Type> - </Note> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry, the attribute typeCode SHALL be present (Item : CONF:4450)</Description> + <Identifiant>global-TestFixedVal-global008</Identifiant> + <assertion idScheme="global" assertionId="CONF:4450"/> + <Type>Cardinality</Type> + </Error> <Note> <Test>global009</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:code (Item : CONF:0002)</Description> - <Identifiant>global-TestCardinality-global009</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> - <Type>Cardinality</Type> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry, the attribute typeCode SHALL have the value 'COMP' if present (Item : CONF:4450)</Description> + <Identifiant>global-TestFixedVal-global009</Identifiant> + <assertion idScheme="global" assertionId="CONF:4450"/> + <Type>Fixed value</Type> </Note> <Note> <Test>global010</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:title (Item : CONF:0003)</Description> - <Identifiant>global-TestCardinality-global010</Identifiant> - <assertion idScheme="global" assertionId="CONF:0003"/> - <Type>Cardinality</Type> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the attribute classCode SHALL have the value 'ACT' if present (Item : CONF:0004)</Description> + <Identifiant>global-TestFixedVal-global010</Identifiant> + <assertion idScheme="global" assertionId="CONF:0004"/> + <Type>Fixed value</Type> </Note> <Error> <Test>global011</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act SHALL contain at least ONE hl7:realmCode (Item : CONF:0004)</Description> - <Identifiant>global-TestCardinality-global011</Identifiant> - <assertion idScheme="global" assertionId="CONF:0004;CONF:0007"/> - <Type>Cardinality</Type> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the attribute moodCode SHALL have the value 'EVN' if present (Item : CONF:0005)</Description> + <Identifiant>global-TestFixedVal-global011</Identifiant> + <assertion idScheme="global" assertionId="CONF:0005"/> + <Type>Fixed value</Type> </Error> <Note> <Test>global012</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act SHALL contain at least ONE hl7:typeId (Item : CONF:0005)</Description> - <Identifiant>global-TestCardinality-global012</Identifiant> - <assertion idScheme="global" assertionId="CONF:0005;CONF:0007"/> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute code SHALL be present</Description> + <Identifiant>global-TestFixedVal-global012</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> <Type>Cardinality</Type> </Note> - <Note> + <Error> <Test>global013</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Cardinality Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0006)</Description> - <Identifiant>global-TestCardinality-global013</Identifiant> - <assertion idScheme="global" assertionId="CONF:0006;CONF:0007"/> - <Type>Mandatory</Type> - </Note> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute code SHALL have the value '29545' if present</Description> + <Identifiant>global-TestFixedVal-global013</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> + <Type>Fixed value</Type> + </Error> <Note> <Test>global014</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry SHALL contain at least ONE hl7:act</Description> - <Identifiant>global-TestCardinality-global014</Identifiant> - <assertion idScheme="global" assertionId="CONF:0007"/> - <Type>Cardinality</Type> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> + <Identifiant>global-TestFixedVal-global014</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> + <Type>Fixed value</Type> </Note> <Note> <Test>global015</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Cardinality Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:entry (Item : CONF:0007)</Description> - <Identifiant>global-TestCardinality-global015</Identifiant> - <assertion idScheme="global" assertionId="CONF:0007"/> - <Type>Cardinality</Type> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0003)</Description> + <Identifiant>global-TestFixedVal-global015</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> + <Type>Mandatory</Type> </Note> <Note> <Test>global016</Test> - <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Vocabulary Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:templateId[@root='1.1.1.1.1.1.1.2'], the attribute root SHALL be present</Description> - <Identifiant>global-TestVocabulary-global016</Identifiant> - <assertion idScheme="global" assertionId="CONF:0001"/> + <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry SHALL contain at least ONE hl7:act</Description> + <Identifiant>global-TestFixedVal-global016</Identifiant> <Type>Cardinality</Type> </Note> <Note> <Test>global017</Test> - <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Vocabulary Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.2'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> - <Identifiant>global-TestVocabulary-global017</Identifiant> - <assertion idScheme="global" assertionId="CONF:0001"/> - <Type>Mandatory</Type> - </Note> - <Note> - <Test>global018</Test> - <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.2'] (Item : CONF:0001)</Description> - <Identifiant>global-TestVocabulary-global018</Identifiant> - <assertion idScheme="global" assertionId="CONF:0001"/> + <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:entry</Description> + <Identifiant>global-TestFixedVal-global017</Identifiant> <Type>Cardinality</Type> </Note> <Note> - <Test>global019</Test> + <Test>global001</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.2'] (Item : CONF:0001)</Description> - <Identifiant>global-TestVocabulary-global019</Identifiant> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute root SHALL be present</Description> + <Identifiant>global-TestFixedVal-global001</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> - <Note> - <Test>global020</Test> + <Error> + <Test>global002</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Vocabulary Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:code, the attribute code SHALL be present</Description> - <Identifiant>global-TestVocabulary-global020</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute extension SHALL be present (Item : CONF:4440)</Description> + <Identifiant>global-TestFixedVal-global002</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001;CONF:4440"/> <Type>Cardinality</Type> - </Note> - <Note> - <Test>global021</Test> - <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Vocabulary Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:code, the attribute code SHALL have the value '29545-1' if present</Description> - <Identifiant>global-TestVocabulary-global021</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> - <Type>Fixed value</Type> - </Note> + </Error> <Note> - <Test>global022</Test> + <Test>global003</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Vocabulary Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> - <Identifiant>global-TestVocabulary-global022</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute extension SHALL have the value '2019-10-01' if present (Item : CONF:4440)</Description> + <Identifiant>global-TestFixedVal-global003</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001;CONF:4440"/> <Type>Fixed value</Type> </Note> <Note> - <Test>global023</Test> + <Test>global004</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Vocabulary Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2'], the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0002)</Description> - <Identifiant>global-TestVocabulary-global023</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.1'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> + <Identifiant>global-TestFixedVal-global004</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Mandatory</Type> </Note> <Note> - <Test>global024</Test> + <Test>global005</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2'] SHALL contain at least ONE hl7:code (Item : CONF:0002)</Description> - <Identifiant>global-TestVocabulary-global024</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> + <Identifiant>global-TestFixedVal-global005</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global025</Test> + <Test>global006</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2'] SHALL contain at least ONE hl7:title (Item : CONF:0003)</Description> - <Identifiant>global-TestVocabulary-global025</Identifiant> - <assertion idScheme="global" assertionId="CONF:0003"/> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> + <Identifiant>global-TestFixedVal-global006</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global026</Test> + <Test>global007</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Vocabulary Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:entry/hl7:act, the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0005)</Description> - <Identifiant>global-TestVocabulary-global026</Identifiant> - <assertion idScheme="global" assertionId="CONF:0005;CONF:0006"/> - <Type>Mandatory</Type> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:title (Item : CONF:0002)</Description> + <Identifiant>global-TestFixedVal-global007</Identifiant> + <assertion idScheme="global" assertionId="CONF:0002"/> + <Type>Cardinality</Type> </Note> - <Note> - <Test>global027</Test> + <Error> + <Test>global008</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Vocabulary Template, the code of /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:entry/hl7:act/hl7:code SHALL be from the valueSet 1.2.3.4.5.6.7.8.9 (flexibility : dynamic) (Item : CONF:0005)</Description> - <Identifiant>global-TestVocabulary-global027</Identifiant> - <assertion idScheme="global" assertionId="CONF:0005;CONF:0006"/> - <Type>Vocabulary</Type> - </Note> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry, the attribute typeCode SHALL be present (Item : CONF:4450)</Description> + <Identifiant>global-TestFixedVal-global008</Identifiant> + <assertion idScheme="global" assertionId="CONF:4450"/> + <Type>Cardinality</Type> + </Error> <Note> - <Test>global028</Test> + <Test>global009</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:entry/hl7:act SHALL contain at least ONE hl7:priorityCode (Item : CONF:0006)</Description> - <Identifiant>global-TestVocabulary-global028</Identifiant> - <assertion idScheme="global" assertionId="CONF:0006"/> - <Type>Cardinality</Type> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry, the attribute typeCode SHALL have the value 'COMP' if present (Item : CONF:4450)</Description> + <Identifiant>global-TestFixedVal-global009</Identifiant> + <assertion idScheme="global" assertionId="CONF:4450"/> + <Type>Fixed value</Type> </Note> <Note> - <Test>global029</Test> + <Test>global010</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Vocabulary Template, the code of /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:entry/hl7:act/hl7:priorityCode SHALL be from the valueSet 1.2.3.4.5.6.7.8.9 (flexibility : dynamic) OR SHALL be from the valueSet 1.2.3.4.5.6.7.8.10 (flexibility : dynamic) (Item : CONF:0006)</Description> - <Identifiant>global-TestVocabulary-global029</Identifiant> - <assertion idScheme="global" assertionId="CONF:0006"/> - <Type>Vocabulary</Type> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the attribute classCode SHALL have the value 'ACT' if present (Item : CONF:0004)</Description> + <Identifiant>global-TestFixedVal-global010</Identifiant> + <assertion idScheme="global" assertionId="CONF:0004"/> + <Type>Fixed value</Type> </Note> + <Error> + <Test>global011</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the attribute moodCode SHALL have the value 'EVN' if present (Item : CONF:0005)</Description> + <Identifiant>global-TestFixedVal-global011</Identifiant> + <assertion idScheme="global" assertionId="CONF:0005"/> + <Type>Fixed value</Type> + </Error> <Note> - <Test>global030</Test> + <Test>global012</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:entry/hl7:act SHALL contain at least ONE hl7:languageCode (Item : CONF:0007)</Description> - <Identifiant>global-TestVocabulary-global030</Identifiant> - <assertion idScheme="global" assertionId="CONF:0006;CONF:0007"/> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute code SHALL be present</Description> + <Identifiant>global-TestFixedVal-global012</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> <Type>Cardinality</Type> </Note> + <Error> + <Test>global013</Test> + <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute code SHALL have the value '29545' if present</Description> + <Identifiant>global-TestFixedVal-global013</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> + <Type>Fixed value</Type> + </Error> <Note> - <Test>global031</Test> + <Test>global014</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Vocabulary Template, the code of /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:entry/hl7:act/hl7:languageCode SHALL be from the valueSet 1.2.3.4.5.6.7.8.9 (flexibility : 2021-01-01T00:00:00) (Item : CONF:0007)</Description> - <Identifiant>global-TestVocabulary-global031</Identifiant> - <assertion idScheme="global" assertionId="CONF:0006;CONF:0007"/> - <Type>Vocabulary</Type> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> + <Identifiant>global-TestFixedVal-global014</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> + <Type>Fixed value</Type> </Note> <Note> - <Test>global032</Test> + <Test>global015</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:entry SHALL contain at least ONE hl7:act</Description> - <Identifiant>global-TestVocabulary-global032</Identifiant> - <assertion idScheme="global" assertionId="CONF:0006"/> - <Type>Cardinality</Type> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0003)</Description> + <Identifiant>global-TestFixedVal-global015</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> + <Type>Mandatory</Type> </Note> <Note> - <Test>global033</Test> + <Test>global016</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2'] SHALL contain at most ONE hl7:entry (Item : CONF:0006)</Description> - <Identifiant>global-TestVocabulary-global033</Identifiant> - <assertion idScheme="global" assertionId="CONF:0006"/> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry SHALL contain at least ONE hl7:act</Description> + <Identifiant>global-TestFixedVal-global016</Identifiant> <Type>Cardinality</Type> </Note> <Note> - <Test>global034</Test> + <Test>global017</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2'] SHALL contain at least ONE hl7:entry (Item : CONF:0006)</Description> - <Identifiant>global-TestVocabulary-global034</Identifiant> - <assertion idScheme="global" assertionId="CONF:0006"/> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:entry</Description> + <Identifiant>global-TestFixedVal-global017</Identifiant> <Type>Cardinality</Type> </Note> <Note> - <Test>global016</Test> + <Test>global001</Test> <Location>/ClinicalDocument/component/structuredBody/component[2]/section</Location> - <Description>In Test Vocabulary Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:templateId[@root='1.1.1.1.1.1.1.2'], the attribute root SHALL be present</Description> - <Identifiant>global-TestVocabulary-global016</Identifiant> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute root SHALL be present</Description> + <Identifiant>global-TestFixedVal-global001</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> + <Error> + <Test>global002</Test> + <Location>/ClinicalDocument/component/structuredBody/component[2]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute extension SHALL be present (Item : CONF:4440)</Description> + <Identifiant>global-TestFixedVal-global002</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001;CONF:4440"/> + <Type>Cardinality</Type> + </Error> <Note> - <Test>global017</Test> + <Test>global003</Test> <Location>/ClinicalDocument/component/structuredBody/component[2]/section</Location> - <Description>In Test Vocabulary Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.2'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> - <Identifiant>global-TestVocabulary-global017</Identifiant> - <assertion idScheme="global" assertionId="CONF:0001"/> - <Type>Mandatory</Type> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute extension SHALL have the value '2019-10-01' if present (Item : CONF:4440)</Description> + <Identifiant>global-TestFixedVal-global003</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001;CONF:4440"/> + <Type>Fixed value</Type> </Note> <Note> - <Test>global018</Test> + <Test>global004</Test> <Location>/ClinicalDocument/component/structuredBody/component[2]/section</Location> - <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.2'] (Item : CONF:0001)</Description> - <Identifiant>global-TestVocabulary-global018</Identifiant> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.1'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> + <Identifiant>global-TestFixedVal-global004</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> - <Type>Cardinality</Type> + <Type>Mandatory</Type> </Note> <Note> - <Test>global019</Test> + <Test>global005</Test> <Location>/ClinicalDocument/component/structuredBody/component[2]/section</Location> - <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.2'] (Item : CONF:0001)</Description> - <Identifiant>global-TestVocabulary-global019</Identifiant> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> + <Identifiant>global-TestFixedVal-global005</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global020</Test> + <Test>global006</Test> <Location>/ClinicalDocument/component/structuredBody/component[2]/section</Location> - <Description>In Test Vocabulary Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:code, the attribute code SHALL be present</Description> - <Identifiant>global-TestVocabulary-global020</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> + <Identifiant>global-TestFixedVal-global006</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global021</Test> - <Location>/ClinicalDocument/component/structuredBody/component[2]/section</Location> - <Description>In Test Vocabulary Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:code, the attribute code SHALL have the value '29545-1' if present</Description> - <Identifiant>global-TestVocabulary-global021</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> - <Type>Fixed value</Type> - </Note> - <Note> - <Test>global022</Test> - <Location>/ClinicalDocument/component/structuredBody/component[2]/section</Location> - <Description>In Test Vocabulary Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> - <Identifiant>global-TestVocabulary-global022</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> - <Type>Fixed value</Type> - </Note> - <Note> - <Test>global023</Test> + <Test>global007</Test> <Location>/ClinicalDocument/component/structuredBody/component[2]/section</Location> - <Description>In Test Vocabulary Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2'], the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0002)</Description> - <Identifiant>global-TestVocabulary-global023</Identifiant> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:title (Item : CONF:0002)</Description> + <Identifiant>global-TestFixedVal-global007</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> - <Type>Mandatory</Type> + <Type>Cardinality</Type> </Note> - <Note> - <Test>global024</Test> + <Error> + <Test>global008</Test> <Location>/ClinicalDocument/component/structuredBody/component[2]/section</Location> - <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2'] SHALL contain at least ONE hl7:code (Item : CONF:0002)</Description> - <Identifiant>global-TestVocabulary-global024</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry, the attribute typeCode SHALL be present (Item : CONF:4450)</Description> + <Identifiant>global-TestFixedVal-global008</Identifiant> + <assertion idScheme="global" assertionId="CONF:4450"/> <Type>Cardinality</Type> - </Note> + </Error> <Note> - <Test>global025</Test> + <Test>global009</Test> <Location>/ClinicalDocument/component/structuredBody/component[2]/section</Location> - <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2'] SHALL contain at least ONE hl7:title (Item : CONF:0003)</Description> - <Identifiant>global-TestVocabulary-global025</Identifiant> - <assertion idScheme="global" assertionId="CONF:0003"/> - <Type>Cardinality</Type> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry, the attribute typeCode SHALL have the value 'COMP' if present (Item : CONF:4450)</Description> + <Identifiant>global-TestFixedVal-global009</Identifiant> + <assertion idScheme="global" assertionId="CONF:4450"/> + <Type>Fixed value</Type> </Note> <Note> - <Test>global026</Test> + <Test>global010</Test> <Location>/ClinicalDocument/component/structuredBody/component[2]/section</Location> - <Description>In Test Vocabulary Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:entry/hl7:act, the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0005)</Description> - <Identifiant>global-TestVocabulary-global026</Identifiant> - <assertion idScheme="global" assertionId="CONF:0005;CONF:0006"/> - <Type>Mandatory</Type> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the attribute classCode SHALL have the value 'ACT' if present (Item : CONF:0004)</Description> + <Identifiant>global-TestFixedVal-global010</Identifiant> + <assertion idScheme="global" assertionId="CONF:0004"/> + <Type>Fixed value</Type> </Note> <Error> - <Test>global027</Test> + <Test>global011</Test> <Location>/ClinicalDocument/component/structuredBody/component[2]/section</Location> - <Description>In Test Vocabulary Template, the code of /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:entry/hl7:act/hl7:code SHALL be from the valueSet 1.2.3.4.5.6.7.8.9 (flexibility : dynamic) (Item : CONF:0005)</Description> - <Identifiant>global-TestVocabulary-global027</Identifiant> - <assertion idScheme="global" assertionId="CONF:0005;CONF:0006"/> - <Type>Vocabulary</Type> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the attribute moodCode SHALL have the value 'EVN' if present (Item : CONF:0005)</Description> + <Identifiant>global-TestFixedVal-global011</Identifiant> + <assertion idScheme="global" assertionId="CONF:0005"/> + <Type>Fixed value</Type> </Error> <Note> - <Test>global028</Test> + <Test>global012</Test> <Location>/ClinicalDocument/component/structuredBody/component[2]/section</Location> - <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:entry/hl7:act SHALL contain at least ONE hl7:priorityCode (Item : CONF:0006)</Description> - <Identifiant>global-TestVocabulary-global028</Identifiant> - <assertion idScheme="global" assertionId="CONF:0006"/> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute code SHALL be present</Description> + <Identifiant>global-TestFixedVal-global012</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> <Type>Cardinality</Type> </Note> <Error> - <Test>global029</Test> + <Test>global013</Test> <Location>/ClinicalDocument/component/structuredBody/component[2]/section</Location> - <Description>In Test Vocabulary Template, the code of /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:entry/hl7:act/hl7:priorityCode SHALL be from the valueSet 1.2.3.4.5.6.7.8.9 (flexibility : dynamic) OR SHALL be from the valueSet 1.2.3.4.5.6.7.8.10 (flexibility : dynamic) (Item : CONF:0006)</Description> - <Identifiant>global-TestVocabulary-global029</Identifiant> - <assertion idScheme="global" assertionId="CONF:0006"/> - <Type>Vocabulary</Type> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute code SHALL have the value '29545' if present</Description> + <Identifiant>global-TestFixedVal-global013</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> + <Type>Fixed value</Type> </Error> - <Note> - <Test>global030</Test> - <Location>/ClinicalDocument/component/structuredBody/component[2]/section</Location> - <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:entry/hl7:act SHALL contain at least ONE hl7:languageCode (Item : CONF:0007)</Description> - <Identifiant>global-TestVocabulary-global030</Identifiant> - <assertion idScheme="global" assertionId="CONF:0006;CONF:0007"/> - <Type>Cardinality</Type> - </Note> <Error> - <Test>global031</Test> + <Test>global014</Test> <Location>/ClinicalDocument/component/structuredBody/component[2]/section</Location> - <Description>In Test Vocabulary Template, the code of /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:entry/hl7:act/hl7:languageCode SHALL be from the valueSet 1.2.3.4.5.6.7.8.9 (flexibility : 2021-01-01T00:00:00) (Item : CONF:0007)</Description> - <Identifiant>global-TestVocabulary-global031</Identifiant> - <assertion idScheme="global" assertionId="CONF:0006;CONF:0007"/> - <Type>Vocabulary</Type> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> + <Identifiant>global-TestFixedVal-global014</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> + <Type>Fixed value</Type> </Error> <Note> - <Test>global032</Test> + <Test>global015</Test> <Location>/ClinicalDocument/component/structuredBody/component[2]/section</Location> - <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2']/hl7:entry SHALL contain at least ONE hl7:act</Description> - <Identifiant>global-TestVocabulary-global032</Identifiant> - <assertion idScheme="global" assertionId="CONF:0006"/> - <Type>Cardinality</Type> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0003)</Description> + <Identifiant>global-TestFixedVal-global015</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> + <Type>Mandatory</Type> </Note> <Note> - <Test>global033</Test> + <Test>global016</Test> <Location>/ClinicalDocument/component/structuredBody/component[2]/section</Location> - <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2'] SHALL contain at most ONE hl7:entry (Item : CONF:0006)</Description> - <Identifiant>global-TestVocabulary-global033</Identifiant> - <assertion idScheme="global" assertionId="CONF:0006"/> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry SHALL contain at least ONE hl7:act</Description> + <Identifiant>global-TestFixedVal-global016</Identifiant> <Type>Cardinality</Type> </Note> <Note> - <Test>global034</Test> + <Test>global017</Test> <Location>/ClinicalDocument/component/structuredBody/component[2]/section</Location> - <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.2'] SHALL contain at least ONE hl7:entry (Item : CONF:0006)</Description> - <Identifiant>global-TestVocabulary-global034</Identifiant> - <assertion idScheme="global" assertionId="CONF:0006"/> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:entry</Description> + <Identifiant>global-TestFixedVal-global017</Identifiant> <Type>Cardinality</Type> </Note> <Note> - <Test>global035</Test> + <Test>global001</Test> <Location>/ClinicalDocument/component/structuredBody/component[3]/section</Location> - <Description>In Test Mandatory Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.3']/hl7:templateId[@root='1.1.1.1.1.1.1.3'], the attribute root SHALL be present</Description> - <Identifiant>global-TestMandatory-global035</Identifiant> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute root SHALL be present</Description> + <Identifiant>global-TestFixedVal-global001</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> + <Error> + <Test>global002</Test> + <Location>/ClinicalDocument/component/structuredBody/component[3]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute extension SHALL be present (Item : CONF:4440)</Description> + <Identifiant>global-TestFixedVal-global002</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001;CONF:4440"/> + <Type>Cardinality</Type> + </Error> <Note> - <Test>global036</Test> + <Test>global003</Test> + <Location>/ClinicalDocument/component/structuredBody/component[3]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute extension SHALL have the value '2019-10-01' if present (Item : CONF:4440)</Description> + <Identifiant>global-TestFixedVal-global003</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001;CONF:4440"/> + <Type>Fixed value</Type> + </Note> + <Note> + <Test>global004</Test> <Location>/ClinicalDocument/component/structuredBody/component[3]/section</Location> - <Description>In Test Mandatory Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.3'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.3'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> - <Identifiant>global-TestMandatory-global036</Identifiant> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.1'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> + <Identifiant>global-TestFixedVal-global004</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Mandatory</Type> </Note> <Note> - <Test>global037</Test> + <Test>global005</Test> <Location>/ClinicalDocument/component/structuredBody/component[3]/section</Location> - <Description>In Test Mandatory Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.3'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.3'] (Item : CONF:0001)</Description> - <Identifiant>global-TestMandatory-global037</Identifiant> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> + <Identifiant>global-TestFixedVal-global005</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global038</Test> + <Test>global006</Test> <Location>/ClinicalDocument/component/structuredBody/component[3]/section</Location> - <Description>In Test Mandatory Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.3'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.3'] (Item : CONF:0001)</Description> - <Identifiant>global-TestMandatory-global038</Identifiant> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> + <Identifiant>global-TestFixedVal-global006</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global039</Test> + <Test>global007</Test> <Location>/ClinicalDocument/component/structuredBody/component[3]/section</Location> - <Description>In Test Mandatory Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.3']/hl7:code, the attribute code SHALL be present</Description> - <Identifiant>global-TestMandatory-global039</Identifiant> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:title (Item : CONF:0002)</Description> + <Identifiant>global-TestFixedVal-global007</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Cardinality</Type> </Note> - <Note> - <Test>global040</Test> + <Error> + <Test>global008</Test> <Location>/ClinicalDocument/component/structuredBody/component[3]/section</Location> - <Description>In Test Mandatory Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.3']/hl7:code, the attribute code SHALL have the value '29545-1' if present</Description> - <Identifiant>global-TestMandatory-global040</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> - <Type>Fixed value</Type> - </Note> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry, the attribute typeCode SHALL be present (Item : CONF:4450)</Description> + <Identifiant>global-TestFixedVal-global008</Identifiant> + <assertion idScheme="global" assertionId="CONF:4450"/> + <Type>Cardinality</Type> + </Error> <Note> - <Test>global041</Test> + <Test>global009</Test> <Location>/ClinicalDocument/component/structuredBody/component[3]/section</Location> - <Description>In Test Mandatory Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.3']/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> - <Identifiant>global-TestMandatory-global041</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry, the attribute typeCode SHALL have the value 'COMP' if present (Item : CONF:4450)</Description> + <Identifiant>global-TestFixedVal-global009</Identifiant> + <assertion idScheme="global" assertionId="CONF:4450"/> <Type>Fixed value</Type> </Note> - <Note> - <Test>global042</Test> + <Error> + <Test>global010</Test> <Location>/ClinicalDocument/component/structuredBody/component[3]/section</Location> - <Description>In Test Mandatory Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.3'], the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0002)</Description> - <Identifiant>global-TestMandatory-global042</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> - <Type>Mandatory</Type> - </Note> - <Note> - <Test>global043</Test> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the attribute classCode SHALL have the value 'ACT' if present (Item : CONF:0004)</Description> + <Identifiant>global-TestFixedVal-global010</Identifiant> + <assertion idScheme="global" assertionId="CONF:0004"/> + <Type>Fixed value</Type> + </Error> + <Error> + <Test>global011</Test> <Location>/ClinicalDocument/component/structuredBody/component[3]/section</Location> - <Description>In Test Mandatory Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.3'] SHALL contain at least ONE hl7:code (Item : CONF:0002)</Description> - <Identifiant>global-TestMandatory-global043</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> - <Type>Cardinality</Type> - </Note> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the attribute moodCode SHALL have the value 'EVN' if present (Item : CONF:0005)</Description> + <Identifiant>global-TestFixedVal-global011</Identifiant> + <assertion idScheme="global" assertionId="CONF:0005"/> + <Type>Fixed value</Type> + </Error> <Note> - <Test>global044</Test> + <Test>global012</Test> <Location>/ClinicalDocument/component/structuredBody/component[3]/section</Location> - <Description>In Test Mandatory Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.3'] SHALL contain at least ONE hl7:title (Item : CONF:0003)</Description> - <Identifiant>global-TestMandatory-global044</Identifiant> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute code SHALL be present</Description> + <Identifiant>global-TestFixedVal-global012</Identifiant> <assertion idScheme="global" assertionId="CONF:0003"/> <Type>Cardinality</Type> </Note> - <Note> - <Test>global045</Test> - <Location>/ClinicalDocument/component/structuredBody/component[3]/section</Location> - <Description>In Test Mandatory Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.3']/hl7:entry/hl7:act SHALL contain at least ONE hl7:realmCode (Item : CONF:0004)</Description> - <Identifiant>global-TestMandatory-global045</Identifiant> - <assertion idScheme="global" assertionId="CONF:0004;CONF:0007"/> - <Type>Cardinality</Type> - </Note> <Error> - <Test>global046</Test> + <Test>global013</Test> <Location>/ClinicalDocument/component/structuredBody/component[3]/section</Location> - <Description>In Test Mandatory Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.3']/hl7:entry/hl7:act, the element(s) hl7:typeId SHALL not have nullFlavor (mandatory) (Item : CONF:0005)</Description> - <Identifiant>global-TestMandatory-global046</Identifiant> - <assertion idScheme="global" assertionId="CONF:0005;CONF:0007"/> - <Type>Mandatory</Type> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute code SHALL have the value '29545' if present</Description> + <Identifiant>global-TestFixedVal-global013</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> + <Type>Fixed value</Type> </Error> <Note> - <Test>global047</Test> + <Test>global014</Test> <Location>/ClinicalDocument/component/structuredBody/component[3]/section</Location> - <Description>In Test Mandatory Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.3']/hl7:entry/hl7:act SHALL contain at least ONE hl7:typeId (Item : CONF:0005)</Description> - <Identifiant>global-TestMandatory-global047</Identifiant> - <assertion idScheme="global" assertionId="CONF:0005;CONF:0007"/> - <Type>Cardinality</Type> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> + <Identifiant>global-TestFixedVal-global014</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> + <Type>Fixed value</Type> </Note> <Note> - <Test>global048</Test> + <Test>global015</Test> <Location>/ClinicalDocument/component/structuredBody/component[3]/section</Location> - <Description>In Test Mandatory Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.3']/hl7:entry/hl7:act, the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0006)</Description> - <Identifiant>global-TestMandatory-global048</Identifiant> - <assertion idScheme="global" assertionId="CONF:0006;CONF:0007"/> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0003)</Description> + <Identifiant>global-TestFixedVal-global015</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> <Type>Mandatory</Type> </Note> <Note> - <Test>global049</Test> + <Test>global016</Test> <Location>/ClinicalDocument/component/structuredBody/component[3]/section</Location> - <Description>In Test Mandatory Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.3']/hl7:entry SHALL contain at least ONE hl7:act</Description> - <Identifiant>global-TestMandatory-global049</Identifiant> - <assertion idScheme="global" assertionId="CONF:0007"/> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry SHALL contain at least ONE hl7:act</Description> + <Identifiant>global-TestFixedVal-global016</Identifiant> <Type>Cardinality</Type> </Note> <Note> - <Test>global050</Test> + <Test>global017</Test> <Location>/ClinicalDocument/component/structuredBody/component[3]/section</Location> - <Description>In Test Mandatory Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.3'] SHALL contain at least ONE hl7:entry (Item : CONF:0007)</Description> - <Identifiant>global-TestMandatory-global050</Identifiant> - <assertion idScheme="global" assertionId="CONF:0007"/> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:entry</Description> + <Identifiant>global-TestFixedVal-global017</Identifiant> <Type>Cardinality</Type> </Note> <Note> - <Test>global051</Test> + <Test>global001</Test> <Location>/ClinicalDocument/component/structuredBody/component[4]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.4']/hl7:templateId[@root='1.1.1.1.1.1.1.4'], the attribute root SHALL be present</Description> - <Identifiant>global-TestFixedVal-global051</Identifiant> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute root SHALL be present</Description> + <Identifiant>global-TestFixedVal-global001</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> + <Error> + <Test>global002</Test> + <Location>/ClinicalDocument/component/structuredBody/component[4]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute extension SHALL be present (Item : CONF:4440)</Description> + <Identifiant>global-TestFixedVal-global002</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001;CONF:4440"/> + <Type>Cardinality</Type> + </Error> + <Note> + <Test>global003</Test> + <Location>/ClinicalDocument/component/structuredBody/component[4]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute extension SHALL have the value '2019-10-01' if present (Item : CONF:4440)</Description> + <Identifiant>global-TestFixedVal-global003</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001;CONF:4440"/> + <Type>Fixed value</Type> + </Note> <Note> - <Test>global052</Test> + <Test>global004</Test> <Location>/ClinicalDocument/component/structuredBody/component[4]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.4'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.4'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> - <Identifiant>global-TestFixedVal-global052</Identifiant> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.1'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> + <Identifiant>global-TestFixedVal-global004</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Mandatory</Type> </Note> <Note> - <Test>global053</Test> + <Test>global005</Test> <Location>/ClinicalDocument/component/structuredBody/component[4]/section</Location> - <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.4'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.4'] (Item : CONF:0001)</Description> - <Identifiant>global-TestFixedVal-global053</Identifiant> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> + <Identifiant>global-TestFixedVal-global005</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global054</Test> + <Test>global006</Test> <Location>/ClinicalDocument/component/structuredBody/component[4]/section</Location> - <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.4'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.4'] (Item : CONF:0001)</Description> - <Identifiant>global-TestFixedVal-global054</Identifiant> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> + <Identifiant>global-TestFixedVal-global006</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global055</Test> + <Test>global007</Test> <Location>/ClinicalDocument/component/structuredBody/component[4]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.4']/hl7:code, the attribute code SHALL be present</Description> - <Identifiant>global-TestFixedVal-global055</Identifiant> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:title (Item : CONF:0002)</Description> + <Identifiant>global-TestFixedVal-global007</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Cardinality</Type> </Note> + <Error> + <Test>global008</Test> + <Location>/ClinicalDocument/component/structuredBody/component[4]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry, the attribute typeCode SHALL be present (Item : CONF:4450)</Description> + <Identifiant>global-TestFixedVal-global008</Identifiant> + <assertion idScheme="global" assertionId="CONF:4450"/> + <Type>Cardinality</Type> + </Error> <Note> - <Test>global056</Test> + <Test>global009</Test> <Location>/ClinicalDocument/component/structuredBody/component[4]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.4']/hl7:code, the attribute code SHALL have the value '29545-1' if present</Description> - <Identifiant>global-TestFixedVal-global056</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry, the attribute typeCode SHALL have the value 'COMP' if present (Item : CONF:4450)</Description> + <Identifiant>global-TestFixedVal-global009</Identifiant> + <assertion idScheme="global" assertionId="CONF:4450"/> <Type>Fixed value</Type> </Note> <Note> - <Test>global057</Test> + <Test>global010</Test> <Location>/ClinicalDocument/component/structuredBody/component[4]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.4']/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> - <Identifiant>global-TestFixedVal-global057</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the attribute classCode SHALL have the value 'ACT' if present (Item : CONF:0004)</Description> + <Identifiant>global-TestFixedVal-global010</Identifiant> + <assertion idScheme="global" assertionId="CONF:0004"/> <Type>Fixed value</Type> </Note> + <Error> + <Test>global011</Test> + <Location>/ClinicalDocument/component/structuredBody/component[4]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the attribute moodCode SHALL have the value 'EVN' if present (Item : CONF:0005)</Description> + <Identifiant>global-TestFixedVal-global011</Identifiant> + <assertion idScheme="global" assertionId="CONF:0005"/> + <Type>Fixed value</Type> + </Error> <Note> - <Test>global058</Test> + <Test>global012</Test> <Location>/ClinicalDocument/component/structuredBody/component[4]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.4'], the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0002)</Description> - <Identifiant>global-TestFixedVal-global058</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute code SHALL be present</Description> + <Identifiant>global-TestFixedVal-global012</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> + <Type>Cardinality</Type> + </Note> + <Error> + <Test>global013</Test> + <Location>/ClinicalDocument/component/structuredBody/component[4]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute code SHALL have the value '29545' if present</Description> + <Identifiant>global-TestFixedVal-global013</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> + <Type>Fixed value</Type> + </Error> + <Note> + <Test>global014</Test> + <Location>/ClinicalDocument/component/structuredBody/component[4]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> + <Identifiant>global-TestFixedVal-global014</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> + <Type>Fixed value</Type> + </Note> + <Note> + <Test>global015</Test> + <Location>/ClinicalDocument/component/structuredBody/component[4]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0003)</Description> + <Identifiant>global-TestFixedVal-global015</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> <Type>Mandatory</Type> </Note> <Note> - <Test>global059</Test> + <Test>global016</Test> <Location>/ClinicalDocument/component/structuredBody/component[4]/section</Location> - <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.4'] SHALL contain at least ONE hl7:code (Item : CONF:0002)</Description> - <Identifiant>global-TestFixedVal-global059</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry SHALL contain at least ONE hl7:act</Description> + <Identifiant>global-TestFixedVal-global016</Identifiant> <Type>Cardinality</Type> </Note> <Note> - <Test>global060</Test> + <Test>global017</Test> <Location>/ClinicalDocument/component/structuredBody/component[4]/section</Location> - <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.4'] SHALL contain at least ONE hl7:title (Item : CONF:0003)</Description> - <Identifiant>global-TestFixedVal-global060</Identifiant> - <assertion idScheme="global" assertionId="CONF:0003"/> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:entry</Description> + <Identifiant>global-TestFixedVal-global017</Identifiant> <Type>Cardinality</Type> </Note> <Note> - <Test>global051</Test> + <Test>global001</Test> <Location>/ClinicalDocument/component/structuredBody/component[5]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.4']/hl7:templateId[@root='1.1.1.1.1.1.1.4'], the attribute root SHALL be present</Description> - <Identifiant>global-TestFixedVal-global051</Identifiant> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute root SHALL be present</Description> + <Identifiant>global-TestFixedVal-global001</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global052</Test> + <Test>global002</Test> + <Location>/ClinicalDocument/component/structuredBody/component[5]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute extension SHALL be present (Item : CONF:4440)</Description> + <Identifiant>global-TestFixedVal-global002</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001;CONF:4440"/> + <Type>Cardinality</Type> + </Note> + <Note> + <Test>global003</Test> <Location>/ClinicalDocument/component/structuredBody/component[5]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.4'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.4'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> - <Identifiant>global-TestFixedVal-global052</Identifiant> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute extension SHALL have the value '2019-10-01' if present (Item : CONF:4440)</Description> + <Identifiant>global-TestFixedVal-global003</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001;CONF:4440"/> + <Type>Fixed value</Type> + </Note> + <Note> + <Test>global004</Test> + <Location>/ClinicalDocument/component/structuredBody/component[5]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.1'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> + <Identifiant>global-TestFixedVal-global004</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Mandatory</Type> </Note> <Note> - <Test>global053</Test> + <Test>global005</Test> <Location>/ClinicalDocument/component/structuredBody/component[5]/section</Location> - <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.4'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.4'] (Item : CONF:0001)</Description> - <Identifiant>global-TestFixedVal-global053</Identifiant> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> + <Identifiant>global-TestFixedVal-global005</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global054</Test> + <Test>global006</Test> <Location>/ClinicalDocument/component/structuredBody/component[5]/section</Location> - <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.4'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.4'] (Item : CONF:0001)</Description> - <Identifiant>global-TestFixedVal-global054</Identifiant> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> + <Identifiant>global-TestFixedVal-global006</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global055</Test> + <Test>global007</Test> <Location>/ClinicalDocument/component/structuredBody/component[5]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.4']/hl7:code, the attribute code SHALL be present</Description> - <Identifiant>global-TestFixedVal-global055</Identifiant> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:title (Item : CONF:0002)</Description> + <Identifiant>global-TestFixedVal-global007</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Cardinality</Type> </Note> + <Note> + <Test>global008</Test> + <Location>/ClinicalDocument/component/structuredBody/component[5]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry, the attribute typeCode SHALL be present (Item : CONF:4450)</Description> + <Identifiant>global-TestFixedVal-global008</Identifiant> + <assertion idScheme="global" assertionId="CONF:4450"/> + <Type>Cardinality</Type> + </Note> <Error> - <Test>global056</Test> + <Test>global009</Test> <Location>/ClinicalDocument/component/structuredBody/component[5]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.4']/hl7:code, the attribute code SHALL have the value '29545-1' if present</Description> - <Identifiant>global-TestFixedVal-global056</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry, the attribute typeCode SHALL have the value 'COMP' if present (Item : CONF:4450)</Description> + <Identifiant>global-TestFixedVal-global009</Identifiant> + <assertion idScheme="global" assertionId="CONF:4450"/> <Type>Fixed value</Type> </Error> <Note> - <Test>global057</Test> + <Test>global010</Test> <Location>/ClinicalDocument/component/structuredBody/component[5]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.4']/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> - <Identifiant>global-TestFixedVal-global057</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the attribute classCode SHALL have the value 'ACT' if present (Item : CONF:0004)</Description> + <Identifiant>global-TestFixedVal-global010</Identifiant> + <assertion idScheme="global" assertionId="CONF:0004"/> + <Type>Fixed value</Type> + </Note> + <Note> + <Test>global011</Test> + <Location>/ClinicalDocument/component/structuredBody/component[5]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the attribute moodCode SHALL have the value 'EVN' if present (Item : CONF:0005)</Description> + <Identifiant>global-TestFixedVal-global011</Identifiant> + <assertion idScheme="global" assertionId="CONF:0005"/> + <Type>Fixed value</Type> + </Note> + <Note> + <Test>global012</Test> + <Location>/ClinicalDocument/component/structuredBody/component[5]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute code SHALL be present</Description> + <Identifiant>global-TestFixedVal-global012</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> + <Type>Cardinality</Type> + </Note> + <Error> + <Test>global013</Test> + <Location>/ClinicalDocument/component/structuredBody/component[5]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute code SHALL have the value '29545' if present</Description> + <Identifiant>global-TestFixedVal-global013</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> + <Type>Fixed value</Type> + </Error> + <Note> + <Test>global014</Test> + <Location>/ClinicalDocument/component/structuredBody/component[5]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> + <Identifiant>global-TestFixedVal-global014</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> <Type>Fixed value</Type> </Note> <Note> - <Test>global058</Test> + <Test>global015</Test> + <Location>/ClinicalDocument/component/structuredBody/component[5]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0003)</Description> + <Identifiant>global-TestFixedVal-global015</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> + <Type>Mandatory</Type> + </Note> + <Note> + <Test>global016</Test> + <Location>/ClinicalDocument/component/structuredBody/component[5]/section</Location> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry SHALL contain at least ONE hl7:act</Description> + <Identifiant>global-TestFixedVal-global016</Identifiant> + <Type>Cardinality</Type> + </Note> + <Note> + <Test>global017</Test> <Location>/ClinicalDocument/component/structuredBody/component[5]/section</Location> - <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.4'], the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0002)</Description> - <Identifiant>global-TestFixedVal-global058</Identifiant> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:entry</Description> + <Identifiant>global-TestFixedVal-global017</Identifiant> + <Type>Cardinality</Type> + </Note> + <Note> + <Test>global001</Test> + <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute root SHALL be present</Description> + <Identifiant>global-TestFixedVal-global001</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001"/> + <Type>Cardinality</Type> + </Note> + <Note> + <Test>global002</Test> + <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute extension SHALL be present (Item : CONF:4440)</Description> + <Identifiant>global-TestFixedVal-global002</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001;CONF:4440"/> + <Type>Cardinality</Type> + </Note> + <Error> + <Test>global003</Test> + <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:templateId[@root='1.1.1.1.1.1.1.1'], the attribute extension SHALL have the value '2019-10-01' if present (Item : CONF:4440)</Description> + <Identifiant>global-TestFixedVal-global003</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001;CONF:4440"/> + <Type>Fixed value</Type> + </Error> + <Note> + <Test>global004</Test> + <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.1'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> + <Identifiant>global-TestFixedVal-global004</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001"/> + <Type>Mandatory</Type> + </Note> + <Note> + <Test>global005</Test> + <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> + <Identifiant>global-TestFixedVal-global005</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001"/> + <Type>Cardinality</Type> + </Note> + <Note> + <Test>global006</Test> + <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.1'] (Item : CONF:0001)</Description> + <Identifiant>global-TestFixedVal-global006</Identifiant> + <assertion idScheme="global" assertionId="CONF:0001"/> + <Type>Cardinality</Type> + </Note> + <Note> + <Test>global007</Test> + <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:title (Item : CONF:0002)</Description> + <Identifiant>global-TestFixedVal-global007</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> + <Type>Cardinality</Type> + </Note> + <Note> + <Test>global008</Test> + <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry, the attribute typeCode SHALL be present (Item : CONF:4450)</Description> + <Identifiant>global-TestFixedVal-global008</Identifiant> + <assertion idScheme="global" assertionId="CONF:4450"/> + <Type>Cardinality</Type> + </Note> + <Note> + <Test>global009</Test> + <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry, the attribute typeCode SHALL have the value 'COMP' if present (Item : CONF:4450)</Description> + <Identifiant>global-TestFixedVal-global009</Identifiant> + <assertion idScheme="global" assertionId="CONF:4450"/> + <Type>Fixed value</Type> + </Note> + <Error> + <Test>global010</Test> + <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the attribute classCode SHALL have the value 'ACT' if present (Item : CONF:0004)</Description> + <Identifiant>global-TestFixedVal-global010</Identifiant> + <assertion idScheme="global" assertionId="CONF:0004"/> + <Type>Fixed value</Type> + </Error> + <Error> + <Test>global011</Test> + <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the attribute moodCode SHALL have the value 'EVN' if present (Item : CONF:0005)</Description> + <Identifiant>global-TestFixedVal-global011</Identifiant> + <assertion idScheme="global" assertionId="CONF:0005"/> + <Type>Fixed value</Type> + </Error> + <Note> + <Test>global012</Test> + <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute code SHALL be present</Description> + <Identifiant>global-TestFixedVal-global012</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> + <Type>Cardinality</Type> + </Note> + <Error> + <Test>global013</Test> + <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute code SHALL have the value '29545' if present</Description> + <Identifiant>global-TestFixedVal-global013</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> + <Type>Fixed value</Type> + </Error> + <Note> + <Test>global014</Test> + <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> + <Identifiant>global-TestFixedVal-global014</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> + <Type>Fixed value</Type> + </Note> + <Note> + <Test>global015</Test> + <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Description>In Test Fixed Value Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act, the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0003)</Description> + <Identifiant>global-TestFixedVal-global015</Identifiant> + <assertion idScheme="global" assertionId="CONF:0003"/> <Type>Mandatory</Type> </Note> <Note> - <Test>global059</Test> - <Location>/ClinicalDocument/component/structuredBody/component[5]/section</Location> - <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.4'] SHALL contain at least ONE hl7:code (Item : CONF:0002)</Description> - <Identifiant>global-TestFixedVal-global059</Identifiant> - <assertion idScheme="global" assertionId="CONF:0002"/> + <Test>global016</Test> + <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry SHALL contain at least ONE hl7:act</Description> + <Identifiant>global-TestFixedVal-global016</Identifiant> <Type>Cardinality</Type> </Note> <Note> - <Test>global060</Test> - <Location>/ClinicalDocument/component/structuredBody/component[5]/section</Location> - <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.4'] SHALL contain at least ONE hl7:title (Item : CONF:0003)</Description> - <Identifiant>global-TestFixedVal-global060</Identifiant> - <assertion idScheme="global" assertionId="CONF:0003"/> + <Test>global017</Test> + <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Description>In Test Fixed Value Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:entry</Description> + <Identifiant>global-TestFixedVal-global017</Identifiant> <Type>Cardinality</Type> </Note> <Note> - <Test>global061</Test> - <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Test>global018</Test> + <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> <Description>In Test Datatype Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5']/hl7:templateId[@root='1.1.1.1.1.1.1.5'], the attribute root SHALL be present</Description> - <Identifiant>global-TestDataType-global061</Identifiant> + <Identifiant>global-TestDataType-global018</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global062</Test> - <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Test>global019</Test> + <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> <Description>In Test Datatype Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.5'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> - <Identifiant>global-TestDataType-global062</Identifiant> + <Identifiant>global-TestDataType-global019</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Mandatory</Type> </Note> <Note> - <Test>global063</Test> - <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Test>global020</Test> + <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> <Description>In Test Datatype Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.5'] (Item : CONF:0001)</Description> - <Identifiant>global-TestDataType-global063</Identifiant> + <Identifiant>global-TestDataType-global020</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global064</Test> - <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Test>global021</Test> + <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> <Description>In Test Datatype Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.5'] (Item : CONF:0001)</Description> - <Identifiant>global-TestDataType-global064</Identifiant> + <Identifiant>global-TestDataType-global021</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global065</Test> - <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Test>global022</Test> + <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> <Description>In Test Datatype Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5']/hl7:code, the attribute code SHALL be present</Description> - <Identifiant>global-TestDataType-global065</Identifiant> + <Identifiant>global-TestDataType-global022</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global066</Test> - <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Test>global023</Test> + <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> <Description>In Test Datatype Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5']/hl7:code, the attribute code SHALL have the value '29545-1' if present</Description> - <Identifiant>global-TestDataType-global066</Identifiant> + <Identifiant>global-TestDataType-global023</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Fixed value</Type> </Note> <Note> - <Test>global067</Test> - <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Test>global024</Test> + <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> <Description>In Test Datatype Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5']/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> - <Identifiant>global-TestDataType-global067</Identifiant> + <Identifiant>global-TestDataType-global024</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Fixed value</Type> </Note> <Note> - <Test>global068</Test> - <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Test>global025</Test> + <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> <Description>In Test Datatype Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5'], the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0002)</Description> - <Identifiant>global-TestDataType-global068</Identifiant> + <Identifiant>global-TestDataType-global025</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Mandatory</Type> </Note> <Note> - <Test>global069</Test> - <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Test>global026</Test> + <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> <Description>In Test Datatype Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5'] SHALL contain at least ONE hl7:code (Item : CONF:0002)</Description> - <Identifiant>global-TestDataType-global069</Identifiant> + <Identifiant>global-TestDataType-global026</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global070</Test> - <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Test>global027</Test> + <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> <Description>In Test Datatype Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5'] SHALL contain at least ONE hl7:title (Item : CONF:0003)</Description> - <Identifiant>global-TestDataType-global070</Identifiant> + <Identifiant>global-TestDataType-global027</Identifiant> <assertion idScheme="global" assertionId="CONF:0003"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global071</Test> - <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Test>global028</Test> + <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> <Description>In Test Datatype Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5']/hl7:entry/hl7:act, the attribute negationInd SHALL be present (Item : CONF:0006)</Description> - <Identifiant>global-TestDataType-global071</Identifiant> + <Identifiant>global-TestDataType-global028</Identifiant> <assertion idScheme="global" assertionId="CONF:0006;CONF:0007"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global072</Test> - <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Test>global029</Test> + <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> <Description>In Test Datatype Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5']/hl7:entry/hl7:act, the element(s) hl7:code SHALL be from the datatype CE (Item : CONF:0004)</Description> - <Identifiant>global-TestDataType-global072</Identifiant> + <Identifiant>global-TestDataType-global029</Identifiant> <assertion idScheme="global" assertionId="CONF:0004;CONF:0007"/> <Type>Datatype</Type> </Note> <Note> - <Test>global073</Test> - <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Test>global030</Test> + <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> <Description>In Test Datatype Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5']/hl7:entry/hl7:act, the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0004)</Description> - <Identifiant>global-TestDataType-global073</Identifiant> + <Identifiant>global-TestDataType-global030</Identifiant> <assertion idScheme="global" assertionId="CONF:0004;CONF:0007"/> <Type>Mandatory</Type> </Note> <Note> - <Test>global074</Test> - <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Test>global031</Test> + <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> <Description>In Test Datatype Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5']/hl7:entry/hl7:act, the element(s) hl7:priorityCode SHALL be from the datatype CV (Item : CONF:0005)</Description> - <Identifiant>global-TestDataType-global074</Identifiant> + <Identifiant>global-TestDataType-global031</Identifiant> <assertion idScheme="global" assertionId="CONF:0005;CONF:0007"/> <Type>Datatype</Type> </Note> <Note> - <Test>global075</Test> - <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Test>global032</Test> + <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> <Description>In Test Datatype Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5']/hl7:entry/hl7:act SHALL contain at least ONE hl7:priorityCode (Item : CONF:0005)</Description> - <Identifiant>global-TestDataType-global075</Identifiant> + <Identifiant>global-TestDataType-global032</Identifiant> <assertion idScheme="global" assertionId="CONF:0005;CONF:0007"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global076</Test> - <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Test>global033</Test> + <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> <Description>In Test Datatype Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5']/hl7:entry SHALL contain at least ONE hl7:act</Description> - <Identifiant>global-TestDataType-global076</Identifiant> + <Identifiant>global-TestDataType-global033</Identifiant> <assertion idScheme="global" assertionId="CONF:0007"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global077</Test> - <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> + <Test>global034</Test> + <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> <Description>In Test Datatype Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5'] SHALL contain at least ONE hl7:entry (Item : CONF:0007)</Description> - <Identifiant>global-TestDataType-global077</Identifiant> + <Identifiant>global-TestDataType-global034</Identifiant> <assertion idScheme="global" assertionId="CONF:0007"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global061</Test> - <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> + <Test>global018</Test> + <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> <Description>In Test Datatype Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5']/hl7:templateId[@root='1.1.1.1.1.1.1.5'], the attribute root SHALL be present</Description> - <Identifiant>global-TestDataType-global061</Identifiant> + <Identifiant>global-TestDataType-global018</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global062</Test> - <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> + <Test>global019</Test> + <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> <Description>In Test Datatype Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.5'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> - <Identifiant>global-TestDataType-global062</Identifiant> + <Identifiant>global-TestDataType-global019</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Mandatory</Type> </Note> <Note> - <Test>global063</Test> - <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> + <Test>global020</Test> + <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> <Description>In Test Datatype Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.5'] (Item : CONF:0001)</Description> - <Identifiant>global-TestDataType-global063</Identifiant> + <Identifiant>global-TestDataType-global020</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global064</Test> - <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> + <Test>global021</Test> + <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> <Description>In Test Datatype Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.5'] (Item : CONF:0001)</Description> - <Identifiant>global-TestDataType-global064</Identifiant> + <Identifiant>global-TestDataType-global021</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global065</Test> - <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> + <Test>global022</Test> + <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> <Description>In Test Datatype Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5']/hl7:code, the attribute code SHALL be present</Description> - <Identifiant>global-TestDataType-global065</Identifiant> + <Identifiant>global-TestDataType-global022</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global066</Test> - <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> + <Test>global023</Test> + <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> <Description>In Test Datatype Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5']/hl7:code, the attribute code SHALL have the value '29545-1' if present</Description> - <Identifiant>global-TestDataType-global066</Identifiant> + <Identifiant>global-TestDataType-global023</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Fixed value</Type> </Note> <Note> - <Test>global067</Test> - <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> + <Test>global024</Test> + <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> <Description>In Test Datatype Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5']/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> - <Identifiant>global-TestDataType-global067</Identifiant> + <Identifiant>global-TestDataType-global024</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Fixed value</Type> </Note> <Note> - <Test>global068</Test> - <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> + <Test>global025</Test> + <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> <Description>In Test Datatype Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5'], the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0002)</Description> - <Identifiant>global-TestDataType-global068</Identifiant> + <Identifiant>global-TestDataType-global025</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Mandatory</Type> </Note> <Note> - <Test>global069</Test> - <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> + <Test>global026</Test> + <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> <Description>In Test Datatype Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5'] SHALL contain at least ONE hl7:code (Item : CONF:0002)</Description> - <Identifiant>global-TestDataType-global069</Identifiant> + <Identifiant>global-TestDataType-global026</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global070</Test> - <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> + <Test>global027</Test> + <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> <Description>In Test Datatype Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5'] SHALL contain at least ONE hl7:title (Item : CONF:0003)</Description> - <Identifiant>global-TestDataType-global070</Identifiant> + <Identifiant>global-TestDataType-global027</Identifiant> <assertion idScheme="global" assertionId="CONF:0003"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global071</Test> - <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> + <Test>global028</Test> + <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> <Description>In Test Datatype Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5']/hl7:entry/hl7:act, the attribute negationInd SHALL be present (Item : CONF:0006)</Description> - <Identifiant>global-TestDataType-global071</Identifiant> + <Identifiant>global-TestDataType-global028</Identifiant> <assertion idScheme="global" assertionId="CONF:0006;CONF:0007"/> <Type>Cardinality</Type> </Note> <Error> - <Test>global072</Test> - <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> + <Test>global029</Test> + <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> <Description>In Test Datatype Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5']/hl7:entry/hl7:act, the element(s) hl7:code SHALL be from the datatype CE (Item : CONF:0004)</Description> - <Identifiant>global-TestDataType-global072</Identifiant> + <Identifiant>global-TestDataType-global029</Identifiant> <assertion idScheme="global" assertionId="CONF:0004;CONF:0007"/> <Type>Datatype</Type> </Error> <Note> - <Test>global073</Test> - <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> + <Test>global030</Test> + <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> <Description>In Test Datatype Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5']/hl7:entry/hl7:act, the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0004)</Description> - <Identifiant>global-TestDataType-global073</Identifiant> + <Identifiant>global-TestDataType-global030</Identifiant> <assertion idScheme="global" assertionId="CONF:0004;CONF:0007"/> <Type>Mandatory</Type> </Note> <Error> - <Test>global074</Test> - <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> + <Test>global031</Test> + <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> <Description>In Test Datatype Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5']/hl7:entry/hl7:act, the element(s) hl7:priorityCode SHALL be from the datatype CV (Item : CONF:0005)</Description> - <Identifiant>global-TestDataType-global074</Identifiant> + <Identifiant>global-TestDataType-global031</Identifiant> <assertion idScheme="global" assertionId="CONF:0005;CONF:0007"/> <Type>Datatype</Type> </Error> <Note> - <Test>global075</Test> - <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> + <Test>global032</Test> + <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> <Description>In Test Datatype Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5']/hl7:entry/hl7:act SHALL contain at least ONE hl7:priorityCode (Item : CONF:0005)</Description> - <Identifiant>global-TestDataType-global075</Identifiant> + <Identifiant>global-TestDataType-global032</Identifiant> <assertion idScheme="global" assertionId="CONF:0005;CONF:0007"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global076</Test> - <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> + <Test>global033</Test> + <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> <Description>In Test Datatype Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5']/hl7:entry SHALL contain at least ONE hl7:act</Description> - <Identifiant>global-TestDataType-global076</Identifiant> + <Identifiant>global-TestDataType-global033</Identifiant> <assertion idScheme="global" assertionId="CONF:0007"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global077</Test> - <Location>/ClinicalDocument/component/structuredBody/component[7]/section</Location> + <Test>global034</Test> + <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> <Description>In Test Datatype Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.5'] SHALL contain at least ONE hl7:entry (Item : CONF:0007)</Description> - <Identifiant>global-TestDataType-global077</Identifiant> + <Identifiant>global-TestDataType-global034</Identifiant> <assertion idScheme="global" assertionId="CONF:0007"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global078</Test> - <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> + <Test>global035</Test> + <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> <Description>In Test Context Template, the element defined by /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'] shall verify this requirement : string-length((cda:title/text()))>5 and string-length((cda:title/text()))<30</Description> - <Identifiant>global-TestContext-global078</Identifiant> + <Identifiant>global-TestContext-global035</Identifiant> <Type>Context</Type> </Note> <Note> - <Test>global079</Test> - <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> + <Test>global036</Test> + <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> <Description>In Test Context Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:templateId[@root='1.1.1.1.1.1.1.6'], the attribute root SHALL be present</Description> - <Identifiant>global-TestContext-global079</Identifiant> + <Identifiant>global-TestContext-global036</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global080</Test> - <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> + <Test>global037</Test> + <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> <Description>In Test Context Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.6'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> - <Identifiant>global-TestContext-global080</Identifiant> + <Identifiant>global-TestContext-global037</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Mandatory</Type> </Note> <Note> - <Test>global081</Test> - <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> + <Test>global038</Test> + <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> <Description>In Test Context Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.6'] (Item : CONF:0001)</Description> - <Identifiant>global-TestContext-global081</Identifiant> + <Identifiant>global-TestContext-global038</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global082</Test> - <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> + <Test>global039</Test> + <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> <Description>In Test Context Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.6'] (Item : CONF:0001)</Description> - <Identifiant>global-TestContext-global082</Identifiant> + <Identifiant>global-TestContext-global039</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global083</Test> - <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> + <Test>global040</Test> + <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> <Description>In Test Context Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:code, the attribute code SHALL be present</Description> - <Identifiant>global-TestContext-global083</Identifiant> + <Identifiant>global-TestContext-global040</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global084</Test> - <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> + <Test>global041</Test> + <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> <Description>In Test Context Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:code, the attribute code SHALL have the value '29545-1' if present</Description> - <Identifiant>global-TestContext-global084</Identifiant> + <Identifiant>global-TestContext-global041</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Fixed value</Type> </Note> <Note> - <Test>global085</Test> - <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> + <Test>global042</Test> + <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> <Description>In Test Context Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> - <Identifiant>global-TestContext-global085</Identifiant> + <Identifiant>global-TestContext-global042</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Fixed value</Type> </Note> <Note> - <Test>global086</Test> - <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> + <Test>global043</Test> + <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> <Description>In Test Context Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'], the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0002)</Description> - <Identifiant>global-TestContext-global086</Identifiant> + <Identifiant>global-TestContext-global043</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Mandatory</Type> </Note> <Note> - <Test>global087</Test> - <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> + <Test>global044</Test> + <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> <Description>In Test Context Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'] SHALL contain at least ONE hl7:code (Item : CONF:0002)</Description> - <Identifiant>global-TestContext-global087</Identifiant> + <Identifiant>global-TestContext-global044</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global088</Test> - <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> + <Test>global045</Test> + <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> <Description>In Test Context Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'] SHALL contain at least ONE hl7:title (Item : CONF:0003)</Description> - <Identifiant>global-TestContext-global088</Identifiant> + <Identifiant>global-TestContext-global045</Identifiant> <assertion idScheme="global" assertionId="CONF:0003"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global089</Test> - <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> + <Test>global046</Test> + <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> <Description>In Test Context Template, the element defined by /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:entry/hl7:act shall verify this requirement : cda:code[@code='11111'] or cda:priorityCode</Description> - <Identifiant>global-TestContext-global089</Identifiant> + <Identifiant>global-TestContext-global046</Identifiant> <assertion idScheme="global" assertionId="CONF:0007"/> <Type>Context</Type> </Note> <Note> - <Test>global090</Test> - <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> + <Test>global047</Test> + <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> <Description>In Test Context Template, the element defined by /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:entry/hl7:act shall verify this requirement : not(@negationInd) or .[@negationInd='false']</Description> - <Identifiant>global-TestContext-global090</Identifiant> + <Identifiant>global-TestContext-global047</Identifiant> <assertion idScheme="global" assertionId="CONF:0007"/> <Type>Context</Type> </Note> <Note> - <Test>global091</Test> - <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> + <Test>global048</Test> + <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> <Description>In Test Context Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:entry/hl7:act, the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0004)</Description> - <Identifiant>global-TestContext-global091</Identifiant> + <Identifiant>global-TestContext-global048</Identifiant> <assertion idScheme="global" assertionId="CONF:0004;CONF:0007"/> <Type>Mandatory</Type> </Note> <Note> - <Test>global092</Test> - <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> + <Test>global049</Test> + <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> <Description>In Test Context Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:entry SHALL contain at least ONE hl7:act</Description> - <Identifiant>global-TestContext-global092</Identifiant> + <Identifiant>global-TestContext-global049</Identifiant> <assertion idScheme="global" assertionId="CONF:0007"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global093</Test> - <Location>/ClinicalDocument/component/structuredBody/component[8]/section</Location> + <Test>global050</Test> + <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> <Description>In Test Context Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'] SHALL contain at least ONE hl7:entry (Item : CONF:0007)</Description> - <Identifiant>global-TestContext-global093</Identifiant> + <Identifiant>global-TestContext-global050</Identifiant> <assertion idScheme="global" assertionId="CONF:0007"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global078</Test> - <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> + <Test>global035</Test> + <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> <Description>In Test Context Template, the element defined by /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'] shall verify this requirement : string-length((cda:title/text()))>5 and string-length((cda:title/text()))<30</Description> - <Identifiant>global-TestContext-global078</Identifiant> + <Identifiant>global-TestContext-global035</Identifiant> <Type>Context</Type> </Note> <Note> - <Test>global079</Test> - <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> + <Test>global036</Test> + <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> <Description>In Test Context Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:templateId[@root='1.1.1.1.1.1.1.6'], the attribute root SHALL be present</Description> - <Identifiant>global-TestContext-global079</Identifiant> + <Identifiant>global-TestContext-global036</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global080</Test> - <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> + <Test>global037</Test> + <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> <Description>In Test Context Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.6'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> - <Identifiant>global-TestContext-global080</Identifiant> + <Identifiant>global-TestContext-global037</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Mandatory</Type> </Note> <Note> - <Test>global081</Test> - <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> + <Test>global038</Test> + <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> <Description>In Test Context Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.6'] (Item : CONF:0001)</Description> - <Identifiant>global-TestContext-global081</Identifiant> + <Identifiant>global-TestContext-global038</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global082</Test> - <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> + <Test>global039</Test> + <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> <Description>In Test Context Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.6'] (Item : CONF:0001)</Description> - <Identifiant>global-TestContext-global082</Identifiant> + <Identifiant>global-TestContext-global039</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global083</Test> - <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> + <Test>global040</Test> + <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> <Description>In Test Context Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:code, the attribute code SHALL be present</Description> - <Identifiant>global-TestContext-global083</Identifiant> + <Identifiant>global-TestContext-global040</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global084</Test> - <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> + <Test>global041</Test> + <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> <Description>In Test Context Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:code, the attribute code SHALL have the value '29545-1' if present</Description> - <Identifiant>global-TestContext-global084</Identifiant> + <Identifiant>global-TestContext-global041</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Fixed value</Type> </Note> <Note> - <Test>global085</Test> - <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> + <Test>global042</Test> + <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> <Description>In Test Context Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> - <Identifiant>global-TestContext-global085</Identifiant> + <Identifiant>global-TestContext-global042</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Fixed value</Type> </Note> <Note> - <Test>global086</Test> - <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> + <Test>global043</Test> + <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> <Description>In Test Context Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'], the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0002)</Description> - <Identifiant>global-TestContext-global086</Identifiant> + <Identifiant>global-TestContext-global043</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Mandatory</Type> </Note> <Note> - <Test>global087</Test> - <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> + <Test>global044</Test> + <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> <Description>In Test Context Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'] SHALL contain at least ONE hl7:code (Item : CONF:0002)</Description> - <Identifiant>global-TestContext-global087</Identifiant> + <Identifiant>global-TestContext-global044</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global088</Test> - <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> + <Test>global045</Test> + <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> <Description>In Test Context Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'] SHALL contain at least ONE hl7:title (Item : CONF:0003)</Description> - <Identifiant>global-TestContext-global088</Identifiant> + <Identifiant>global-TestContext-global045</Identifiant> <assertion idScheme="global" assertionId="CONF:0003"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global089</Test> - <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> + <Test>global046</Test> + <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> <Description>In Test Context Template, the element defined by /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:entry/hl7:act shall verify this requirement : cda:code[@code='11111'] or cda:priorityCode</Description> - <Identifiant>global-TestContext-global089</Identifiant> + <Identifiant>global-TestContext-global046</Identifiant> <assertion idScheme="global" assertionId="CONF:0007"/> <Type>Context</Type> </Note> <Note> - <Test>global090</Test> - <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> + <Test>global047</Test> + <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> <Description>In Test Context Template, the element defined by /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:entry/hl7:act shall verify this requirement : not(@negationInd) or .[@negationInd='false']</Description> - <Identifiant>global-TestContext-global090</Identifiant> + <Identifiant>global-TestContext-global047</Identifiant> <assertion idScheme="global" assertionId="CONF:0007"/> <Type>Context</Type> </Note> <Note> - <Test>global091</Test> - <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> + <Test>global048</Test> + <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> <Description>In Test Context Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:entry/hl7:act, the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0004)</Description> - <Identifiant>global-TestContext-global091</Identifiant> + <Identifiant>global-TestContext-global048</Identifiant> <assertion idScheme="global" assertionId="CONF:0004;CONF:0007"/> <Type>Mandatory</Type> </Note> <Note> - <Test>global092</Test> - <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> + <Test>global049</Test> + <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> <Description>In Test Context Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:entry SHALL contain at least ONE hl7:act</Description> - <Identifiant>global-TestContext-global092</Identifiant> + <Identifiant>global-TestContext-global049</Identifiant> <assertion idScheme="global" assertionId="CONF:0007"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global093</Test> - <Location>/ClinicalDocument/component/structuredBody/component[9]/section</Location> + <Test>global050</Test> + <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> <Description>In Test Context Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'] SHALL contain at least ONE hl7:entry (Item : CONF:0007)</Description> - <Identifiant>global-TestContext-global093</Identifiant> + <Identifiant>global-TestContext-global050</Identifiant> <assertion idScheme="global" assertionId="CONF:0007"/> <Type>Cardinality</Type> </Note> <Warning> - <Test>global078</Test> - <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> + <Test>global035</Test> + <Location>/ClinicalDocument/component/structuredBody/component[11]/section</Location> <Description>In Test Context Template, the element defined by /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'] shall verify this requirement : string-length((cda:title/text()))>5 and string-length((cda:title/text()))<30</Description> - <Identifiant>global-TestContext-global078</Identifiant> + <Identifiant>global-TestContext-global035</Identifiant> <Type>Context</Type> </Warning> <Note> - <Test>global079</Test> - <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> + <Test>global036</Test> + <Location>/ClinicalDocument/component/structuredBody/component[11]/section</Location> <Description>In Test Context Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:templateId[@root='1.1.1.1.1.1.1.6'], the attribute root SHALL be present</Description> - <Identifiant>global-TestContext-global079</Identifiant> + <Identifiant>global-TestContext-global036</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global080</Test> - <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> + <Test>global037</Test> + <Location>/ClinicalDocument/component/structuredBody/component[11]/section</Location> <Description>In Test Context Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'], the element(s) hl7:templateId[@root='1.1.1.1.1.1.1.6'] SHALL not have nullFlavor (mandatory) (Item : CONF:0001)</Description> - <Identifiant>global-TestContext-global080</Identifiant> + <Identifiant>global-TestContext-global037</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Mandatory</Type> </Note> <Note> - <Test>global081</Test> - <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> + <Test>global038</Test> + <Location>/ClinicalDocument/component/structuredBody/component[11]/section</Location> <Description>In Test Context Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'] SHALL contain at most ONE hl7:templateId[@root='1.1.1.1.1.1.1.6'] (Item : CONF:0001)</Description> - <Identifiant>global-TestContext-global081</Identifiant> + <Identifiant>global-TestContext-global038</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global082</Test> - <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> + <Test>global039</Test> + <Location>/ClinicalDocument/component/structuredBody/component[11]/section</Location> <Description>In Test Context Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'] SHALL contain at least ONE hl7:templateId[@root='1.1.1.1.1.1.1.6'] (Item : CONF:0001)</Description> - <Identifiant>global-TestContext-global082</Identifiant> + <Identifiant>global-TestContext-global039</Identifiant> <assertion idScheme="global" assertionId="CONF:0001"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global083</Test> - <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> + <Test>global040</Test> + <Location>/ClinicalDocument/component/structuredBody/component[11]/section</Location> <Description>In Test Context Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:code, the attribute code SHALL be present</Description> - <Identifiant>global-TestContext-global083</Identifiant> + <Identifiant>global-TestContext-global040</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global084</Test> - <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> + <Test>global041</Test> + <Location>/ClinicalDocument/component/structuredBody/component[11]/section</Location> <Description>In Test Context Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:code, the attribute code SHALL have the value '29545-1' if present</Description> - <Identifiant>global-TestContext-global084</Identifiant> + <Identifiant>global-TestContext-global041</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Fixed value</Type> </Note> <Note> - <Test>global085</Test> - <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> + <Test>global042</Test> + <Location>/ClinicalDocument/component/structuredBody/component[11]/section</Location> <Description>In Test Context Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:code, the attribute codeSystem SHALL have the value '2.11.111.1.111111.1.1' if present</Description> - <Identifiant>global-TestContext-global085</Identifiant> + <Identifiant>global-TestContext-global042</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Fixed value</Type> </Note> <Note> - <Test>global086</Test> - <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> + <Test>global043</Test> + <Location>/ClinicalDocument/component/structuredBody/component[11]/section</Location> <Description>In Test Context Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'], the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0002)</Description> - <Identifiant>global-TestContext-global086</Identifiant> + <Identifiant>global-TestContext-global043</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Mandatory</Type> </Note> <Note> - <Test>global087</Test> - <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> + <Test>global044</Test> + <Location>/ClinicalDocument/component/structuredBody/component[11]/section</Location> <Description>In Test Context Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'] SHALL contain at least ONE hl7:code (Item : CONF:0002)</Description> - <Identifiant>global-TestContext-global087</Identifiant> + <Identifiant>global-TestContext-global044</Identifiant> <assertion idScheme="global" assertionId="CONF:0002"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global088</Test> - <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> + <Test>global045</Test> + <Location>/ClinicalDocument/component/structuredBody/component[11]/section</Location> <Description>In Test Context Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'] SHALL contain at least ONE hl7:title (Item : CONF:0003)</Description> - <Identifiant>global-TestContext-global088</Identifiant> + <Identifiant>global-TestContext-global045</Identifiant> <assertion idScheme="global" assertionId="CONF:0003"/> <Type>Cardinality</Type> </Note> <Error> - <Test>global089</Test> - <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> + <Test>global046</Test> + <Location>/ClinicalDocument/component/structuredBody/component[11]/section</Location> <Description>In Test Context Template, the element defined by /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:entry/hl7:act shall verify this requirement : cda:code[@code='11111'] or cda:priorityCode</Description> - <Identifiant>global-TestContext-global089</Identifiant> + <Identifiant>global-TestContext-global046</Identifiant> <assertion idScheme="global" assertionId="CONF:0007"/> <Type>Context</Type> </Error> <Error> - <Test>global090</Test> - <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> + <Test>global047</Test> + <Location>/ClinicalDocument/component/structuredBody/component[11]/section</Location> <Description>In Test Context Template, the element defined by /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:entry/hl7:act shall verify this requirement : not(@negationInd) or .[@negationInd='false']</Description> - <Identifiant>global-TestContext-global090</Identifiant> + <Identifiant>global-TestContext-global047</Identifiant> <assertion idScheme="global" assertionId="CONF:0007"/> <Type>Context</Type> </Error> <Note> - <Test>global091</Test> - <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> + <Test>global048</Test> + <Location>/ClinicalDocument/component/structuredBody/component[11]/section</Location> <Description>In Test Context Template, in /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:entry/hl7:act, the element(s) hl7:code SHALL not have nullFlavor (mandatory) (Item : CONF:0004)</Description> - <Identifiant>global-TestContext-global091</Identifiant> + <Identifiant>global-TestContext-global048</Identifiant> <assertion idScheme="global" assertionId="CONF:0004;CONF:0007"/> <Type>Mandatory</Type> </Note> <Note> - <Test>global092</Test> - <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> + <Test>global049</Test> + <Location>/ClinicalDocument/component/structuredBody/component[11]/section</Location> <Description>In Test Context Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6']/hl7:entry SHALL contain at least ONE hl7:act</Description> - <Identifiant>global-TestContext-global092</Identifiant> + <Identifiant>global-TestContext-global049</Identifiant> <assertion idScheme="global" assertionId="CONF:0007"/> <Type>Cardinality</Type> </Note> <Note> - <Test>global093</Test> - <Location>/ClinicalDocument/component/structuredBody/component[10]/section</Location> + <Test>global050</Test> + <Location>/ClinicalDocument/component/structuredBody/component[11]/section</Location> <Description>In Test Context Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.6'] SHALL contain at least ONE hl7:entry (Item : CONF:0007)</Description> - <Identifiant>global-TestContext-global093</Identifiant> + <Identifiant>global-TestContext-global050</Identifiant> <assertion idScheme="global" assertionId="CONF:0007"/> <Type>Cardinality</Type> </Note> @@ -1410,6 +1643,14 @@ <Location>/ClinicalDocument</Location> <Description>Success: Found all IDs referenced</Description> </Note> + <Error> + <Test>rmim051</Test> + <Location>/ClinicalDocument</Location> + <Description>The Section.id element is unique into the CDA Document (RMIM-051)</Description> + <Identifiant>cdabasic-ClinicalDocumentSpec-rmim051</Identifiant> + <assertion idScheme="RMIM" assertionId="RMIM-051"/> + <Type>Cardinality</Type> + </Error> <Warning> <Test>rmim052</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> @@ -1458,6 +1699,14 @@ <assertion idScheme="RMIM" assertionId="RMIM-052"/> <Type>Mandatory</Type> </Warning> + <Error> + <Test>rmim066</Test> + <Location>/ClinicalDocument/component/structuredBody/component[5]/section/entry[0]</Location> + <Description>When entry@typeCode=DRIV, the section containing the entry SHALL contain a text element (RMIM-066)</Description> + <Identifiant>cdabasic-EntrySpec-rmim066</Identifiant> + <assertion idScheme="RMIM" assertionId="RMIM-066"/> + <Type>Datatype</Type> + </Error> <Warning> <Test>rmim052</Test> <Location>/ClinicalDocument/component/structuredBody/component[6]/section</Location> @@ -1498,6 +1747,14 @@ <assertion idScheme="RMIM" assertionId="RMIM-052"/> <Type>Mandatory</Type> </Warning> + <Warning> + <Test>rmim052</Test> + <Location>/ClinicalDocument/component/structuredBody/component[11]/section</Location> + <Description>Section.text SHALL be specified, as it is a required element (RMIM-052)</Description> + <Identifiant>cdabasic-SectionSpec-rmim052</Identifiant> + <assertion idScheme="RMIM" assertionId="RMIM-052"/> + <Type>Mandatory</Type> + </Warning> <Note> <Test>test_IDs</Test> <Location>/ClinicalDocument</Location> @@ -1506,43 +1763,46 @@ <Result>FAILED</Result> </MDAValidation> <ValidationResultsOverview> - <ValidationDate>2022, 01 10</ValidationDate> - <ValidationTime>03:20:30</ValidationTime> + <ValidationDate>2022, 03 08</ValidationDate> + <ValidationTime>04:48:55</ValidationTime> <ValidationServiceName>Gazelle CDA Validation : global</ValidationServiceName> <ValidationTestResult>FAILED</ValidationTestResult> </ValidationResultsOverview> <TemplateDesc validation="Error"> <Template validation="Error" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[0]/section"> - <templateId id="1.1.1.1.1.1.1.1" name="TestCardinality"/> + <templateId id="1.1.1.1.1.1.1.1" name="TestFixedVal"/> </Template> - <Template validation="Report" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[1]/section"> - <templateId id="1.1.1.1.1.1.1.2" name="TestVocabulary"/> + <Template validation="Error" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[1]/section"> + <templateId id="1.1.1.1.1.1.1.1" name="TestFixedVal"/> </Template> <Template validation="Error" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[2]/section"> - <templateId id="1.1.1.1.1.1.1.2" name="TestVocabulary"/> + <templateId id="1.1.1.1.1.1.1.1" name="TestFixedVal"/> </Template> <Template validation="Error" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[3]/section"> - <templateId id="1.1.1.1.1.1.1.3" name="TestMandatory"/> + <templateId id="1.1.1.1.1.1.1.1" name="TestFixedVal"/> </Template> - <Template validation="Report" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[4]/section"> - <templateId id="1.1.1.1.1.1.1.4" name="TestFixedVal"/> + <Template validation="Error" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[4]/section"> + <templateId id="1.1.1.1.1.1.1.1" name="TestFixedVal"/> </Template> <Template validation="Error" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[5]/section"> - <templateId id="1.1.1.1.1.1.1.4" name="TestFixedVal"/> + <templateId id="1.1.1.1.1.1.1.1" name="TestFixedVal"/> + </Template> + <Template validation="Error" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[6]/section"> + <templateId id="1.1.1.1.1.1.1.1" name="TestFixedVal"/> </Template> - <Template validation="Report" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[6]/section"> + <Template validation="Report" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[7]/section"> <templateId id="1.1.1.1.1.1.1.5" name="TestDataType"/> </Template> - <Template validation="Error" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[7]/section"> + <Template validation="Error" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[8]/section"> <templateId id="1.1.1.1.1.1.1.5" name="TestDataType"/> </Template> - <Template validation="Report" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[8]/section"> + <Template validation="Report" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[9]/section"> <templateId id="1.1.1.1.1.1.1.6" name="TestContext"/> </Template> - <Template validation="Report" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[9]/section"> + <Template validation="Report" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[10]/section"> <templateId id="1.1.1.1.1.1.1.6" name="TestContext"/> </Template> - <Template validation="Error" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[10]/section"> + <Template validation="Error" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[11]/section"> <templateId id="1.1.1.1.1.1.1.6" name="TestContext"/> </Template> </TemplateDesc> diff --git a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/mandatory/cda_mandatory.xml b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/mandatory/cda_mandatory.xml index d8a8f31766634a763ae5a3d1de5cd0d0833d5a08..07523cd80cd88079f5256fd82980f227df4b4bea 100644 --- a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/mandatory/cda_mandatory.xml +++ b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/mandatory/cda_mandatory.xml @@ -7,7 +7,7 @@ <confidentialityCode code="N" codeSystem="2.16.840.1.113883.5.25"/> <recordTarget> <patientRole nullFlavor="UNK"> - <id root="1.2.3.4.5.1.7" extension="19173"/> + <id root="1.2.3.4.5.1.7" extension="191"/> </patientRole> </recordTarget> <author nullFlavor="UNK" > @@ -41,10 +41,10 @@ <!-- Test CONF:0004 "not mandatory" TRUE--> <realmCode code="12345-7" nullFlavor="UNK"/> + <!--<realmCode nullFlavor="UNK"/> --> <!-- Test CONF:0005 "mandatory" FALSE--> <typeId extension="123456789" root="2.16.840.1.113883.1.3" nullFlavor="UNK" /> - <!-- Test CONF:0006 "mandatory" TRUE--> <code code="12345-6" /> </act> diff --git a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/mandatory/decor_mandatory.xml b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/mandatory/decor_mandatory.xml index 254a9d2586e8bdf3c28fa5c0ce778e91d8546b42..13df28ddae2619d23c8a1ec5a13a175a2c44afe0 100644 --- a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/mandatory/decor_mandatory.xml +++ b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/mandatory/decor_mandatory.xml @@ -40,6 +40,8 @@ <item label="CONF:0006"></item> </element> + + <attribute name="classCode"/> <attribute name="moodCode" /> diff --git a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/mandatory/expected_mandatory.xml b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/mandatory/expected_mandatory.xml index 1abc701b2b449ac595efd6ebd30dbca993fdbd68..d9602250b2ac58b1b2609a3cc763bf7d8a449fb0 100644 --- a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/mandatory/expected_mandatory.xml +++ b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/mandatory/expected_mandatory.xml @@ -189,8 +189,8 @@ <Result>FAILED</Result> </MDAValidation> <ValidationResultsOverview> - <ValidationDate>2022, 01 07</ValidationDate> - <ValidationTime>02:14:48</ValidationTime> + <ValidationDate>2022, 03 07</ValidationDate> + <ValidationTime>02:54:23</ValidationTime> <ValidationServiceName>Gazelle CDA Validation : mand</ValidationServiceName> <ValidationTestResult>FAILED</ValidationTestResult> </ValidationResultsOverview> diff --git a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/vocabulary/cda_vocabulary.xml b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/vocabulary/cda_vocabulary.xml index 09c297b1af114a79a36158aaf3a848bbaee5c74c..d2cc5f1318ff92a6c0d9e7aede95a178b5d54885 100644 --- a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/vocabulary/cda_vocabulary.xml +++ b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/vocabulary/cda_vocabulary.xml @@ -39,7 +39,7 @@ <section> <templateId root="1.1.1.1.1.1.1.1"/> <id root="1.2.3.5.6"/> - <code code="29545-1" codeSystem="2.11.111.1.111111.1.1" codeSystemName="LOINC"/> + <code code="29545-1" codeSystem="2.11.111.1.111111.1.1" codeSystemName="LOINC"/> <title>CDA For Test</title> <entry> <act classCode="ACT" moodCode="DEF"> @@ -62,8 +62,8 @@ <code code="29545-1" codeSystem="2.11.111.1.111111.1.1" codeSystemName="LOINC"/> <title>CDA For Test</title> <entry> - <act classCode="ACT" moodCode="DEF"> - <!-- Test CONF:0005 "matchesValueSet" FALSE--> + <act classCode="ACCM" moodCode="DEF"> + <!-- Test CONF:0005 "matchesValueSet" FALSE ___BUT on a WARNING --> <code code="B" /> <!-- Test CONF:0006 "multiple ValueSets" False--> diff --git a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/vocabulary/decor_vocabulary.xml b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/vocabulary/decor_vocabulary.xml index cb0f746314d8c6e009d57755e69093c202a6a4aa..f50ee04914aef1e33216b225767d73ff311bfb61 100644 --- a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/vocabulary/decor_vocabulary.xml +++ b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/vocabulary/decor_vocabulary.xml @@ -16,7 +16,7 @@ </valueSet> <valueSet id="1.2.3.4.5.6.7.8.10" name="TestValueSet2" displayName="TestValueSet2" effectiveDate="2022-01-01T00:00:00" statusCode="final"> <conceptList> - <concept code="testVocab2" codeSystem="2.11.111.1.111111.1.3" displayName="valueForTest2" level="0" type="L"></concept> + <concept code="testVocab2" codeSystem="2.11.111.1.111111.1.3" displayName="valueForTest2" level="0" type="L" statusCode="actif"></concept> </conceptList> </valueSet> </terminology> @@ -29,11 +29,12 @@ <element name="cda:templateId" datatype="II" minimumMultiplicity="1" maximumMultiplicity="1" isMandatory="true"> <item label="CONF:0001"></item> <attribute name="root" value="1.1.1.1.1.1.1.1" datatype="uid"></attribute> + </element> <element name="cda:code" datatype="CE" minimumMultiplicity="1" maximumMultiplicity="1" isMandatory="true" id="2.16.840.1.113883.3.1937.99.3.9.5338"> <desc language="en-US">SHALL contain exactly one [1..1] code (CONF:0002).</desc> <item label="CONF:0002"></item> - <vocabulary code="29545-1" codeSystem="2.11.111.1.111111.1.1"></vocabulary> + <vocabulary code="29545-1" codeSystem="2.11.111.1.111111.1.1" codeSystemName="FalseV"></vocabulary> </element> <element name="cda:title" datatype="ST" minimumMultiplicity="1" maximumMultiplicity="1" id="2.16.840.1.113883.3.1937.99.3.9.5339"> <desc language="en-US">SHALL contain exactly one [1..1] title (CONF:0003).</desc> @@ -52,14 +53,14 @@ <!-- Test element: HAVE TWO INSTANCES, 1st TRUE and 2nd FALSE (with warning) "multiple valueSets" --> <element name="cda:priorityCode" strength="required" datatype="CE" minimumMultiplicity="1" maximumMultiplicity="1" id="2.16.840.1.113883.3.1937.99.3.9.5343"> <item label="CONF:0006"></item> - <vocabulary valueSet="1.2.3.4.5.6.7.8.9"></vocabulary> - <vocabulary valueSet="1.2.3.4.5.6.7.8.10" ></vocabulary> </element> <!-- Test element: HAVE TWO INSTANCES, 1st TRUE and 2nd FALSE (with Info) "flexibility" --> + <vocabulary valueSet="1.2.3.4.5.6.7.8.9"></vocabulary> + <vocabulary valueSet="1.2.3.4.5.6.7.8.10" ></vocabulary> <element name="cda:languageCode" strength="preferred" datatype="CS" minimumMultiplicity="1" maximumMultiplicity="1" id="2.16.840.1.113883.3.1937.99.3.9.53414"> <item label="CONF:0007"></item> - <vocabulary valueSet="1.2.3.4.5.6.7.8.9" flexibility="2021-01-01T00:00:00"></vocabulary> + <vocabulary valueSet="1.2.3.4.5.6.7.8.9" flexibility="2021-01-01T00:00:00" ></vocabulary> </element> <attribute name="classCode"/> diff --git a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/vocabulary/expected_vocabulary.xml b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/vocabulary/expected_vocabulary.xml index 746e027467ce190b558f44d6d1183c4d46523aae..0e69655ed9ee13311890a5f6c688e1602c3c07bb 100644 --- a/hl7templates/goc-tests/goc-tests-runner/src/main/resources/vocabulary/expected_vocabulary.xml +++ b/hl7templates/goc-tests/goc-tests-runner/src/main/resources/vocabulary/expected_vocabulary.xml @@ -133,40 +133,32 @@ <Note> <Test>vocab014</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> - <Description>In Test Vocabulary Template, the code of /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:priorityCode SHALL be from the valueSet 1.2.3.4.5.6.7.8.9 (flexibility : dynamic) OR SHALL be from the valueSet 1.2.3.4.5.6.7.8.10 (flexibility : dynamic) (Item : CONF:0006)</Description> - <Identifiant>vocab-TestVocabulary-vocab014</Identifiant> - <assertion idScheme="vocab" assertionId="CONF:0006"/> - <Type>Vocabulary</Type> - </Note> - <Note> - <Test>vocab015</Test> - <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act SHALL contain at least ONE hl7:languageCode (Item : CONF:0007)</Description> - <Identifiant>vocab-TestVocabulary-vocab015</Identifiant> + <Identifiant>vocab-TestVocabulary-vocab014</Identifiant> <assertion idScheme="vocab" assertionId="CONF:0006;CONF:0007"/> <Type>Cardinality</Type> </Note> <Note> - <Test>vocab016</Test> + <Test>vocab015</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> <Description>In Test Vocabulary Template, the code of /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:languageCode MAY be from the valueSet 1.2.3.4.5.6.7.8.9 (flexibility : 2021-01-01T00:00:00) (Item : CONF:0007)</Description> - <Identifiant>vocab-TestVocabulary-vocab016</Identifiant> + <Identifiant>vocab-TestVocabulary-vocab015</Identifiant> <assertion idScheme="vocab" assertionId="CONF:0006;CONF:0007"/> <Type>Vocabulary</Type> </Note> <Note> - <Test>vocab017</Test> + <Test>vocab016</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry SHALL contain at least ONE hl7:act</Description> - <Identifiant>vocab-TestVocabulary-vocab017</Identifiant> + <Identifiant>vocab-TestVocabulary-vocab016</Identifiant> <assertion idScheme="vocab" assertionId="CONF:0006"/> <Type>Cardinality</Type> </Note> <Note> - <Test>vocab018</Test> + <Test>vocab017</Test> <Location>/ClinicalDocument/component/structuredBody/component[0]/section</Location> <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:entry (Item : CONF:0006)</Description> - <Identifiant>vocab-TestVocabulary-vocab018</Identifiant> + <Identifiant>vocab-TestVocabulary-vocab017</Identifiant> <assertion idScheme="vocab" assertionId="CONF:0006"/> <Type>Cardinality</Type> </Note> @@ -274,43 +266,35 @@ <assertion idScheme="vocab" assertionId="CONF:0006"/> <Type>Cardinality</Type> </Note> - <Error> - <Test>vocab014</Test> - <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> - <Description>In Test Vocabulary Template, the code of /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:priorityCode SHALL be from the valueSet 1.2.3.4.5.6.7.8.9 (flexibility : dynamic) OR SHALL be from the valueSet 1.2.3.4.5.6.7.8.10 (flexibility : dynamic) (Item : CONF:0006)</Description> - <Identifiant>vocab-TestVocabulary-vocab014</Identifiant> - <assertion idScheme="vocab" assertionId="CONF:0006"/> - <Type>Vocabulary</Type> - </Error> <Note> - <Test>vocab015</Test> + <Test>vocab014</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act SHALL contain at least ONE hl7:languageCode (Item : CONF:0007)</Description> - <Identifiant>vocab-TestVocabulary-vocab015</Identifiant> + <Identifiant>vocab-TestVocabulary-vocab014</Identifiant> <assertion idScheme="vocab" assertionId="CONF:0006;CONF:0007"/> <Type>Cardinality</Type> </Note> <Info> - <Test>vocab016</Test> + <Test>vocab015</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> <Description>In Test Vocabulary Template, the code of /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry/hl7:act/hl7:languageCode MAY be from the valueSet 1.2.3.4.5.6.7.8.9 (flexibility : 2021-01-01T00:00:00) (Item : CONF:0007)</Description> - <Identifiant>vocab-TestVocabulary-vocab016</Identifiant> + <Identifiant>vocab-TestVocabulary-vocab015</Identifiant> <assertion idScheme="vocab" assertionId="CONF:0006;CONF:0007"/> <Type>Vocabulary</Type> </Info> <Note> - <Test>vocab017</Test> + <Test>vocab016</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1']/hl7:entry SHALL contain at least ONE hl7:act</Description> - <Identifiant>vocab-TestVocabulary-vocab017</Identifiant> + <Identifiant>vocab-TestVocabulary-vocab016</Identifiant> <assertion idScheme="vocab" assertionId="CONF:0006"/> <Type>Cardinality</Type> </Note> <Note> - <Test>vocab018</Test> + <Test>vocab017</Test> <Location>/ClinicalDocument/component/structuredBody/component[1]/section</Location> <Description>In Test Vocabulary Template, /hl7:section[hl7:templateId/@root='1.1.1.1.1.1.1.1'] SHALL contain at least ONE hl7:entry (Item : CONF:0006)</Description> - <Identifiant>vocab-TestVocabulary-vocab018</Identifiant> + <Identifiant>vocab-TestVocabulary-vocab017</Identifiant> <assertion idScheme="vocab" assertionId="CONF:0006"/> <Type>Cardinality</Type> </Note> @@ -340,19 +324,19 @@ <Location>/ClinicalDocument</Location> <Description>Success: Found all IDs referenced</Description> </Note> - <Result>FAILED</Result> + <Result>PASSED</Result> </MDAValidation> <ValidationResultsOverview> - <ValidationDate>2022, 01 10</ValidationDate> - <ValidationTime>04:37:01</ValidationTime> + <ValidationDate>2022, 03 07</ValidationDate> + <ValidationTime>11:10:49</ValidationTime> <ValidationServiceName>Gazelle CDA Validation : vocab</ValidationServiceName> - <ValidationTestResult>FAILED</ValidationTestResult> + <ValidationTestResult>PASSED</ValidationTestResult> </ValidationResultsOverview> - <TemplateDesc validation="Error"> + <TemplateDesc validation="Warning"> <Template validation="Report" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[0]/section"> <templateId id="1.1.1.1.1.1.1.1" name="TestVocabulary"/> </Template> - <Template validation="Error" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[1]/section"> + <Template validation="Warning" type="POCDMT000040Section" location="/ClinicalDocument/component/structuredBody/component[1]/section"> <templateId id="1.1.1.1.1.1.1.1" name="TestVocabulary"/> </Template> </TemplateDesc> diff --git a/hl7templates/hl7templates-api-jar/src/main/java/net/ihe/gazelle/tempapi/impl/ChoiceDefinitionProcessorImpl.java b/hl7templates/hl7templates-api-jar/src/main/java/net/ihe/gazelle/tempapi/impl/ChoiceDefinitionProcessorImpl.java index 9d0aa68a7c84ee48836a3d0e39eeb1960d3ebf1f..f59463cab9b419b3dfcf4e9531a1185b170effac 100644 --- a/hl7templates/hl7templates-api-jar/src/main/java/net/ihe/gazelle/tempapi/impl/ChoiceDefinitionProcessorImpl.java +++ b/hl7templates/hl7templates-api-jar/src/main/java/net/ihe/gazelle/tempapi/impl/ChoiceDefinitionProcessorImpl.java @@ -25,6 +25,8 @@ public abstract class ChoiceDefinitionProcessorImpl implements ChoiceDefinitionP this.processMinimumMultiplicity(t.getMinimumMultiplicity()); this.processContains(ChoiceDefinitionUtil.getContains(t)); this.processItem(t.getItem()); + + //Comment next line to disable processing of the unsported HL7 choices specs this.processPredicates(ChoiceDefinitionUtil.getElements(t)); } } diff --git a/hl7templates/hl7templates-generator-jar/src/it/java/net/ihe/gazelle/tempgen/test/HL7TemplatesConverterIT.java b/hl7templates/hl7templates-generator-jar/src/it/java/net/ihe/gazelle/tempgen/test/HL7TemplatesConverterIT.java index 3cddb0d47ee9cdcfb060041b735974e9ee025c65..3065ae0ab222d694df8b2f5a73d9e44eda800965 100644 --- a/hl7templates/hl7templates-generator-jar/src/it/java/net/ihe/gazelle/tempgen/test/HL7TemplatesConverterIT.java +++ b/hl7templates/hl7templates-generator-jar/src/it/java/net/ihe/gazelle/tempgen/test/HL7TemplatesConverterIT.java @@ -75,7 +75,7 @@ public class HL7TemplatesConverterIT { @Test public void testConvertArtDecorXMI6() throws FileNotFoundException, JAXBException { HL7TemplatesConverter conv = new HL7TemplatesConverter(); - String res = conv.convertArtDecorXMI("src/test/resources/decor_labeled3.xml", false, "1.0"); + String res = conv.convertArtDecorXMI("src/test/resources/decor_labeled3.xml", false, "1.0",false); assertTrue(res.contains("29762-2")); assertFalse(res.contains("entry")); assertTrue(res.contains("1.2.3.4.5")); @@ -84,7 +84,7 @@ public class HL7TemplatesConverterIT { @Test public void testConvertArtDecorXMI7() throws FileNotFoundException, JAXBException { HL7TemplatesConverter conv = new HL7TemplatesConverter(); - String res = conv.convertArtDecorXMI("src/test/resources/decor_labeled3.xml", false, "1.1"); + String res = conv.convertArtDecorXMI("src/test/resources/decor_labeled3.xml", false, "1.1",false); assertFalse(res.contains("29762-2")); assertTrue(res.contains("entry")); assertTrue(res.contains("1.2.3.4.5")); @@ -93,7 +93,7 @@ public class HL7TemplatesConverterIT { @Test public void testConvertArtDecorXMI8() throws FileNotFoundException, JAXBException { HL7TemplatesConverter conv = new HL7TemplatesConverter(); - String res = conv.convertArtDecorXMI("src/test/resources/decor_labeled3.xml", false, null); + String res = conv.convertArtDecorXMI("src/test/resources/decor_labeled3.xml", false, null,false); assertFalse(res.contains("29762-2")); assertTrue(res.contains("entry")); assertTrue(res.contains("1.2.3.4.5")); @@ -102,7 +102,7 @@ public class HL7TemplatesConverterIT { @Test public void testConvertArtDecorXMITrueIgnoreTemplateRequirementForContains() throws FileNotFoundException, JAXBException { HL7TemplatesConverter conv = new HL7TemplatesConverter(); - String res = conv.convertArtDecorXMI("src/test/resources/contain/decor_contain_bis.xml", true, null); + String res = conv.convertArtDecorXMI("src/test/resources/contain/decor_contain_bis.xml", true, null,false); assertFalse(res.contains("SHALL contain at least ONE hl7:templateId[@root='1.3.6.1.4.1.19376.1.5.3.1.4.13.4']")); assertFalse(res.contains("SHALL contain at most ONE hl7:templateId[@root='1.3.6.1.4.1.19376.1.5.3.1.4.13.4']")); } @@ -110,7 +110,7 @@ public class HL7TemplatesConverterIT { @Test public void testConvertArtDecorXMIFalseIgnoreTemplateRequirementForContains() throws FileNotFoundException, JAXBException { HL7TemplatesConverter conv = new HL7TemplatesConverter(); - String res = conv.convertArtDecorXMI("src/test/resources/contain/decor_contain_bis.xml", false, null); + String res = conv.convertArtDecorXMI("src/test/resources/contain/decor_contain_bis.xml", false, null,false); assertTrue(res.contains("SHALL contain at least ONE hl7:templateId[@root='1.3.6.1.4.1.19376.1.5.3.1.4.13.4']")); assertTrue(res.contains("SHALL contain at most ONE hl7:templateId[@root='1.3.6.1.4.1.19376.1.5.3.1.4.13.4']")); } @@ -118,7 +118,7 @@ public class HL7TemplatesConverterIT { @Test public void testConvertArtDecorXMIFalseIgnoreTemplateRequirementForContainsMandatory() throws FileNotFoundException, JAXBException { HL7TemplatesConverter conv = new HL7TemplatesConverter(); - String res = conv.convertArtDecorXMI("src/test/resources/contain/decor_contain_ter_mandatory.xml", false, null); + String res = conv.convertArtDecorXMI("src/test/resources/contain/decor_contain_ter_mandatory.xml", false, null,false); assertTrue(res.contains("SHALL contain at least ONE hl7:templateId[@root='1.3.6.1.4.1.19376.1.5.3.1.4.13.4']")); assertTrue(res.contains("SHALL contain at most ONE hl7:templateId[@root='1.3.6.1.4.1.19376.1.5.3.1.4.13.4']")); assertTrue(res.contains("the element(s) hl7:templateId[@root='1.3.6.1.4.1.19376.1.5.3.1.4.13.4'] SHALL not have nullFlavor (mandatory)")); @@ -127,7 +127,7 @@ public class HL7TemplatesConverterIT { @Test public void testConvertArtDecorXMITrueIgnoreTemplateRequirementForContainsMandatory() throws FileNotFoundException, JAXBException { HL7TemplatesConverter conv = new HL7TemplatesConverter(); - String res = conv.convertArtDecorXMI("src/test/resources/contain/decor_contain_bis.xml", true, null); + String res = conv.convertArtDecorXMI("src/test/resources/contain/decor_contain_bis.xml", true, null,false); assertFalse(res.contains("SHALL contain at least ONE hl7:templateId[@root='1.3.6.1.4.1.19376.1.5.3.1.4.13.4']")); assertFalse(res.contains("SHALL contain at most ONE hl7:templateId[@root='1.3.6.1.4.1.19376.1.5.3.1.4.13.4']")); } @@ -135,7 +135,7 @@ public class HL7TemplatesConverterIT { @Test public void testConvertArtDecorXMIFalseIgnoreTemplateRequirementForContainsInclude() throws FileNotFoundException, JAXBException { HL7TemplatesConverter conv = new HL7TemplatesConverter(); - String res = conv.convertArtDecorXMI("src/test/resources/contain/decor_contain.xml", false, null); + String res = conv.convertArtDecorXMI("src/test/resources/contain/decor_contain.xml", false, null,false); assertTrue(res.contains("SHALL contain at least ONE hl7:templateId[@root='1.3.6.1.4.1.19376.1.5.3.1.4.13.4']")); assertTrue(res.contains("SHALL contain at most ONE hl7:templateId[@root='1.3.6.1.4.1.19376.1.5.3.1.4.13.4']")); } @@ -143,7 +143,7 @@ public class HL7TemplatesConverterIT { @Test public void testConvertArtDecorXMITrueIgnoreTemplateRequirementForContainsInclude() throws FileNotFoundException, JAXBException { HL7TemplatesConverter conv = new HL7TemplatesConverter(); - String res = conv.convertArtDecorXMI("src/test/resources/contain/decor_contain_bis.xml", true, null); + String res = conv.convertArtDecorXMI("src/test/resources/contain/decor_contain_bis.xml", true, null,false); assertFalse(res.contains("SHALL contain at least ONE hl7:templateId[@root='1.3.6.1.4.1.19376.1.5.3.1.4.13.4']")); assertFalse(res.contains("SHALL contain at most ONE hl7:templateId[@root='1.3.6.1.4.1.19376.1.5.3.1.4.13.4']")); } diff --git a/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/ChoiceDefinitionAnalyzer.java b/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/ChoiceDefinitionAnalyzer.java index b01ac75eaabc02d24fe44586b994e9abcc657e67..aa90417b31b749c4ce26f0386c1ff07e0e84bfed 100644 --- a/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/ChoiceDefinitionAnalyzer.java +++ b/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/ChoiceDefinitionAnalyzer.java @@ -39,6 +39,8 @@ public class ChoiceDefinitionAnalyzer extends ChoiceDefinitionProcessorImpl { protected PackagedElement currentPackagedElement; protected Boolean ignoreTemplateIdRequirements = Boolean.FALSE; + + protected Boolean ignoreChoicesPredicates = Boolean.FALSE; private List<OwnedRule> listGeneratedOwnedRule = new ArrayList<>(); @@ -61,6 +63,9 @@ public class ChoiceDefinitionAnalyzer extends ChoiceDefinitionProcessorImpl { if (objects.length>1) { this.ignoreTemplateIdRequirements = (Boolean)objects[1]; } + if (objects.length>2) { + this.ignoreChoicesPredicates = (Boolean) objects[2]; + } this.currentChoiceDefinition = t; this.currentPackagedElement = (PackagedElement) objects[0]; if (verifyThatChoiceIsProcessable(this.currentChoiceDefinition)){ @@ -164,7 +169,7 @@ public class ChoiceDefinitionAnalyzer extends ChoiceDefinitionProcessorImpl { public void processElements(List<RuleDefinition> elements) { if (elements != null) { for (RuleDefinition ruleDefinition : elements) { - (new RuleDefinitionAnalyzer()).process(ruleDefinition, this.currentPackagedElement, this.ignoreTemplateIdRequirements); + (new RuleDefinitionAnalyzer()).process(ruleDefinition, this.currentPackagedElement, this.ignoreTemplateIdRequirements,this.ignoreChoicesPredicates); } } } @@ -193,48 +198,52 @@ public class ChoiceDefinitionAnalyzer extends ChoiceDefinitionProcessorImpl { @Override public void processPredicates(List<RuleDefinition> elements){ - // TODO: 24/06/2021 check the homogeneity of predicates for performance - - if(elements != null){ - if(choiceHasNumberedPredicates(elements)){ - OwnedRule choiceOwnedRule = processNumberedPredicates(elements); - this.listGeneratedOwnedRule.add(choiceOwnedRule); - currentPackagedElement.getOwnedRule().add(choiceOwnedRule); - } - else if(choiceHasPredicates(elements) && !choiceHasNumberedPredicates(elements)){ - List<List<OwnedRule>> rules = generateSubRuleOfAssertionElements(elements); - if(rules != null && rules.size()>0){ - OwnedRule generalOwnedRule = generateGeneraleRuleForChoice(rules); - this.listGeneratedOwnedRule.add(generalOwnedRule); - currentPackagedElement.getOwnedRule().add(generalOwnedRule); - } - // don't process elements if there is an error in one sub element - else{ - return; - } + boolean processingDone = false; - } - // no predicates - else{ - //case 1: identical names - if(hasSameNames(elements)){ - List<List<OwnedRule>> rules = generateSubRuleOfElements(elements); - if(rules!= null && rules.size()>0){ + // TODO: 24/06/2021 check the homogeneity of predicates for performance + if(this.ignoreChoicesPredicates == Boolean.FALSE){ + if(elements != null) { + if (choiceHasNumberedPredicates(elements)) { + OwnedRule choiceOwnedRule = processNumberedPredicates(elements); + this.listGeneratedOwnedRule.add(choiceOwnedRule); + currentPackagedElement.getOwnedRule().add(choiceOwnedRule); + processingDone = true; + } else if (choiceHasPredicates(elements) && !choiceHasNumberedPredicates(elements)) { + List<List<OwnedRule>> rules = generateSubRuleOfAssertionElements(elements); + if (rules != null && rules.size() > 0) { OwnedRule generalOwnedRule = generateGeneraleRuleForChoice(rules); this.listGeneratedOwnedRule.add(generalOwnedRule); currentPackagedElement.getOwnedRule().add(generalOwnedRule); + processingDone = true; } // don't process elements if there is an error in one sub element - else{ + else { return; } } - //case 2: different names (normal process) - else{ - this.processElements(elements); + // no predicates + else { + //case 1: identical names + if (hasSameNames(elements)) { + List<List<OwnedRule>> rules = generateSubRuleOfElements(elements); + if (rules != null && rules.size() > 0) { + OwnedRule generalOwnedRule = generateGeneraleRuleForChoice(rules); + this.listGeneratedOwnedRule.add(generalOwnedRule); + currentPackagedElement.getOwnedRule().add(generalOwnedRule); + processingDone = true; + } + // don't process elements if there is an error in one sub element + else { + return; + } + } } } } + if(!processingDone){ + //case 2: different names (normal process) + this.processElements(elements); + } } protected void ANDRules(OwnedRule ownedRule, OwnedRule subOwnedRule){ diff --git a/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/DecorAnalyzer.java b/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/DecorAnalyzer.java index bc3dcfc3b6a9725fed28e09a7022051fecb478a9..ed25f0de55ae127a89f8d424aab68eff165285b6 100644 --- a/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/DecorAnalyzer.java +++ b/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/DecorAnalyzer.java @@ -20,6 +20,8 @@ public class DecorAnalyzer extends DecorProcessorImpl { protected Boolean ignoreTemplateIdRequirements = Boolean.FALSE; + protected Boolean ignoreChoicesPredicates = Boolean.FALSE; + @Override public void process(Decor t, Object... objects) { this.currentDecor = t; @@ -27,11 +29,14 @@ public class DecorAnalyzer extends DecorProcessorImpl { if (objects.length>1) { this.ignoreTemplateIdRequirements = (Boolean) objects[1]; } + if (objects.length>2) { + this.ignoreChoicesPredicates = (Boolean) objects[2]; + } String prefix = DecorUtil.extractPrefixFromDecor(this.currentDecor); OwnedRuleUtil.setReqIdentifier(prefix); - + super.process(t, objects); - + ImportElementHandler.addElementsToBeImported(xmi); TamlHandler.setTargetIDScheme(DecorUtil.extractPrefixFromDecor(this.currentDecor)); TamlHandler.addTamlToXMI(xmi); @@ -39,7 +44,7 @@ public class DecorAnalyzer extends DecorProcessorImpl { @Override public void processRules(Rules rules) { - (new RulesAnalyzer()).process(rules, this.xmi, this.ignoreTemplateIdRequirements); + (new RulesAnalyzer()).process(rules, this.xmi, this.ignoreTemplateIdRequirements,this.ignoreChoicesPredicates); } } diff --git a/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/HL7TemplatesConverter.java b/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/HL7TemplatesConverter.java index 1368555248a300316455860ee75d625dbcb2ae11..5f063ee094e02cc52ba5e414959718c76991ff2e 100644 --- a/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/HL7TemplatesConverter.java +++ b/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/HL7TemplatesConverter.java @@ -34,18 +34,18 @@ public class HL7TemplatesConverter { * @return the XMI String */ public String convertArtDecorXMI(String bbrpath) throws JAXBException { - return convertArtDecorXMI(bbrpath, false, null); + return convertArtDecorXMI(bbrpath, false, null,false); } /** * Conversion of BBR to UML. - * @param bbrpath : path to the BBR to convert + * @param brpath : path to the BBR to convert * @param ignoreTemplateIdRequirements : if true, no rule for templateId will be generated in the UML model * @param templateVersionFilter : only templates defining this version label will be kept in the model (ignored if null) * @throws JAXBException if decor cannot be unmarshall * @return The XMI String */ - public String convertArtDecorXMI(Decor decor, boolean ignoreTemplateIdRequirements, String templateVersionFilter) + public String convertArtDecorXMI(Decor decor, boolean ignoreTemplateIdRequirements, String templateVersionFilter, Boolean ignoreChoicesPredicates) throws JAXBException { log.info("Converting BBR to UML Model"); @@ -78,7 +78,14 @@ public class HL7TemplatesConverter { log.warn("Converting Decor to XMI"); - XMI xmi = convertFlattenedDecorToXMI(decor, ignoreTemplateIdRequirements); + // + if(ignoreChoicesPredicates){ + log.info("///////////////////////////////////// Ignored all Predicates Choices ///////////////////////////////////////// "); + } + else{ + log.info("///////////////////////////////////// The choices predicates was processing ///////////////////////////////"); + } + XMI xmi = convertFlattenedDecorToXMI(decor, ignoreTemplateIdRequirements,ignoreChoicesPredicates); ByteArrayOutputStream baos = new ByteArrayOutputStream(); XMIMarshaller.printXMI(xmi, baos); String res = baos.toString(); @@ -95,21 +102,21 @@ public class HL7TemplatesConverter { return res; } - public String convertArtDecorXMI(String bbrpath, boolean ignoreTemplateIdRequirements, String templateVersionFilter) + public String convertArtDecorXMI(String bbrpath, boolean ignoreTemplateIdRequirements, String templateVersionFilter,Boolean ignoreChoicesPredicates) throws JAXBException { Decor decor = DecorMarshaller.loadDecor(bbrpath); - return convertArtDecorXMI(decor, ignoreTemplateIdRequirements, templateVersionFilter); + return convertArtDecorXMI(decor, ignoreTemplateIdRequirements, templateVersionFilter,ignoreChoicesPredicates); } - public String convertArtDecorXMI(BBRResource bbrResource, boolean ignoreTemplateIdRequirements, String templateVersionFilter) + public String convertArtDecorXMI(BBRResource bbrResource, Boolean ignoreTemplateIdRequirements, String templateVersionFilter,boolean ignoreChoicesPredicates) throws JAXBException { //TODO interface to hl7templates-model-jar Decor decor = DecorMarshaller.loadDecor(bbrResource); - return convertArtDecorXMI(decor, ignoreTemplateIdRequirements, templateVersionFilter); + return convertArtDecorXMI(decor, ignoreTemplateIdRequirements, templateVersionFilter,ignoreChoicesPredicates); } - private Decor flattenDecor(Decor decorParam) { + protected Decor flattenDecor(Decor decorParam) { Decor decor = decorParam; log.info("Clean rules of the decor to flatten"); RulesCleaner.cleanRules(decor.getRules()); @@ -126,11 +133,11 @@ public class HL7TemplatesConverter { } - private XMI convertFlattenedDecorToXMI(Decor decor, boolean ignoreTemplateIdRequirements) { + protected XMI convertFlattenedDecorToXMI(Decor decor, boolean ignoreTemplateIdRequirements,Boolean ignoreChoicesPredicates) { String prefix = DecorUtil.extractPrefixFromDecor(decor); XMI xmi = XMIUtil.createXMI(prefix); //The entrypoint to convert the decor to OCL! - (new DecorAnalyzer()).process(decor, xmi, Boolean.valueOf(ignoreTemplateIdRequirements)); + (new DecorAnalyzer()).process(decor, xmi, Boolean.valueOf(ignoreTemplateIdRequirements),ignoreChoicesPredicates); return xmi; } } diff --git a/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/RuleDefinitionAnalyzer.java b/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/RuleDefinitionAnalyzer.java index 012e51e6b0e5592f5e82a0ffaabb54dba43eafa9..973c24dedd1f22bd015ba829e0f535f237336c5f 100644 --- a/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/RuleDefinitionAnalyzer.java +++ b/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/RuleDefinitionAnalyzer.java @@ -24,6 +24,7 @@ import java.util.List; import java.util.Set; import java.util.TreeSet; + /** * @author Abderrazek Boufahja */ @@ -36,7 +37,11 @@ public class RuleDefinitionAnalyzer extends RuleDefinitionProcessorImpl { protected String ruleContextDescription = ""; protected PackagedElement currentPackagedElement; + protected Boolean ignoreTemplateIdRequirements = Boolean.FALSE; + + protected Boolean ignoreChoicesPredicates = Boolean.FALSE; + private List<OwnedRule> listGeneratedOwnedRule = new ArrayList<>(); private boolean containsError = false; @@ -139,6 +144,9 @@ public class RuleDefinitionAnalyzer extends RuleDefinitionProcessorImpl { if (objects.length > 1) { this.ignoreTemplateIdRequirements = (Boolean) objects[1]; } + if (objects.length > 2) { + this.ignoreChoicesPredicates = (Boolean) objects[2]; + } if (this.ignoreTemplateIdRequirements.booleanValue() && this.selectedRuleDefinition.getName() != null && (this.selectedRuleDefinition.getName().matches(".*:templateId") || this.selectedRuleDefinition.getName().matches("templateId"))) { return; @@ -340,7 +348,7 @@ public class RuleDefinitionAnalyzer extends RuleDefinitionProcessorImpl { public void processChoices(List<ChoiceDefinition> choices) { if (choices != null) { for (ChoiceDefinition choiceDefinition : choices) { - (new ChoiceDefinitionAnalyzer()).process(choiceDefinition, this.currentPackagedElement, this.ignoreTemplateIdRequirements); + (new ChoiceDefinitionAnalyzer()).process(choiceDefinition, this.currentPackagedElement, this.ignoreTemplateIdRequirements,this.ignoreChoicesPredicates); } } } @@ -401,7 +409,7 @@ public class RuleDefinitionAnalyzer extends RuleDefinitionProcessorImpl { if (elements != null) { for (RuleDefinition ruleDefinition : elements) { RuleDefinitionAnalyzer rda = new RuleDefinitionAnalyzer(); - rda.process(ruleDefinition, this.currentPackagedElement, this.ignoreTemplateIdRequirements); + rda.process(ruleDefinition, this.currentPackagedElement, this.ignoreTemplateIdRequirements,this.ignoreChoicesPredicates); } } } diff --git a/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/RulesAnalyzer.java b/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/RulesAnalyzer.java index 9acc74acb32e7df91d1aac982ced54c0037a6dd9..1d96724efe785dd77d47b9c1858dca1c5e517077 100644 --- a/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/RulesAnalyzer.java +++ b/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/RulesAnalyzer.java @@ -29,6 +29,8 @@ public class RulesAnalyzer extends RulesProcessorImpl { protected List<TemplateDefinition> listCDATemplates; protected Boolean ignoreTemplateIdRequirements = Boolean.FALSE; + + protected Boolean ignoreChoicesPredicates = Boolean.FALSE; @Override public void process(Rules t, Object... objects) { @@ -36,6 +38,9 @@ public class RulesAnalyzer extends RulesProcessorImpl { if (objects.length>1) { this.ignoreTemplateIdRequirements = (Boolean) objects[1]; } + if (objects.length>2) { + this.ignoreChoicesPredicates = (Boolean) objects[2]; + } this.currentRules = t; List<TemplateDefinition> ltd = RulesUtil.getTemplates(this.currentRules); log.info("complete templates size : {}", Integer.valueOf(ltd.size())); @@ -51,7 +56,7 @@ public class RulesAnalyzer extends RulesProcessorImpl { public void processTemplates(List<TemplateDefinition> templates) { for (TemplateDefinition templateDefinition : templates) { if ((this.listCDATemplates != null) && this.listCDATemplates.contains(templateDefinition)) { - (new TemplateDefinitionAnalyzer()).process(templateDefinition, this.xmi, this.ignoreTemplateIdRequirements); + (new TemplateDefinitionAnalyzer()).process(templateDefinition, this.xmi, this.ignoreTemplateIdRequirements,this.ignoreChoicesPredicates); } } } diff --git a/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/TemplateDefinitionAnalyzer.java b/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/TemplateDefinitionAnalyzer.java index de605172d71468aca740b27e55010a956c6f6dab..5999a3bd7145da2dbf45fb9eb12c4dfa61487f97 100644 --- a/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/TemplateDefinitionAnalyzer.java +++ b/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/action/TemplateDefinitionAnalyzer.java @@ -35,7 +35,9 @@ public class TemplateDefinitionAnalyzer extends TemplateDefinitionProcessorImpl private TemplateDefinition currentTemplateDefinition; private Boolean ignoreTemplateIdRequirements = false; - + + private Boolean ignoreChoicesPredicates = Boolean.FALSE; + @Override public void process(TemplateDefinition t, Object... objects) { if (objects== null || objects.length<1 || !(objects[0] instanceof XMI)) { @@ -47,6 +49,9 @@ public class TemplateDefinitionAnalyzer extends TemplateDefinitionProcessorImpl if (objects.length>1) { this.ignoreTemplateIdRequirements = (Boolean) objects[1]; } + if (objects.length>2) { + this.ignoreChoicesPredicates = (Boolean)objects[2]; + } this.currentPackagedElement = PackagedElementUtil.initPackagedElement(); this.currentTemplateDefinition = t; String nam = this.currentTemplateDefinition.getName().replace("-", "").replace(".", ""); @@ -90,9 +95,9 @@ public class TemplateDefinitionAnalyzer extends TemplateDefinitionProcessorImpl @Override public void processElements(List<RuleDefinition> ruleDefinitions) { for (RuleDefinition ruleDefinition : ruleDefinitions) { - (new RuleDefinitionAnalyzer()).process(ruleDefinition, this.currentPackagedElement, this.ignoreTemplateIdRequirements); + (new RuleDefinitionAnalyzer()).process(ruleDefinition, this.currentPackagedElement, this.ignoreTemplateIdRequirements,this.ignoreChoicesPredicates); } - + } //TODO missing : how to process Item related to distinguisher ? diff --git a/hl7templates/hl7templates-generator-jar/src/test/java/net/ihe/gazelle/tempgen/ehdsi/scripts/EHDSIFriendlyTransformer.java b/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/ehdsi/scripts/EHDSIFriendlyTransformer.java similarity index 80% rename from hl7templates/hl7templates-generator-jar/src/test/java/net/ihe/gazelle/tempgen/ehdsi/scripts/EHDSIFriendlyTransformer.java rename to hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/ehdsi/scripts/EHDSIFriendlyTransformer.java index 4dad425df934109cb98f62bd7be328ab4a8a0e91..327f0f2ad9c4f4f0d48c061c07be0f964cf1f8a5 100644 --- a/hl7templates/hl7templates-generator-jar/src/test/java/net/ihe/gazelle/tempgen/ehdsi/scripts/EHDSIFriendlyTransformer.java +++ b/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/ehdsi/scripts/EHDSIFriendlyTransformer.java @@ -23,7 +23,21 @@ public class EHDSIFriendlyTransformer { public static ArrayList<Object> ml_objectsWithVocabularyToDelete = new ArrayList<>(); public static void main(String[] args) throws FileNotFoundException, JAXBException { - Decor dec = DecorMarshaller.loadDecor("/your/path/for/bbr.xml"); + + String bbrPath = "DEFINE_YOUR_DEFAULT_PATH_HERE"; + String outputBbrPath = "DEFINE_YOUR_OUT_PATH_HERE"; + + //Override input bbr path if exists as param + if(args.length>0){ + bbrPath = args[0]; + } + + //Override output bbr path if exists as param + if(args.length>1){ + outputBbrPath = args[1]; + } + + Decor dec = DecorMarshaller.loadDecor(bbrPath); DecorVisitor.INSTANCE.visitAndProcess(dec, new VSFriendlyProvider()); for (Object lo_vocabularyParent : ml_objectsWithVocabularyToDelete){ @@ -43,7 +57,7 @@ public class EHDSIFriendlyTransformer { log.error("Unchecked type of parent element : " + lo_vocabularyParent.getClass()); } } - DecorMarshaller.marshallDecor(dec, new FileOutputStream("/your/path/for/output/bbr-output.xml")); + DecorMarshaller.marshallDecor(dec, new FileOutputStream(outputBbrPath)); } } diff --git a/hl7templates/hl7templates-generator-jar/src/test/java/net/ihe/gazelle/tempgen/ehdsi/scripts/EHDSIPivotTransformer.java b/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/ehdsi/scripts/EHDSIPivotTransformer.java similarity index 100% rename from hl7templates/hl7templates-generator-jar/src/test/java/net/ihe/gazelle/tempgen/ehdsi/scripts/EHDSIPivotTransformer.java rename to hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/ehdsi/scripts/EHDSIPivotTransformer.java diff --git a/hl7templates/hl7templates-generator-jar/src/test/java/net/ihe/gazelle/tempgen/ehdsi/scripts/VSFriendlyProvider.java b/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/ehdsi/scripts/VSFriendlyProvider.java similarity index 100% rename from hl7templates/hl7templates-generator-jar/src/test/java/net/ihe/gazelle/tempgen/ehdsi/scripts/VSFriendlyProvider.java rename to hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/ehdsi/scripts/VSFriendlyProvider.java diff --git a/hl7templates/hl7templates-generator-jar/src/test/java/net/ihe/gazelle/tempgen/ehdsi/scripts/VSPivotImplProvider.java b/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/ehdsi/scripts/VSPivotImplProvider.java similarity index 100% rename from hl7templates/hl7templates-generator-jar/src/test/java/net/ihe/gazelle/tempgen/ehdsi/scripts/VSPivotImplProvider.java rename to hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/ehdsi/scripts/VSPivotImplProvider.java diff --git a/hl7templates/hl7templates-generator-jar/src/test/java/net/ihe/gazelle/tempgen/ehdsi/scripts/VocabularyFriendlyProcessorPivot.java b/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/ehdsi/scripts/VocabularyFriendlyProcessorPivot.java similarity index 80% rename from hl7templates/hl7templates-generator-jar/src/test/java/net/ihe/gazelle/tempgen/ehdsi/scripts/VocabularyFriendlyProcessorPivot.java rename to hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/ehdsi/scripts/VocabularyFriendlyProcessorPivot.java index 8ba3503053a194c454f225d588ad38bcde7138e0..94447382d23a5d2e6eb71318468dab03e4afc032 100644 --- a/hl7templates/hl7templates-generator-jar/src/test/java/net/ihe/gazelle/tempgen/ehdsi/scripts/VocabularyFriendlyProcessorPivot.java +++ b/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/ehdsi/scripts/VocabularyFriendlyProcessorPivot.java @@ -1,14 +1,7 @@ package net.ihe.gazelle.tempgen.ehdsi.scripts; import net.ihe.gazelle.tempapi.impl.VocabularyProcessorImpl; -import net.ihe.gazelle.tempmodel.org.decor.art.model.Attribute; -import net.ihe.gazelle.tempmodel.org.decor.art.model.RuleDefinition; import net.ihe.gazelle.tempmodel.org.decor.art.model.Vocabulary; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.Iterator; /** * diff --git a/hl7templates/hl7templates-generator-jar/src/test/java/net/ihe/gazelle/tempgen/ehdsi/scripts/VocabularyPivotProcessorPivot.java b/hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/ehdsi/scripts/VocabularyPivotProcessorPivot.java similarity index 100% rename from hl7templates/hl7templates-generator-jar/src/test/java/net/ihe/gazelle/tempgen/ehdsi/scripts/VocabularyPivotProcessorPivot.java rename to hl7templates/hl7templates-generator-jar/src/main/java/net/ihe/gazelle/tempgen/ehdsi/scripts/VocabularyPivotProcessorPivot.java diff --git a/hl7templates/hl7templates-generator-jar/src/test/java/net/ihe/gazelle/tempgen/scripts/CCDAExtractor.java b/hl7templates/hl7templates-generator-jar/src/test/java/net/ihe/gazelle/tempgen/ehdsi/scripts/CCDAExtractor.java similarity index 96% rename from hl7templates/hl7templates-generator-jar/src/test/java/net/ihe/gazelle/tempgen/scripts/CCDAExtractor.java rename to hl7templates/hl7templates-generator-jar/src/test/java/net/ihe/gazelle/tempgen/ehdsi/scripts/CCDAExtractor.java index 0b770ec41dbb22ca545c9f9f8aae5f378baf2ff6..0cc5990ee2aab81dfb57bfb11e3fe47a83375f81 100644 --- a/hl7templates/hl7templates-generator-jar/src/test/java/net/ihe/gazelle/tempgen/scripts/CCDAExtractor.java +++ b/hl7templates/hl7templates-generator-jar/src/test/java/net/ihe/gazelle/tempgen/ehdsi/scripts/CCDAExtractor.java @@ -1,4 +1,4 @@ -package net.ihe.gazelle.tempgen.scripts; +package net.ihe.gazelle.tempgen.ehdsi.scripts; import java.io.FileInputStream; import java.io.FileNotFoundException; diff --git a/hl7templates/hl7templates-packager-jar/src/main/java/net/ihe/gazelle/lib/hl7templatespackager/adapters/ArchetypeInstantiatorMaven.java b/hl7templates/hl7templates-packager-jar/src/main/java/net/ihe/gazelle/lib/hl7templatespackager/adapters/ArchetypeInstantiatorMaven.java index 672e856997a3d6394122ea9b813bf3fd762128ff..d4e14a1596742528a9bcefb5e7fd09e9006299dd 100644 --- a/hl7templates/hl7templates-packager-jar/src/main/java/net/ihe/gazelle/lib/hl7templatespackager/adapters/ArchetypeInstantiatorMaven.java +++ b/hl7templates/hl7templates-packager-jar/src/main/java/net/ihe/gazelle/lib/hl7templatespackager/adapters/ArchetypeInstantiatorMaven.java @@ -22,7 +22,7 @@ public class ArchetypeInstantiatorMaven implements ArchetypeInstantiator { private static org.slf4j.Logger log = LoggerFactory.getLogger(ArchetypeInstantiatorMaven.class); //this is supposed to be the version of the packager artifact. It is for now used as artifact version. See what we will use - private static final String gocVersion = "3.0.0"; + private static final String gocVersion = "3.0.4-SNAPSHOT"; private static final String CD_COMMAND = "cd \""; private static final String REPOSITORY = "https://gazelle.ihe.net/nexus/content/groups/public/"; diff --git a/hl7templates/hl7templates-packager-jar/src/main/java/net/ihe/gazelle/lib/hl7templatespackager/adapters/UMLModelGenerator.java b/hl7templates/hl7templates-packager-jar/src/main/java/net/ihe/gazelle/lib/hl7templatespackager/adapters/UMLModelGenerator.java index c4a652ad8f5ab3ebedad89a96b8f44a9d89bb795..9aeff3696da743e8abe4088c073389412d9a4b61 100644 --- a/hl7templates/hl7templates-packager-jar/src/main/java/net/ihe/gazelle/lib/hl7templatespackager/adapters/UMLModelGenerator.java +++ b/hl7templates/hl7templates-packager-jar/src/main/java/net/ihe/gazelle/lib/hl7templatespackager/adapters/UMLModelGenerator.java @@ -83,10 +83,10 @@ public class UMLModelGenerator implements ModelGenerator { + VALIDATOR_JAR_SUFFIX + File.separator + "model" + File.separator + validatorConfiguration.getProjectNaming().getProjectName() + ".uml"); try { BBRResource bbrResource = validatorConfiguration.getBbrResource(); - boolean ignoreTemplateIdRequirements = validatorConfiguration.ignoreTemplateIdRequirements(); + Boolean ignoreTemplateIdRequirements = validatorConfiguration.ignoreTemplateIdRequirements(); String tempalteVersionFilter = validatorConfiguration.getTemplateVersionFilter(); String umlModelForBBR; - umlModelForBBR = templatesConverter.convertArtDecorXMI(bbrResource, ignoreTemplateIdRequirements, tempalteVersionFilter); + umlModelForBBR = templatesConverter.convertArtDecorXMI(bbrResource, ignoreTemplateIdRequirements, tempalteVersionFilter,validatorConfiguration.getIgnoreChoicesPredicates()); log.info("ValidatorConfiguration converted to UML."); FileUtils.writeStringToFile(outUmlModelPath, umlModelForBBR, "UTF-8"); log.warn("Generated UML Model is saved at: "+outUmlModelPath); diff --git a/hl7templates/hl7templates-packager-jar/src/main/java/net/ihe/gazelle/lib/hl7templatespackager/application/ValidatorConfiguration.java b/hl7templates/hl7templates-packager-jar/src/main/java/net/ihe/gazelle/lib/hl7templatespackager/application/ValidatorConfiguration.java index 0b76abf10fe7047bc921e355f7ee247c8e974774..0349a811148b586a9200b5c5d3f215f224ee37ab 100644 --- a/hl7templates/hl7templates-packager-jar/src/main/java/net/ihe/gazelle/lib/hl7templatespackager/application/ValidatorConfiguration.java +++ b/hl7templates/hl7templates-packager-jar/src/main/java/net/ihe/gazelle/lib/hl7templatespackager/application/ValidatorConfiguration.java @@ -16,6 +16,15 @@ public class ValidatorConfiguration { private Boolean ignoreCdaBasicRequirements; private String serviceName; private ProjectNaming projectNaming; + private Boolean ignoreChoicesPredicates; + + public Boolean getIgnoreChoicesPredicates() { + return ignoreChoicesPredicates; + } + + public void setIgnoreChoicesPredicates(Boolean ignoreChoicesPredicates) { + this.ignoreChoicesPredicates = ignoreChoicesPredicates; + } @Deprecated private String bbrPath; @@ -37,12 +46,13 @@ public class ValidatorConfiguration { * @param serviceName : service name that will be used in validation reports */ public ValidatorConfiguration(BBRResource bbrResource, String templateVersionFilter, Boolean ignoreTemplateIdRequirements, - Boolean ignoreCdaBasicRequirements, String serviceName) { + Boolean ignoreCdaBasicRequirements, String serviceName, Boolean ignoreChoicesPredicates) { this.bbrResource = bbrResource; setTemplateVersionFilter(templateVersionFilter); setIgnoreTemplateIdRequirements(ignoreTemplateIdRequirements); setIgnoreCdaBasicRequirements(ignoreCdaBasicRequirements); setServiceName(serviceName); + setIgnoreChoicesPredicates(ignoreChoicesPredicates); projectNaming = new ProjectNaming(bbrResource); } diff --git a/hl7templates/hl7templates-packager-jar/src/main/java/net/ihe/gazelle/lib/hl7templatespackager/peripherals/GOCExecutor.java b/hl7templates/hl7templates-packager-jar/src/main/java/net/ihe/gazelle/lib/hl7templatespackager/peripherals/GOCExecutor.java index bec38a80ec95756b754210dbd77b2afdb7a65575..a8b89d23ee7cd3203a303d3588094d0a3f259d09 100644 --- a/hl7templates/hl7templates-packager-jar/src/main/java/net/ihe/gazelle/lib/hl7templatespackager/peripherals/GOCExecutor.java +++ b/hl7templates/hl7templates-packager-jar/src/main/java/net/ihe/gazelle/lib/hl7templatespackager/peripherals/GOCExecutor.java @@ -36,12 +36,12 @@ public class GOCExecutor { } public ValidatorConfiguration execute(BBRResource bbrResource, String mvnExecPath){ - return execute(bbrResource,mvnExecPath,null,false,false,null); + return execute(bbrResource,mvnExecPath,null,true,false,null,false); } public ValidatorConfiguration execute(BBRResource bbrResource,String mvnExecPath, String versionLabel, Boolean ignoreTemplateIdRequirements, - Boolean ignoreCdaBasicRequirements, String serviceName) { + Boolean ignoreCdaBasicRequirements, String serviceName,Boolean ignoreChoicesPredicates) { try{ addSubDirectoryToOutput("/validator"); @@ -77,8 +77,7 @@ public class GOCExecutor { ValidatorConfiguration validatorConfiguration = new ValidatorConfiguration(bbrResource, versionLabel, ignoreTemplateIdRequirements, ignoreCdaBasicRequirements, - serviceName); - + serviceName,ignoreChoicesPredicates); packager.packageBBRToGOCValidationTool(new Workspace(getWorkspaceName()),validatorConfiguration); return validatorConfiguration; diff --git a/hl7templates/hl7templates-packager-jar/src/main/java/net/ihe/gazelle/lib/hl7templatespackager/peripherals/HL7Templates2GOC.java b/hl7templates/hl7templates-packager-jar/src/main/java/net/ihe/gazelle/lib/hl7templatespackager/peripherals/HL7Templates2GOC.java index 3b241060d148693390c276ac2b4df14fce33bbb6..19290a789a079d99a85a2a4624dbe64b7d737511 100644 --- a/hl7templates/hl7templates-packager-jar/src/main/java/net/ihe/gazelle/lib/hl7templatespackager/peripherals/HL7Templates2GOC.java +++ b/hl7templates/hl7templates-packager-jar/src/main/java/net/ihe/gazelle/lib/hl7templatespackager/peripherals/HL7Templates2GOC.java @@ -55,6 +55,9 @@ public class HL7Templates2GOC implements GOCEntry { @Option(name = "-in", metaVar = "inputFile", usage = "Input folder", required = false) private String inputFile; + @Option(name = "-ignoreChoicesPredicates", metaVar = "ignoreChoicesPredicates", usage = "Ignore all choices predicates processing", required = false) + private boolean ignoreChoicesPredicates=false; + public String getVersionLabel() { return versionLabel; } @@ -200,7 +203,7 @@ public class HL7Templates2GOC implements GOCEntry { GOCExecutor gocExecutor = new GOCExecutor(outputFile, HL7TEMP_RESOURCES_PATH,HL7TEMP_CDACONFFOLDERNAME); gocExecutor.execute(new PathBBRResource(bbr),mvnExecPath,versionLabel, - ignoreTemplateIdRequirements,ignoreCdaBasicRequirements, serviceName); + ignoreTemplateIdRequirements,ignoreCdaBasicRequirements, serviceName,ignoreChoicesPredicates); } catch (CmdLineException e) { System.err.println("Exception in the execution of command line"); diff --git a/hl7templates/hl7templates-packager-jar/src/main/resources/assemble-scripts/eHDSIGeneration.sh b/hl7templates/hl7templates-packager-jar/src/main/resources/assemble-scripts/eHDSIGeneration.sh index ecf1e563b8766d26e91dec4b83d3c539aa934879..df06ab66b30f1b123c7b032321b7918017e5a48b 100755 --- a/hl7templates/hl7templates-packager-jar/src/main/resources/assemble-scripts/eHDSIGeneration.sh +++ b/hl7templates/hl7templates-packager-jar/src/main/resources/assemble-scripts/eHDSIGeneration.sh @@ -3,8 +3,8 @@ #################################### # DGSANTE Generation Script # Created by Achraf Achkari - 09 Nov 2021 -# Last revision - 09 Nov 2021 -# Version 1.0.0 +# Last revision - 21 Feb 2022 +# Version 1.1.0 ##################################### @@ -14,6 +14,42 @@ GREEN='\033[0;32m' ORANGE='\033[0;33m' NC='\033[0m' + +## FUNCTIONS DEFINITION + +function readBBR { + read -r bbrPath + isAbsPath=`echo "${bbrPath}" | grep ^/.* | wc -l` + if [ $isAbsPath -eq 0 ]; then + echo -e "${RED}[ ${bbrPath} ] is not an absolute path${NC}" + exit 1 + fi + if [ ! -f $bbrPath ]; then + echo -e "${RED}[ ${bbrPath} ] is not a file or doesn't exist !${NC}" + exit 1 + fi +} + +function friendly_trannsform { + bbrFriendlyOutput=`echo "$bbrPath" | sed --expression="s/.xml/-friendly.xml/g"` +# bbrOutput=`echo "$bbrPath" | sed --expression="s/.xml/-friendly.xml/g"` + packagerPath=`realpath ..` + packagerFolder=${packagerPath##*/} + if [ $packagerFolder == "hl7templates-packager-jar" ]; then + $mavenPath -f "$packagerPath/pom.xml" -Dtest=EHDSITransformers#transformBBRToFriendly test -DbbrPath="$bbrPath" -DbbrOutput="$bbrFriendlyOutput" + if [ $? == 0 ]; then + bbrPath=$bbrFriendlyOutput + echo -e "${GREEN}BBR Transformed to friendly at: ${bbrFriendlyOutput}${NC}" + else + echo -e "${ORANGE}Transformartion to frienly BBR Failed! Please provide Friendly manually, or contact support${NC}" + readBBR + fi + else + echo -e "${ORANGE}Could not found 'packager module' at $packagerPath, cannot perform transformation, please provide Friendly BBR manually${NC}" + readBBR + fi +} + #UNCOMENT THIS TO OVERRIDE DEFAULT JAVA VERSION USED BY SYSTEM #JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64" @@ -33,6 +69,8 @@ if [ -z "$javaVersion" ]; then exit 1 fi +## JAR DETECTION + # Try to get the jar of GOC automatically jarPath=`ls -l | grep -oh -e "[^ ]*-jar-with-dependencies\.jar"` @@ -54,6 +92,8 @@ else fi fi +## MAVEN VERIFICATION + #Try to use maven wrapper if [ -f ./classes/maven-wrapper/mvnw ];then mavenPath=$(realpath "./classes/maven-wrapper/mvnw") @@ -115,18 +155,10 @@ fi; echo -e "${GREEN}Using maven at: ${mavenPath}${NC}" +## BBR READING printf "Please enter a path to your BBR (Absolute Path) : " -read -r bbrPath -isAbsPath=`echo "${bbrPath}" | grep ^/.* | wc -l` -if [ $isAbsPath -eq 0 ]; then - echo -e "${RED}[ ${bbrPath} ] is not an absolute path${NC}" - exit 1 -fi -if [ ! -f $bbrPath ]; then - echo -e "${RED}[ ${bbrPath} ] is not a file or doesn't exist !${NC}" - exit 1 -fi +readBBR printf "Please choose the kind of validator you want to generate: \n" printf "\t 1- Pivot (L3)\n" @@ -153,6 +185,8 @@ case $choice in 3) echo -e "${GREEN}generation friendly${NC}" validator="friendly" + friendly_trannsform + echo -e "Friendly BBR Will be used for generation" ;; esac @@ -179,7 +213,7 @@ fi; echo -e "${GREEN}your validator will be generated in: ${workspaceDir}/${folderName}${NC}" ######## GENERATION COMMAND ######## -$JAVA_HOME/bin/java -jar $jarPath -bbr $bbrPath -out "${workspaceDir}/${folderName}" -mvn $mavenPath -serviceName $validator -HL7TEMP_CDACONFFOLDERNAME cdaepsos +$JAVA_HOME/bin/java -jar $jarPath -bbr $bbrPath -out "${workspaceDir}/${folderName}" -mvn $mavenPath -serviceName $validator -HL7TEMP_CDACONFFOLDERNAME cdaepsos -ignoreChoicesPredicates #################################### #Replacing XSD diff --git a/hl7templates/hl7templates-packager-jar/src/test/java/net/ihe/gazelle/lib/hl7templatespackager/application/GOCPackgerTest.java b/hl7templates/hl7templates-packager-jar/src/test/java/net/ihe/gazelle/lib/hl7templatespackager/application/GOCPackgerTest.java index 4218b37df446ba456dd7e6a166a29dc4c2ab910d..46d174ac9d9f288622377f5bf023a274adcf3c5b 100644 --- a/hl7templates/hl7templates-packager-jar/src/test/java/net/ihe/gazelle/lib/hl7templatespackager/application/GOCPackgerTest.java +++ b/hl7templates/hl7templates-packager-jar/src/test/java/net/ihe/gazelle/lib/hl7templatespackager/application/GOCPackgerTest.java @@ -34,6 +34,6 @@ public class GOCPackgerTest { Files.createDirectories(path); //notOverride set to false because new resources are retrieved with an anonymous workspace so we need to replace it - packager.packageBBRToGOCValidationTool(new Workspace(folderOutput), new ValidatorConfiguration(new PathBBRResource(bbrPath), "2.1", false,false, serviceName)); + packager.packageBBRToGOCValidationTool(new Workspace(folderOutput), new ValidatorConfiguration(new PathBBRResource(bbrPath), "2.1", false,false, serviceName,false)); } } diff --git a/hl7templates/hl7templates-packager-jar/src/test/java/net/ihe/gazelle/lib/hl7templatespackager/peripherals/scripts/EHDSITransformers.java b/hl7templates/hl7templates-packager-jar/src/test/java/net/ihe/gazelle/lib/hl7templatespackager/peripherals/scripts/EHDSITransformers.java new file mode 100644 index 0000000000000000000000000000000000000000..654973db2a8fcc2bbd99b1a74695d8e8b52baa1f --- /dev/null +++ b/hl7templates/hl7templates-packager-jar/src/test/java/net/ihe/gazelle/lib/hl7templatespackager/peripherals/scripts/EHDSITransformers.java @@ -0,0 +1,31 @@ +package net.ihe.gazelle.lib.hl7templatespackager.peripherals.scripts; + +import net.ihe.gazelle.tempgen.ehdsi.scripts.EHDSIFriendlyTransformer; + +import org.junit.Ignore; +import org.junit.Test; + +import javax.xml.bind.JAXBException; +import java.io.IOException; + + +/** + * All methods in this class are ignore, as they are executed as scripts and not tests + */ +public class EHDSITransformers { + + @Test + public void transformBBRToFriendly() throws IOException, JAXBException { + String bbrPath = System.getProperty("bbrPath"); + String bbrOutput = System.getProperty("bbrOutput"); + if(bbrPath == null || "".equals(bbrPath) || bbrOutput == null || "".equals(bbrOutput)){ + throw new IOException("BBR File not set"); + } + System.out.println("Using BBR: "+bbrPath); + if(!bbrPath.endsWith(".xml")){ + throw new IOException("Invalid XML File"); + } + String[] args = new String[]{bbrPath, bbrOutput}; + EHDSIFriendlyTransformer.main(args); + } +}