From 518ff7f110678276f7abf153d9fb828dbffa987c Mon Sep 17 00:00:00 2001 From: Eduard Date: Mon, 18 Aug 2025 15:55:21 +0200 Subject: [PATCH 1/6] Rebase from main to ELZ branch with compatible materials for Conformancelab --- .../elz-receiving-xis-scenario-1-maximal.xml | 104 +++ .../elz-receiving-xis-scenario-2-minimal.xml | 104 +++ .../ELZ/Test/Receiving-XIS/properties.json | 9 + ...lz-serving-xis-scenario-1-maximal-json.xml | 292 ++++++++ ...elz-serving-xis-scenario-1-maximal-xml.xml | 292 ++++++++ ...lz-serving-xis-scenario-2-minimal-json.xml | 292 ++++++++ ...elz-serving-xis-scenario-2-minimal-xml.xml | 292 ++++++++ .../ELZ/Test/Serving-XIS/properties.json | 9 + .../load-resources-purgecreateupdate-xml.xml | 648 ++++++++++++++++++ .../ELZ/Test/_LoadResources/properties.json | 6 + ...zingHuisartsParamedicusMaximaalbericht.xml | 174 +++++ ...zingHuisartsParamedicusMinimaalbericht.xml | 96 +++ .../resources/contactperson-de-Kok.xml | 140 ++++ .../resources/organization-04016056-0400.xml | 126 ++++ .../resources/organization-04086949.xml | 24 + .../resources/patient-XXX-Andrioli.xml | 25 + .../patient-van-XXX-Sanderink-de-Kok.xml | 145 ++++ .../resources/practitioner-000001111.xml | 16 + .../resources/practitioner-04115923.xml | 27 + .../resources/practitionerrole-000001111.xml | 27 + .../resources/practitionerrole-04115923.xml | 47 ++ ...zingHuisartsParamedicusMaximaalbericht.xml | 70 ++ ...zingHuisartsParamedicusMinimaalbericht.xml | 68 ++ ...zingHuisartsParamedicusMaximaalbericht.xml | 81 +++ ...zingHuisartsParamedicusMinimaalbericht.xml | 81 +++ .../elz-receiving-xis-scenario-1-maximal.xml | 37 + .../elz-receiving-xis-scenario-2-minimal.xml | 37 + .../elz-serving-xis-scenario-1-maximal.xml | 343 +++++++++ .../elz-serving-xis-scenario-2-minimal.xml | 259 +++++++ ...zingHuisartsParamedicusMaximaalbericht.xml | 153 +++++ ...zingHuisartsParamedicusMinimaalbericht.xml | 75 ++ .../resources/contactperson-de-Kok.xml | 128 ++++ .../resources/organization-04016056-0400.xml | 91 +++ .../resources/organization-04086949.xml | 11 + .../resources/patient-XXX-Andrioli.xml | 20 + .../patient-van-XXX-Sanderink-de-Kok.xml | 137 ++++ .../resources/practitioner-000001111.xml | 11 + .../resources/practitioner-04115923.xml | 22 + .../resources/practitionerrole-000001111.xml | 12 + .../resources/practitionerrole-04115923.xml | 25 + ...zingHuisartsParamedicusMaximaalbericht.xml | 42 ++ ...zingHuisartsParamedicusMinimaalbericht.xml | 41 ++ ...zingHuisartsParamedicusMaximaalbericht.xml | 41 ++ ...zingHuisartsParamedicusMinimaalbericht.xml | 41 ++ .../Test/build-ELZ-0-2-0-beta-Test.bat | 5 + .../Test/build-ELZ-0-2-0-beta-Test.sh | 13 + src/ELZ-0-2-0-beta/Test/build.properties | 6 + 47 files changed, 4745 insertions(+) create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/Receiving-XIS/properties.json create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/properties.json create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/_LoadResources/load-resources-purgecreateupdate-xml.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/_LoadResources/properties.json create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/contactperson-de-Kok.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/organization-04016056-0400.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/organization-04086949.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/patient-XXX-Andrioli.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/patient-van-XXX-Sanderink-de-Kok.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/practitioner-000001111.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/practitioner-04115923.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/practitionerrole-000001111.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/practitionerrole-04115923.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml create mode 100644 src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml create mode 100644 src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml create mode 100644 src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml create mode 100644 src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml create mode 100644 src/ELZ-0-2-0-beta/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml create mode 100644 src/ELZ-0-2-0-beta/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml create mode 100644 src/ELZ-0-2-0-beta/Test/_reference/resources/contactperson-de-Kok.xml create mode 100644 src/ELZ-0-2-0-beta/Test/_reference/resources/organization-04016056-0400.xml create mode 100644 src/ELZ-0-2-0-beta/Test/_reference/resources/organization-04086949.xml create mode 100644 src/ELZ-0-2-0-beta/Test/_reference/resources/patient-XXX-Andrioli.xml create mode 100644 src/ELZ-0-2-0-beta/Test/_reference/resources/patient-van-XXX-Sanderink-de-Kok.xml create mode 100644 src/ELZ-0-2-0-beta/Test/_reference/resources/practitioner-000001111.xml create mode 100644 src/ELZ-0-2-0-beta/Test/_reference/resources/practitioner-04115923.xml create mode 100644 src/ELZ-0-2-0-beta/Test/_reference/resources/practitionerrole-000001111.xml create mode 100644 src/ELZ-0-2-0-beta/Test/_reference/resources/practitionerrole-04115923.xml create mode 100644 src/ELZ-0-2-0-beta/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml create mode 100644 src/ELZ-0-2-0-beta/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml create mode 100644 src/ELZ-0-2-0-beta/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml create mode 100644 src/ELZ-0-2-0-beta/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml create mode 100644 src/ELZ-0-2-0-beta/Test/build-ELZ-0-2-0-beta-Test.bat create mode 100644 src/ELZ-0-2-0-beta/Test/build-ELZ-0-2-0-beta-Test.sh create mode 100644 src/ELZ-0-2-0-beta/Test/build.properties diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml new file mode 100644 index 0000000000..a8bcaedff4 --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml new file mode 100644 index 0000000000..0ffe50a1bf --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Receiving-XIS/properties.json b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Receiving-XIS/properties.json new file mode 100644 index 0000000000..481a98238a --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Receiving-XIS/properties.json @@ -0,0 +1,9 @@ + + { "goal" : "Test", + "fhirVersion" : "R4", + "informationStandard" : "ELZ 0.2.0", + "usecase" : "ELZ", + "role" : + { "name" : "Receiving-XIS", + "description" : "XIS that receives information from a sending system" }, + "serverAlias" : "nictiz" } \ No newline at end of file diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml new file mode 100644 index 0000000000..05da1687ac --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml @@ -0,0 +1,292 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml new file mode 100644 index 0000000000..c3ccab54aa --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml @@ -0,0 +1,292 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml new file mode 100644 index 0000000000..df8f0d3603 --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml @@ -0,0 +1,292 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml new file mode 100644 index 0000000000..2c3861b88e --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml @@ -0,0 +1,292 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/properties.json b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/properties.json new file mode 100644 index 0000000000..bcbd68e775 --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/properties.json @@ -0,0 +1,9 @@ + + { "goal" : "Test", + "fhirVersion" : "R4", + "informationStandard" : "ELZ 0.2.0", + "usecase" : "ELZ", + "role" : + { "name" : "Serving-XIS", + "description" : "XIS that can be queried by a client" }, + "serverAlias" : "nictiz" } \ No newline at end of file diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/_LoadResources/load-resources-purgecreateupdate-xml.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_LoadResources/load-resources-purgecreateupdate-xml.xml new file mode 100644 index 0000000000..50a640ba1d --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_LoadResources/load-resources-purgecreateupdate-xml.xml @@ -0,0 +1,648 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/_LoadResources/properties.json b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_LoadResources/properties.json new file mode 100644 index 0000000000..d94e8c0cdd --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_LoadResources/properties.json @@ -0,0 +1,6 @@ + + { "goal" : "Test", + "fhirVersion" : "R4", + "informationStandard" : "ELZ 0.2.0", + "usecase" : "ELZ", + "serverAlias" : "nictiz" } \ No newline at end of file diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml new file mode 100644 index 0000000000..8b90beb65e --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml @@ -0,0 +1,174 @@ + + + + + + + +
+ Referral note + + + + + + + + + + + + +
Samengestelde informatie. Subject: Patient, Sandra Janine (Sandra) van XXX_Sanderink. Id: hg-VerwijzingHuisartsParamedicusMaximaalbericht (urn:oid:2.16.840.1.113883.2.4.3.11.999.7), Status: definitiefAuteur: Healthcare professional (role), Huisartsen, niet nader gespecificeerd, Gezondheidscentrum de Brug +
Type + Referral note +
Gemaakt${CURRENTDATE}
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + <section> + <title value="Envelop"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="405624007"/> + <display value="administratieve documentatie"/> + </coding> + </code> + <section> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-TextValue"> + <valueString value="Fysiotherapie opstarten"/> + </extension> + <title value="Zorgpad"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="370858005"/> + <display value="volgen van klinisch zorgpad"/> + </coding> + </code> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml">Zorgpad: Fysiotherapie opstarten</div> + </text> + </section> + <section> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-TextValue"> + <valueString value="Gebruikt een rollator"/> + </extension> + <title value="Voorzieningen nodig bij consult"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="230211000146109"/> + <display value="faciliteiten benodigd bij consult"/> + </coding> + </code> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml">Voorzieningen nodig bij consult: Gebruikt een rollator</div> + </text> + </section> + </section> + <section> + <title value="Kern"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="406550009"/> + <display value="samenvatting van zorgvraag"/> + </coding> + </code> + <section> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-TextValue"> + <valueString value="Kromme teen"/> + </extension> + <title value="Reden bericht"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="440378000"/> + <display value="verwijzing voor"/> + </coding> + </code> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml">Reden bericht: Kromme teen</div> + </text> + </section> + <section> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-TextValue"> + <valueString value="Corrigeren"/> + </extension> + <title value="Ingestelde behandeling"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="108631000146107"/> + <display value="behandeling lopende"/> + </coding> + </code> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml">Ingestelde behandeling: Corrigeren</div> + </text> + </section> + <section> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-TextValue"> + <valueString value="Middels spalken"/> + </extension> + <title value="Procedurevoorstel"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="240471000146100"/> + <display value="toelichting op aard van verwijzing"/> + </coding> + </code> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml">Procedurevoorstel: Middels spalken</div> + </text> + </section> + <section> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-TextValue"> + <valueString value="Patiënt komt moeilijk uit haar woorden"/> + </extension> + <title value="Verder van belang"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="159121000146100"/> + <display value="toelichting op voorgesteld beleid"/> + </coding> + </code> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml">Verder van belang: Patiënt komt moeilijk uit haar woorden</div> + </text> + </section> + </section> +</Composition> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml new file mode 100644 index 0000000000..a8b2bc0258 --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml @@ -0,0 +1,96 @@ +<Composition xmlns="http://hl7.org/fhir"> + <id value="composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/hg-ReferralComposition"/> + </meta> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml"> + <b>Referral note</b> + <table> + <caption>Samengestelde informatie. Subject: Patient, XXX_Andrioli. Id: hg-VerwijzingHuisartsParamedicusMinimaalbericht (urn:oid:2.16.840.1.113883.2.4.3.11.999.7), Status: definitief<span style="display: block;">Auteur: Healthcare professional (role)</span> + </caption> + <tbody> + <tr> + <th>Type</th> + <td> + <span title="Referral note (57133-1 - LOINC)">Referral note</span> + </td> + </tr> + <tr> + <th>Gemaakt</th> + <td>${CURRENTDATE}</td> + </tr> + </tbody> + </table> + </div> + </text> + <identifier> + <system value="urn:oid:2.16.840.1.113883.2.4.3.11.999.7"/> + <value value="hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + </identifier> + <status value="final"/> + <type> + <coding> + <system value="http://loinc.org"/> + <code value="57133-1"/> + <display value="Referral note"/> + </coding> + </type> + <subject> + <reference value="Patient/patient-XXX-Andrioli"/> + <type value="Patient"/> + <display value="Patient, XXX_Andrioli"/> + </subject> + <date value="${CURRENTDATE}"/> + <author> + <reference value="PractitionerRole/practitionerrole-000001111"/> + <type value="PractitionerRole"/> + <display value="Healthcare professional (role)"/> + </author> + <title value="Referral note"/> + <section> + <title value="Kern"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="406550009"/> + <display value="samenvatting van zorgvraag"/> + </coding> + </code> + <section> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-TextValue"> + <valueString value="rugklachten"/> + </extension> + <title value="Reden bericht"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="440378000"/> + <display value="verwijzing voor"/> + </coding> + </code> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml">Reden bericht: rugklachten</div> + </text> + </section> + <section> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-TextValue"> + <valueString value="oefentherapie"/> + </extension> + <title value="Ingestelde behandeling"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="108631000146107"/> + <display value="behandeling lopende"/> + </coding> + </code> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml">Ingestelde behandeling: oefentherapie</div> + </text> + </section> + </section> +</Composition> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/contactperson-de-Kok.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/contactperson-de-Kok.xml new file mode 100644 index 0000000000..5499c80f57 --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/contactperson-de-Kok.xml @@ -0,0 +1,140 @@ +<RelatedPerson xmlns="http://hl7.org/fhir"> + <id value="contactperson-de-Kok"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-ContactPerson"/> + </meta> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml"> + <div> + <span title="Naamsamenstelling: Eigennaam">Henk Leo (Henk) de Kok</span> + </div> + <div> + <a href="tel:0665555556">0665555556</a> (Tel Privé), <a href="mailto:kokkie@testemail.nl">kokkie@testemail.nl</a> (E-mail Werk)</div> + <div>Knolweg to 1000 a II, 9999XA Stitswerd Het Hogeland, Nederland (Privé Bezoek)</div> + <div> + <span title="Eerste relatie/contactpersoon (01 - RoleCodeLijst (COD472-VEKT))">Eerste relatie/contactpersoon</span>, <span title="Partner (DOMPART - HL7 v3-RoleCode)">Partner</span> van Patient, Sandra Janine (Sandra) van XXX_Sanderink</div> + </div> + </text> + <patient> + <reference value="Patient/patient-van-XXX-Sanderink-de-Kok"/> + <type value="Patient"/> + <display value="Patient, Sandra Janine (Sandra) van XXX_Sanderink"/> + </patient> + <relationship> + <coding> + <system value="urn:oid:2.16.840.1.113883.2.4.3.11.22.472"/> + <code value="01"/> + <display value="Eerste relatie/contactpersoon"/> + </coding> + </relationship> + <relationship> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-RoleCode"/> + <code value="DOMPART"/> + <display value="Partner"/> + </coding> + </relationship> + <name> + <extension url="http://hl7.org/fhir/StructureDefinition/humanname-assembly-order"> + <valueCode value="NL1"/> + </extension> + <use value="official"/> + <text value="Henk Leo (Henk) de Kok"/> + <family value="de Kok"> + <extension url="http://hl7.org/fhir/StructureDefinition/humanname-own-prefix"> + <valueString value="de"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/humanname-own-name"> + <valueString value="Kok"/> + </extension> + </family> + <given value="Henk"> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier"> + <valueCode value="BR"/> + </extension> + </given> + <given value="Leo"> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier"> + <valueCode value="BR"/> + </extension> + </given> + </name> + <name> + <use value="official"/> + <given value="HL."> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier"> + <valueCode value="IN"/> + </extension> + </given> + </name> + <name> + <use value="usual"/> + <given value="Henk"/> + </name> + <telecom> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-Comment"> + <valueString value="Vooral 's avonds bereikbaar"/> + </extension> + <system value="phone"> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-CodeSpecification"> + <valueCodeableConcept> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-AddressUse"/> + <code value="MC"/> + <display value="Mobiel telefoonnummer"/> + </coding> + </valueCodeableConcept> + </extension> + </system> + <value value="0665555556"/> + <use value="home"/> + </telecom> + <telecom> + <system value="email"/> + <value value="kokkie@testemail.nl"/> + <use value="work"/> + </telecom> + <address> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-AddressInformation.AddressType"> + <valueCodeableConcept> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-AddressUse"/> + <code value="PHYS"/> + <display value="Woon-/verblijfadres"/> + </coding> + </valueCodeableConcept> + </extension> + <use value="home"/> + <type value="physical"/> + <line value="Knolweg to 1000 a II"> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName"> + <valueString value="Knolweg"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber"> + <valueString value="1000"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-buildingNumberSuffix"> + <valueString value="a II"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-additionalLocator"> + <valueString value="to"/> + </extension> + </line> + <city value="Stitswerd"/> + <district value="Het Hogeland"/> + <postalCode value="9999XA"/> + <country value="Nederland"> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-CodeSpecification"> + <valueCodeableConcept> + <coding> + <system value="urn:iso:std:iso:3166"/> + <version value="2020-10-26T00:00:00"/> + <code value="NL"/> + <display value="Nederland"/> + </coding> + </valueCodeableConcept> + </extension> + </country> + </address> +</RelatedPerson> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/organization-04016056-0400.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/organization-04016056-0400.xml new file mode 100644 index 0000000000..b80148104b --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/organization-04016056-0400.xml @@ -0,0 +1,126 @@ +<Organization xmlns="http://hl7.org/fhir"> + <id value="organization-04016056-0400"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthcareProvider-Organization"/> + </meta> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml"> + <table> + <caption>Organisatie. Id: 04016056 (AGB-Z)</caption> + <tbody> + <tr> + <th>Naam</th> + <td>FysioHolland</td> + </tr> + <tr> + <th>Type</th> + <td> + <div> + <span title="Fysiotherapeuten, niet nader gespecificeerd (0400 - AGB-medisch specialisme)">Fysiotherapeuten, niet nader gespecificeerd</span> + </div> + <div> + <span title="Zelfstandig behandelcentrum (Z4 - organization-type)">Zelfstandig behandelcentrum</span> + </div> + </td> + </tr> + <tr> + <th>Contactgegevens</th> + <td> + <a href="tel:088-9876543">088-9876543</a> (Tel Werk)<br/> + <a href="mailto:fysiotherapie@holland.nl">fysiotherapie@holland.nl</a> (E-mail Werk)<br/> + </td> + </tr> + <tr> + <th>Adres</th> + <td>Amsterdamsestraatweg 646 B Bis, 3555HX Utrecht Utrecht, Nederland (Werk)</td> + </tr> + </tbody> + </table> + </div> + </text> + <identifier> + <system value="http://fhir.nl/fhir/NamingSystem/agb-z"/> + <value value="04016056"/> + </identifier> + <type> + <coding> + <system value="urn:oid:2.16.840.1.113883.2.4.6.7"/> + <version value="2020-10-23T00:00:00"/> + <code value="0400"/> + <display value="Fysiotherapeuten, niet nader gespecificeerd"/> + </coding> + </type> + <type> + <coding> + <system value="http://nictiz.nl/fhir/NamingSystem/organization-type"/> + <code value="Z4"/> + <display value="Zelfstandig behandelcentrum"/> + </coding> + </type> + <name value="FysioHolland"/> + <telecom> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-Comment"> + <valueString value="Bereikbaarheid alleen tijdens kantooruren"/> + </extension> + <system value="phone"> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-CodeSpecification"> + <valueCodeableConcept> + <coding> + <system value="urn:oid:2.16.840.1.113883.2.4.3.11.60.40.4.22.1"/> + <code value="LL"/> + <display value="Land Line"/> + </coding> + </valueCodeableConcept> + </extension> + </system> + <value value="088-9876543"/> + <use value="work"/> + </telecom> + <telecom> + <system value="email"/> + <value value="fysiotherapie@holland.nl"/> + <use value="work"/> + </telecom> + <address> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-AddressInformation.AddressType"> + <valueCodeableConcept> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-AddressUse"/> + <code value="WP"/> + <display value="Werkadres"/> + </coding> + </valueCodeableConcept> + </extension> + <use value="work"/> + <line value="Amsterdamsestraatweg 646 B Bis"> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName"> + <valueString value="Amsterdamsestraatweg"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber"> + <valueString value="646"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-buildingNumberSuffix"> + <valueString value="B Bis"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-unitID"> + <valueString value="Ingang trap omhoog"/> + </extension> + </line> + <city value="Utrecht"/> + <district value="Utrecht"/> + <postalCode value="3555HX"/> + <country value="Nederland"> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-CodeSpecification"> + <valueCodeableConcept> + <coding> + <system value="urn:iso:std:iso:3166"/> + <version value="2020-10-26T00:00:00"/> + <code value="NL"/> + <display value="Nederland"/> + </coding> + </valueCodeableConcept> + </extension> + </country> + </address> +</Organization> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/organization-04086949.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/organization-04086949.xml new file mode 100644 index 0000000000..b8fc7f522c --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/organization-04086949.xml @@ -0,0 +1,24 @@ +<Organization xmlns="http://hl7.org/fhir"> + <id value="organization-04086949"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthcareProvider-Organization"/> + </meta> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml"> + <table> + <caption>Organisatie. Id: 04086949 (AGB-Z)</caption> + <tbody> + <tr> + <th>Naam</th> + <td/> + </tr> + </tbody> + </table> + </div> + </text> + <identifier> + <system value="http://fhir.nl/fhir/NamingSystem/agb-z"/> + <value value="04086949"/> + </identifier> +</Organization> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/patient-XXX-Andrioli.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/patient-XXX-Andrioli.xml new file mode 100644 index 0000000000..5562997ebc --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/patient-XXX-Andrioli.xml @@ -0,0 +1,25 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="patient-XXX-Andrioli"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-Patient"/> + </meta> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml"> + <div>Id 999900262 (BSN), XXX_Andrioli</div> + </div> + </text> + <identifier> + <system value="http://fhir.nl/fhir/NamingSystem/bsn"/> + <value value="999900262"/> + </identifier> + <name> + <use value="official"/> + <text value="XXX_Andrioli"/> + <family value="XXX_Andrioli"> + <extension url="http://hl7.org/fhir/StructureDefinition/humanname-own-name"> + <valueString value="XXX_Andrioli"/> + </extension> + </family> + </name> +</Patient> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/patient-van-XXX-Sanderink-de-Kok.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/patient-van-XXX-Sanderink-de-Kok.xml new file mode 100644 index 0000000000..3d518d83fe --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/patient-van-XXX-Sanderink-de-Kok.xml @@ -0,0 +1,145 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="patient-van-XXX-Sanderink-de-Kok"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-Patient"/> + </meta> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml"> + <div>Id 999900250 (BSN), <span title="Naamsamenstelling: Eigennaam">Sandra Janine (Sandra) van XXX_Sanderink</span>, Vrouw, 1 oktober 1963, Geen meerling</div> + <div> + <a href="tel:0698765678">0698765678</a> (Tel Privé), <a href="mailto:xxx_sanderink@testemail.nl">xxx_sanderink@testemail.nl</a> (E-mail Privé)</div> + <div>Knolweg to 1000 a II, 9999XA Stitswerd Het Hogeland, Nederland (Privé Bezoek)</div> + </div> + </text> + <identifier> + <system value="http://fhir.nl/fhir/NamingSystem/bsn"/> + <value value="999900250"/> + </identifier> + <name> + <extension url="http://hl7.org/fhir/StructureDefinition/humanname-assembly-order"> + <valueCode value="NL1"/> + </extension> + <use value="official"/> + <text value="Sandra Janine (Sandra) van XXX_Sanderink"/> + <family value="van XXX_Sanderink"> + <extension url="http://hl7.org/fhir/StructureDefinition/humanname-own-prefix"> + <valueString value="van"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/humanname-own-name"> + <valueString value="XXX_Sanderink"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/humanname-partner-prefix"> + <valueString value="de"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/humanname-partner-name"> + <valueString value="Kok"/> + </extension> + </family> + <given value="Sandra"> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier"> + <valueCode value="BR"/> + </extension> + </given> + <given value="Janine"> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier"> + <valueCode value="BR"/> + </extension> + </given> + <prefix value="Ing."/> + </name> + <name> + <use value="official"/> + <given value="SJ."> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier"> + <valueCode value="IN"/> + </extension> + </given> + </name> + <name> + <use value="usual"/> + <given value="Sandra"/> + </name> + <telecom> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-Comment"> + <valueString value="Alleen overdag bereikbaar"/> + </extension> + <system value="phone"> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-CodeSpecification"> + <valueCodeableConcept> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-AddressUse"/> + <code value="MC"/> + <display value="Mobiel telefoonnummer"/> + </coding> + </valueCodeableConcept> + </extension> + </system> + <value value="0698765678"/> + <use value="home"/> + </telecom> + <telecom> + <system value="email"/> + <value value="xxx_sanderink@testemail.nl"/> + <use value="home"/> + </telecom> + <gender value="female"> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-CodeSpecification"> + <valueCodeableConcept> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-AdministrativeGender"/> + <code value="F"/> + <display value="Vrouw"/> + </coding> + </valueCodeableConcept> + </extension> + </gender> + <birthDate value="1963-10-01"/> + <deceasedBoolean value="false"/> + <address> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-AddressInformation.AddressType"> + <valueCodeableConcept> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-AddressUse"/> + <code value="PHYS"/> + <display value="Woon-/verblijfadres"/> + </coding> + </valueCodeableConcept> + </extension> + <use value="home"/> + <type value="physical"/> + <line value="Knolweg to 1000 a II"> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName"> + <valueString value="Knolweg"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber"> + <valueString value="1000"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-buildingNumberSuffix"> + <valueString value="a II"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-additionalLocator"> + <valueString value="to"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-unitID"> + <valueString value="Huize Zonnebloem"/> + </extension> + </line> + <city value="Stitswerd"/> + <district value="Het Hogeland"/> + <postalCode value="9999XA"/> + <country value="Nederland"> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-CodeSpecification"> + <valueCodeableConcept> + <coding> + <system value="urn:iso:std:iso:3166"/> + <version value="2020-10-26T00:00:00"/> + <code value="NL"/> + <display value="Nederland"/> + </coding> + </valueCodeableConcept> + </extension> + </country> + </address> + <multipleBirthBoolean value="false"/> +</Patient> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/practitioner-000001111.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/practitioner-000001111.xml new file mode 100644 index 0000000000..e7dbb5de53 --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/practitioner-000001111.xml @@ -0,0 +1,16 @@ +<Practitioner xmlns="http://hl7.org/fhir"> + <id value="practitioner-000001111"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthProfessional-Practitioner"/> + </meta> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml"> + <div>Id 000001111 (UZI-NR-PERS)</div> + </div> + </text> + <identifier> + <system value="http://fhir.nl/fhir/NamingSystem/uzi-nr-pers"/> + <value value="000001111"/> + </identifier> +</Practitioner> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/practitioner-04115923.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/practitioner-04115923.xml new file mode 100644 index 0000000000..55996da9c9 --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/practitioner-04115923.xml @@ -0,0 +1,27 @@ +<Practitioner xmlns="http://hl7.org/fhir"> + <id value="practitioner-04115923"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthProfessional-Practitioner"/> + </meta> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml"> + <div>Id 04115923 (AGB-Z), Vrouw</div> + </div> + </text> + <identifier> + <system value="http://fhir.nl/fhir/NamingSystem/agb-z"/> + <value value="04115923"/> + </identifier> + <gender value="female"> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-CodeSpecification"> + <valueCodeableConcept> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-AdministrativeGender"/> + <code value="F"/> + <display value="Vrouw"/> + </coding> + </valueCodeableConcept> + </extension> + </gender> +</Practitioner> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/practitionerrole-000001111.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/practitionerrole-000001111.xml new file mode 100644 index 0000000000..e2bf409616 --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/practitionerrole-000001111.xml @@ -0,0 +1,27 @@ +<PractitionerRole xmlns="http://hl7.org/fhir"> + <id value="practitionerrole-000001111"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthProfessional-PractitionerRole"/> + </meta> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml"> + <table> + <caption>Zorgverlenerrol. </caption> + <tbody> + <tr> + <th>Zorgverlener</th> + <td> + <div>Healthcare professional (person), person identification: 000001111 from system UZI Personen</div> + </td> + </tr> + </tbody> + </table> + </div> + </text> + <practitioner> + <reference value="Practitioner/practitioner-000001111"/> + <type value="Practitioner"/> + <display value="Healthcare professional (person), person identification: 000001111 from system UZI Personen"/> + </practitioner> +</PractitionerRole> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/practitionerrole-04115923.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/practitionerrole-04115923.xml new file mode 100644 index 0000000000..61d11be5f9 --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/practitionerrole-04115923.xml @@ -0,0 +1,47 @@ +<PractitionerRole xmlns="http://hl7.org/fhir"> + <id value="practitionerrole-04115923"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthProfessional-PractitionerRole"/> + </meta> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml"> + <table> + <caption>Zorgverlenerrol. </caption> + <tbody> + <tr> + <th>Zorgverlener</th> + <td> + <div>Healthcare professional (person), person identification: 04115923 from system AGB-Z</div> + <div>Healthcare provider (organization), FysioHolland</div> + </td> + </tr> + <tr> + <th>Specialisme</th> + <td> + <span title="Fysiotherapeuten, fysiotherapie en manuele therapie (0448 - AGB-medisch specialisme)">Fysiotherapeuten, fysiotherapie en manuele therapie</span> + </td> + </tr> + </tbody> + </table> + </div> + </text> + <practitioner> + <reference value="Practitioner/practitioner-04115923"/> + <type value="Practitioner"/> + <display value="Healthcare professional (person), person identification: 04115923 from system AGB-Z"/> + </practitioner> + <organization> + <reference value="Organization/organization-04016056-0400"/> + <type value="Organization"/> + <display value="Healthcare provider (organization), FysioHolland"/> + </organization> + <specialty> + <coding> + <system value="urn:oid:2.16.840.1.113883.2.4.6.7"/> + <version value="2020-10-23T00:00:00"/> + <code value="0448"/> + <display value="Fysiotherapeuten, fysiotherapie en manuele therapie"/> + </coding> + </specialty> +</PractitionerRole> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml new file mode 100644 index 0000000000..e41924bf81 --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml @@ -0,0 +1,70 @@ +<ServiceRequest xmlns="http://hl7.org/fhir"> + <id value="servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/hg-ReferralServiceRequest"/> + </meta> + <text> + <status value="generated"/> + <div xmlns="http://www.w3.org/1999/xhtml"> + <table> + <caption>ServiceRequest. Subject: Patient, Sandra Janine (Sandra) van XXX_Sanderink. Id: hg-VerwijzingHuisartsParamedicusMaximaalbericht (urn:oid:2.16.840.1.113883.2.4.3.11.999.7), Categorie: <span title="Verwijsbrief (1 - 2.16.840.1.113883.2.4.4.30.69)">Verwijsbrief</span>, Status: voltooid<span style="display: block;">Intentie: aanvraag</span> + <span style="display: block;">Prioriteit: asap</span> + <span style="display: block;">Uitvoerende: Healthcare professional (role), Fysiotherapeuten, fysiotherapie en manuele therapie, FysioHolland</span> + </caption> + <tbody> + <tr> + <th>Gemaakt</th> + <td>${CURRENTDATE}</td> + </tr> + <tr> + <th>Aanvrager</th> + <td>Healthcare professional (role), Huisartsen, niet nader gespecificeerd, Gezondheidscentrum de Brug</td> + </tr> + <tr> + <td/> + <td/> + </tr> + <tr> + <th>Ondersteunende informatie</th> + <td/> + </tr> + </tbody> + </table> + </div> + </text> + <identifier> + <system value="urn:oid:2.16.840.1.113883.2.4.3.11.999.7"/> + <value value="hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + </identifier> + <status value="completed"/> + <intent value="order"/> + <category> + <coding> + <system value="urn:oid:2.16.840.1.113883.2.4.4.30.69"/> + <code value="1"/> + <display value="Verwijsbrief"/> + </coding> + </category> + <priority value="asap"/> + <subject> + <reference value="Patient/patient-van-XXX-Sanderink-de-Kok"/> + <type value="Patient"/> + <display value="Patient, Sandra Janine (Sandra) van XXX_Sanderink"/> + </subject> + <authoredOn value="${CURRENTDATE}"/> + <requester> + <reference value="PractitionerRole/practitionerrole-000001111"/> + <type value="PractitionerRole"/> + <display value="Healthcare professional (role), Huisartsen, niet nader gespecificeerd, Gezondheidscentrum de Brug"/> + </requester> + <performer> + <reference value="PractitionerRole/practitionerrole-04115923"/> + <type value="PractitionerRole"/> + <display value="Healthcare professional (role), Fysiotherapeuten, fysiotherapie en manuele therapie, FysioHolland"/> + </performer> + <supportingInfo> + <reference value="Composition/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <type value="Composition"/> + <display value="Referral note, Test-XXX_Sanderink"/> + </supportingInfo> +</ServiceRequest> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml new file mode 100644 index 0000000000..a0d7a79d79 --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml @@ -0,0 +1,68 @@ +<ServiceRequest xmlns="http://hl7.org/fhir"> + <id value="servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/hg-ReferralServiceRequest"/> + </meta> + <text> + <status value="generated"/> + <div xmlns="http://www.w3.org/1999/xhtml"> + <table> + <caption>ServiceRequest. Subject: Patient, XXX_Andrioli. Id: hg-VerwijzingHuisartsParamedicusMinimaalbericht (urn:oid:2.16.840.1.113883.2.4.3.11.999.7), Categorie: <span title="Verwijsbrief (1 - 2.16.840.1.113883.2.4.4.30.69)">Verwijsbrief</span>, Status: voltooid<span style="display: block;">Intentie: aanvraag</span> + <span style="display: block;">Uitvoerende: Healthcare provider (organization), organisation-id 04086949 in system 2.16.840.1.113883.2.4.6.1</span> + </caption> + <tbody> + <tr> + <th>Gemaakt</th> + <td>${CURRENTDATE}</td> + </tr> + <tr> + <th>Aanvrager</th> + <td>Healthcare professional (role)</td> + </tr> + <tr> + <td/> + <td/> + </tr> + <tr> + <th>Ondersteunende informatie</th> + <td/> + </tr> + </tbody> + </table> + </div> + </text> + <identifier> + <system value="urn:oid:2.16.840.1.113883.2.4.3.11.999.7"/> + <value value="hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + </identifier> + <status value="completed"/> + <intent value="order"/> + <category> + <coding> + <system value="urn:oid:2.16.840.1.113883.2.4.4.30.69"/> + <code value="1"/> + <display value="Verwijsbrief"/> + </coding> + </category> + <subject> + <reference value="Patient/patient-XXX-Andrioli"/> + <type value="Patient"/> + <display value="Patient, XXX_Andrioli"/> + </subject> + <authoredOn value="${CURRENTDATE}"/> + <requester> + <reference value="PractitionerRole/practitionerrole-000001111"/> + <type value="PractitionerRole"/> + <display value="Healthcare professional (role)"/> + </requester> + <performer> + <reference value="Organization/organization-04086949"/> + <type value="Organization"/> + <display value="Healthcare provider (organization), organisation-id 04086949 in system 2.16.840.1.113883.2.4.6.1"/> + </performer> + <supportingInfo> + <reference value="Composition/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <type value="Composition"/> + <display value="Referral note, XXX_Andrioli"/> + </supportingInfo> +</ServiceRequest> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml new file mode 100644 index 0000000000..e0bde61c64 --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml @@ -0,0 +1,81 @@ +<Task xmlns="http://hl7.org/fhir"> + <id value="task-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/hg-ReferralTask"/> + </meta> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml"> + <table> + <caption>Taak. Id: hg-VerwijzingHuisartsParamedicusMaximaalbericht (urn:oid:2.16.840.1.113883.2.4.3.11.999.7), Status: is bezig<span style="display: block;">Intentie: aanvraag</span> + </caption> + <tbody> + <tr> + <th>Code</th> + <td> + <span title="verwijzen van patiënt (3457005 - SNOMED CT)">verwijzen van patiënt</span> + </td> + </tr> + <tr> + <th>Omschrijving</th> + <td/> + </tr> + <tr> + <th>Gemaakt</th> + <td>${CURRENTDATE}</td> + </tr> + <tr> + <th>Aanvrager</th> + <td/> + </tr> + <tr> + <th>Verantwoordelijk eigenaar</th> + <td>Healthcare provider (organization), organisation-id 04086949 in system 2.16.840.1.113883.2.4.6.1</td> + </tr> + <tr> + <th>Taak focus</th> + <td>envelop</td> + </tr> + <tr> + <th>Taak bedoeld voor</th> + <td>Patient, Sandra Janine (Sandra) van XXX_Sanderink</td> + </tr> + </tbody> + </table> + </div> + </text> + <identifier> + <system value="urn:oid:2.16.840.1.113883.2.4.3.11.999.7"/> + <value value="hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + </identifier> + <status value="in-progress"/> + <intent value="order"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="3457005"/> + <display value="verwijzen van patiënt"/> + </coding> + </code> + <focus> + <reference value="ServiceRequest/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <type value="ServiceRequest"/> + <display value="envelop"/> + </focus> + <for> + <reference value="Patient/patient-van-XXX-Sanderink-de-Kok"/> + <type value="Patient"/> + <display value="Patient, Sandra Janine (Sandra) van XXX_Sanderink"/> + </for> + <authoredOn value="${CURRENTDATE}"/> + <requester> + <reference value="PractitionerRole/practitionerrole-000001111"/> + <type value="PractitionerRole"/> + <display value="Healthcare professional (role)"/> + </requester> + <owner> + <reference value="Organization/organization-04086949"/> + <type value="Organization"/> + <display value="Healthcare provider (organization), organisation-id 04086949 in system 2.16.840.1.113883.2.4.6.1"/> + </owner> +</Task> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml new file mode 100644 index 0000000000..149c3f911a --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml @@ -0,0 +1,81 @@ +<Task xmlns="http://hl7.org/fhir"> + <id value="task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/hg-ReferralTask"/> + </meta> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml"> + <table> + <caption>Taak. Id: hg-VerwijzingHuisartsParamedicusMinimaalbericht (urn:oid:2.16.840.1.113883.2.4.3.11.999.7), Status: is bezig<span style="display: block;">Intentie: aanvraag</span> + </caption> + <tbody> + <tr> + <th>Code</th> + <td> + <span title="verwijzen van patiënt (3457005 - SNOMED CT)">verwijzen van patiënt</span> + </td> + </tr> + <tr> + <th>Omschrijving</th> + <td/> + </tr> + <tr> + <th>Gemaakt</th> + <td>${CURRENTDATE}</td> + </tr> + <tr> + <th>Aanvrager</th> + <td/> + </tr> + <tr> + <th>Verantwoordelijk eigenaar</th> + <td>Healthcare provider (organization), organisation-id 04086949 in system 2.16.840.1.113883.2.4.6.1</td> + </tr> + <tr> + <th>Taak focus</th> + <td>envelop</td> + </tr> + <tr> + <th>Taak bedoeld voor</th> + <td>Patient, XXX_Andrioli</td> + </tr> + </tbody> + </table> + </div> + </text> + <identifier> + <system value="urn:oid:2.16.840.1.113883.2.4.3.11.999.7"/> + <value value="hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + </identifier> + <status value="in-progress"/> + <intent value="order"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="3457005"/> + <display value="verwijzen van patiënt"/> + </coding> + </code> + <focus> + <reference value="ServiceRequest/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <type value="ServiceRequest"/> + <display value="envelop"/> + </focus> + <for> + <reference value="Patient/patient-XXX-Andrioli"/> + <type value="Patient"/> + <display value="Patient, XXX_Andrioli"/> + </for> + <authoredOn value="${CURRENTDATE}"/> + <requester> + <reference value="PractitionerRole/practitionerrole-000001111"/> + <type value="PractitionerRole"/> + <display value="Healthcare professional (role)"/> + </requester> + <owner> + <reference value="Organization/organization-04086949"/> + <type value="Organization"/> + <display value="Healthcare provider (organization), organisation-id 04086949 in system 2.16.840.1.113883.2.4.6.1"/> + </owner> +</Task> diff --git a/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml new file mode 100644 index 0000000000..7042b856c4 --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-model href="http://hl7.org/fhir/STU3/testscript.sch" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> +<TestScript xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript" + nts:scenario="client"> + <id value="elz-receiving-xis-scenario-1-maximal"/> + <version value="R4"/> + <name value="ELZ - Receiving XIS - Scenario 1 - Retrieve ELZ resources of van-XXX-Sanderink-de-Kok"/> + <description value="Scenario 1 - Retrieve ELZ resources of van-XXX-Sanderink-de-Kok"/> + <nts:authToken patientResourceId="patient-van-XXX-Sanderink-de-Kok"/> + + <test id="01-retrieve-Task"> + <name value="Scenario 1.1 - Task"/> + <description + value="Query Task resource"/> + <nts:include value="test.client.read" scope="common" + resource="Task" + params="/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht" + useToken="true"/> + </test> + + <test id="02-retrieve-ServiceRequest"> + <name value="Scenario 1.2 - ServiceRequest"/> + <description value="Query ServiceRequest resource"/> + <nts:include value="test.client.read" scope="common" resource="ServiceRequest" + params="/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht" + useToken="true"/> + </test> + + <test id="03-retrieve-Composition"> + <name value="Scenario 1.3 - Composition"/> + <description value="Query Composition resource with all the references by using the Document operation"/> + <nts:include value="test.client.read" scope="common" resource="Composition" + params="/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht" + useToken="true"/> + </test> + +</TestScript> diff --git a/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml new file mode 100644 index 0000000000..0fa2f4a8b8 --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-model href="http://hl7.org/fhir/STU3/testscript.sch" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> +<TestScript xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript" + nts:scenario="client"> + <id value="elz-receiving-xis-scenario-2-minimal"/> + <version value="R4"/> + <name value="ELZ - Receiving XIS - Scenario 2 - Retrieve ELZ resources of XXX-Andrioli"/> + <description value="Scenario 2 - Retrieve ELZ resources of XXX-Andrioli"/> + <nts:authToken patientResourceId="patient-XXX-Andrioli"/> + + <test id="01-retrieve-Task"> + <name value="Scenario 2.1 - Task"/> + <description + value="Query Task resource"/> + <nts:include value="test.client.read" scope="common" + resource="Task" + params="/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht" + useToken="true"/> + </test> + + <test id="02-retrieve-ServiceRequest"> + <name value="Scenario 2.2 - ServiceRequest"/> + <description value="Query ServiceRequest resource"/> + <nts:include value="test.client.read" scope="common" resource="ServiceRequest" + params="/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht" + useToken="true"/> + </test> + + <test id="03-retrieve-Composition"> + <name value="Scenario 2.3 - Composition"/> + <description value="Query Composition resource with all the references by using the Document operation"/> + <nts:include value="test.client.read" scope="common" resource="Composition" + params="/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht" + useToken="true"/> + </test> + +</TestScript> diff --git a/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml new file mode 100644 index 0000000000..e522bff601 --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml @@ -0,0 +1,343 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-model href="http://hl7.org/fhir/STU3/testscript.sch" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> +<TestScript xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript" + nts:scenario="server"> + <id value="elz-serving-xis-scenario-1-maximal"/> + <version value="R4"/> + <name value="ELZ - Serving XIS - Scenario 1 - Serving ELZ resources of van-XXX-Sanderink-de-Kok"/> + <description value="Scenario 1 - Serving ELZ resources of van-XXX-Sanderink-de-Kok"/> + <nts:authToken patientResourceId="patient-van-XXX-Sanderink-de-Kok"/> + + <variable nts:in-targets="CheckContent"> + <name value="composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id"/> + <description value="Resource.id for Composition 1"/> + <expression value="Composition.id"/> + <sourceId value="fixture-03-serve-Composition"/> + </variable> + + <variable> + <name value="taskid"/> + <description value="The resource id of the Task"/> + </variable> + + <variable> + <name value="servicerequestid"/> + <description value="The resource id from the ServiceRequest"/> + <expression value="Task.focus.reference.substring(Task.focus.reference.lastIndexOf('/') + 1)"/> + <sourceId value="taskfromserver"/> + </variable> + + + <variable> + <name value="compositionid"/> + <description value="The resource id from the Composition"/> + <expression value="ServiceRequest.supportingInfo.first().reference.substring(ServiceRequest.supportingInfo.first().reference.lastIndexOf('/') + 1)"/> + <sourceId value="servicerequestfromserver"/> + </variable> + + + <test id="01-serve-Task"> + <name value="Scenario 1.1 - Task"/> + <description + value="Serve Task resource"/> + <nts:include value="test.server.successfulRead" scope="common" + resource="Task" + params="/${taskid}" + useToken="true" + responseId="taskfromserver"/> + + <nts:contentAsserts href="resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml" + description="contains .code.coding.code = '3457005'" discriminator="code.where(coding.where(code = '3457005'))" nts:in-targets="CheckContent"/> + </test> + + <test id="02-serve-ServiceRequest"> + <name value="Scenario 1.2 - ServiceRequest"/> + <description value="Serve ServiceRequest resource"/> + <nts:include value="test.server.successfulRead" scope="common" + resource="ServiceRequest" + params="/${servicerequestid}" + useToken="true" + responseId="servicerequestfromserver"/> + + <nts:contentAsserts href="resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml" + description="contains .category.coding.code = '1'" discriminator="category.where(coding.where(code = '1'))" nts:in-targets="CheckContent"/> + </test> + + <test id="03-serve-Composition"> + <name value="Scenario 1.3 - Composition"/> + <description value="Serve Composition resource with all the references by using the Document operation"/> + <nts:include value="test.server.successfulRead" scope="common" + resource="Composition" + params="/${compositionid}" + useToken="true"/> + </test> + + <test nts:in-targets="CheckContent"> + <name value="Scenario 1.3 - Composition - Check Composition"/> + <description value="Check if the previous operation results in a FHIR Composition that contains the values that are expected following Nictiz' materials (fixture .id: composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht)"/> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Response contains exactly 1 Composition"/> + <direction value="response"/> + <expression value="Composition.count() = 1"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Composition resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="Composition.id.exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-1"/> + <description value="Contains .meta with .profile 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralComposition'"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').meta.profile.where($this = 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralComposition').exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-2"/> + <description value="Contains .identifier with .system and .value"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').identifier.where(system and value).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-3"/> + <description value="Contains .status 'final'"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').status = 'final'"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-4"/> + <description value="Contains .type with .coding with .system 'http://loinc.org' and .code '57133-1' and .display"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').type.coding.where(system = 'http://loinc.org' and code = '57133-1' and display).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-5"/> + <description value="Contains .subject with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').subject.where((reference or identifier) and display).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-6"/> + <description value="Contains .date"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').date.exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-7"/> + <description value="Contains .author with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').author.where((reference or identifier) and display).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-8"/> + <description value="Contains .title with a value. This assert only checks existence of a value, because string comparisons can have many possible caveats"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').title.hasValue()"/> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9"/> + <description value="Contains .section with .title with a value, and .code with .coding with .system 'http://snomed.info/sct' and .code '405624007' and .display, and , and. This assert checks if all children exist (if applicable with their specific values) and if they are present within one element. Following asserts check if individual children exist to help you debug if this assert fails"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(title.hasValue() and code.coding.where(system = 'http://snomed.info/sct' and code = '405624007' and display).exists()).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-1"/> + <description value="Contains .section.title with a value. This assert checks only one child. Assert 1-9 checks if all children are present in the same parent. This assert only checks existence of a value, because string comparisons can have many possible caveats"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(title.hasValue()).exists()"/> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-2"/> + <description value="Contains .section.code with .coding with .system 'http://snomed.info/sct' and .code '405624007' and .display. This assert checks only one child. Assert 1-9 checks if all children are present in the same parent"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(code.coding.where(system = 'http://snomed.info/sct' and code = '405624007' and display).exists()).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-3-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-9-3 checks if all children are present in the same parent"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-4-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-9-4 checks if all children are present in the same parent"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-10"/> + <description value="Contains .section with .title with a value, and .code with .coding with .system 'http://snomed.info/sct' and .code '406550009' and .display. This assert checks if all children exist (if applicable with their specific values) and if they are present within one element. Following asserts check if individual children exist to help you debug if this assert fails"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(title.hasValue() and code.coding.where(system = 'http://snomed.info/sct' and code = '406550009' and display).exists()).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-10-1"/> + <description value="Contains .section.title with a value. This assert checks only one child. Assert 1-10 checks if all children are present in the same parent. This assert only checks existence of a value, because string comparisons can have many possible caveats"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(title.hasValue()).exists()"/> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-10-2"/> + <description value="Contains .section.code with .coding with .system 'http://snomed.info/sct' and .code '406550009' and .display. This assert checks only one child. Assert 1-10 checks if all children are present in the same parent"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(code.coding.where(system = 'http://snomed.info/sct' and code = '406550009' and display).exists()).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-10-3-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-10-3 checks if all children are present in the same parent"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-10-4-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-10-4 checks if all children are present in the same parent"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-10-5-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-10-5 checks if all children are present in the same parent"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-10-6-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-10-6 checks if all children are present in the same parent"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + + </test> + +</TestScript> diff --git a/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml new file mode 100644 index 0000000000..95efad560b --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml @@ -0,0 +1,259 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-model href="http://hl7.org/fhir/STU3/testscript.sch" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> +<TestScript xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript" + nts:scenario="server"> + <id value="elz-serving-xis-scenario-2-minimal"/> + <version value="R4"/> + <name value="ELZ - Serving XIS - Scenario 2 - Serving ELZ resources of XXX-Andrioli"/> + <description value="Scenario 2 - Serving ELZ resources of XXX-Andrioli"/> + <nts:authToken patientResourceId="patient-XXX-Andrioli"/> + + <variable nts:in-targets="CheckContent"> + <name value="composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id"/> + <description value="Resource.id for Composition 1"/> + <expression value="Composition.id"/> + <sourceId value="fixture-03-serve-Composition"/> + </variable> + + <variable> + <name value="taskid"/> + <description value="The resource id of the Task"/> + </variable> + + <variable> + <name value="servicerequestid"/> + <description value="The resource id of the Servicerequest"/> + <expression value="Task.focus.reference.substring(Task.focus.reference.lastIndexOf('/') + 1)"/> + <sourceId value="taskfromserver"/> + </variable> + + <variable> + <name value="compositionid"/> + <description value="The resource id of the Composition"/> + <expression value="ServiceRequest.supportingInfo.first().reference.substring(ServiceRequest.supportingInfo.first().reference.lastIndexOf('/') + 1)"/> + <sourceId value="servicerequestfromserver"/> + </variable> + + <test id="01-serve-Task"> + <name value="Scenario 2.1 - Task"/> + <description + value="Serve Task resource"/> + <nts:include value="test.server.successfulRead" scope="common" + resource="Task" + params="/${taskid}" + useToken="true" + responseId="taskfromserver"/> + + <nts:contentAsserts href="resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml" + description="contains .code.coding.code = '3457005'" discriminator="code.where(coding.where(code = '3457005'))" nts:in-targets="CheckContent"/> + + </test> + + <test id="02-serve-ServiceRequest"> + <name value="Scenario 2.2 - ServiceRequest"/> + <description value="Serve ServiceRequest resource"/> + <nts:include value="test.server.successfulRead" scope="common" + resource="ServiceRequest" + params="/${servicerequestid}" + useToken="true" + responseId="servicerequestfromserver"/> + + <nts:contentAsserts href="resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml" + description="contains .category.coding.code = '1'" discriminator="category.where(coding.where(code = '1'))" nts:in-targets="CheckContent"/> + + </test> + + <test id="03-serve-Composition"> + <name value="Scenario 2.3 - Composition"/> + <description value="Serve Composition resource with all the references by using the Document operation"/> + <nts:include value="test.server.successfulRead" scope="common" + resource="Composition" + params="/${compositionid}" + useToken="true"/> + </test> + + + <test nts:in-targets="CheckContent"> + <name value="Scenario 2.3 - Composition - Check Composition"/> + <description value="Check if the previous operation results in a FHIR Composition that contains the values that are expected following Nictiz' materials (fixture .id: composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht)"/> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Response contains exactly 1 Composition"/> + <direction value="response"/> + <expression value="Composition.count() = 1"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Composition resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="Composition.id.exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-1"/> + <description value="Contains .meta with .profile 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralComposition'"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').meta.profile.where($this = 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralComposition').exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-2"/> + <description value="Contains .identifier with .system and .value"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').identifier.where(system and value).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-3"/> + <description value="Contains .status 'final'"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').status = 'final'"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-4"/> + <description value="Contains .type with .coding with .system 'http://loinc.org' and .code '57133-1' and .display"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').type.coding.where(system = 'http://loinc.org' and code = '57133-1' and display).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-5"/> + <description value="Contains .subject with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').subject.where((reference or identifier) and display).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-6"/> + <description value="Contains .date"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').date.exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-7"/> + <description value="Contains .author with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').author.where((reference or identifier) and display).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-8"/> + <description value="Contains .title with a value. This assert only checks existence of a value, because string comparisons can have many possible caveats"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').title.hasValue()"/> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9"/> + <description value="Contains .section with .title with a value, and .code with .coding with .system 'http://snomed.info/sct' and .code '406550009' and .display. This assert checks if all children exist (if applicable with their specific values) and if they are present within one element. Following asserts check if individual children exist to help you debug if this assert fails"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').section.where(title.hasValue() and code.coding.where(system = 'http://snomed.info/sct' and code = '406550009' and display).exists()).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-1"/> + <description value="Contains .section.title with a value. This assert checks only one child. Assert 1-9 checks if all children are present in the same parent. This assert only checks existence of a value, because string comparisons can have many possible caveats"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').section.where(title.hasValue()).exists()"/> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-2"/> + <description value="Contains .section.code with .coding with .system 'http://snomed.info/sct' and .code '406550009' and .display. This assert checks only one child. Assert 1-9 checks if all children are present in the same parent"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').section.where(code.coding.where(system = 'http://snomed.info/sct' and code = '406550009' and display).exists()).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-3-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-9-3 checks if all children are present in the same parent"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-4-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-9-4 checks if all children are present in the same parent"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + +</TestScript> diff --git a/src/ELZ-0-2-0-beta/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml new file mode 100644 index 0000000000..16304b7eb0 --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml @@ -0,0 +1,153 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Composition xmlns="http://hl7.org/fhir"> + <id value="composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/hg-ReferralComposition"/> + </meta> + <identifier> + <system value="urn:oid:2.16.840.1.113883.2.4.3.11.999.7"/> + <value value="hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + </identifier> + <status value="final"/> + <type> + <coding> + <system value="http://loinc.org"/> + <code value="57133-1"/> + <display value="Referral note"/> + </coding> + </type> + <subject> + <reference value="Patient/patient-van-XXX-Sanderink-de-Kok"/> + <type value="Patient"/> + <display value="Patient, Sandra Janine (Sandra) van XXX_Sanderink"/> + </subject> + <date value="${CURRENTDATE}"/> + <author> + <reference value="PractitionerRole/practitionerrole-000001111"/> + <type value="PractitionerRole"/> + <display value="Healthcare professional (role), Huisartsen, niet nader gespecificeerd, Gezondheidscentrum de Brug"/> + </author> + <title value="Referral note"/> + <section> + <title value="Envelop"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="405624007"/> + <display value="administratieve documentatie"/> + </coding> + </code> + <section> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-TextValue"> + <valueString value="Fysiotherapie opstarten"/> + </extension> + <title value="Zorgpad"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="370858005"/> + <display value="volgen van klinisch zorgpad"/> + </coding> + </code> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml">Zorgpad: Fysiotherapie opstarten</div> + </text> + </section> + <section> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-TextValue"> + <valueString value="Gebruikt een rollator"/> + </extension> + <title value="Voorzieningen nodig bij consult"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="230211000146109"/> + <display value="faciliteiten benodigd bij consult"/> + </coding> + </code> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml">Voorzieningen nodig bij consult: Gebruikt een rollator</div> + </text> + </section> + </section> + <section> + <title value="Kern"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="406550009"/> + <display value="samenvatting van zorgvraag"/> + </coding> + </code> + <section> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-TextValue"> + <valueString value="Kromme teen"/> + </extension> + <title value="Reden bericht"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="440378000"/> + <display value="verwijzing voor"/> + </coding> + </code> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml">Reden bericht: Kromme teen</div> + </text> + </section> + <section> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-TextValue"> + <valueString value="Corrigeren"/> + </extension> + <title value="Ingestelde behandeling"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="108631000146107"/> + <display value="behandeling lopende"/> + </coding> + </code> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml">Ingestelde behandeling: Corrigeren</div> + </text> + </section> + <section> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-TextValue"> + <valueString value="Middels spalken"/> + </extension> + <title value="Procedurevoorstel"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="240471000146100"/> + <display value="toelichting op aard van verwijzing"/> + </coding> + </code> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml">Procedurevoorstel: Middels spalken</div> + </text> + </section> + <section> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-TextValue"> + <valueString value="Patiënt komt moeilijk uit haar woorden"/> + </extension> + <title value="Verder van belang"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="159121000146100"/> + <display value="toelichting op voorgesteld beleid"/> + </coding> + </code> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml">Verder van belang: Patiënt komt moeilijk uit haar woorden</div> + </text> + </section> + </section> +</Composition> diff --git a/src/ELZ-0-2-0-beta/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml new file mode 100644 index 0000000000..5b024330ff --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml @@ -0,0 +1,75 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Composition xmlns="http://hl7.org/fhir"> + <id value="composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/hg-ReferralComposition"/> + </meta> + <identifier> + <system value="urn:oid:2.16.840.1.113883.2.4.3.11.999.7"/> + <value value="hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + </identifier> + <status value="final"/> + <type> + <coding> + <system value="http://loinc.org"/> + <code value="57133-1"/> + <display value="Referral note"/> + </coding> + </type> + <subject> + <reference value="Patient/patient-XXX-Andrioli"/> + <type value="Patient"/> + <display value="Patient, XXX_Andrioli"/> + </subject> + <date value="${CURRENTDATE}"/> + <author> + <reference value="PractitionerRole/practitionerrole-000001111"/> + <type value="PractitionerRole"/> + <display value="Healthcare professional (role)"/> + </author> + <title value="Referral note"/> + <section> + <title value="Kern"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="406550009"/> + <display value="samenvatting van zorgvraag"/> + </coding> + </code> + <section> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-TextValue"> + <valueString value="rugklachten"/> + </extension> + <title value="Reden bericht"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="440378000"/> + <display value="verwijzing voor"/> + </coding> + </code> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml">Reden bericht: rugklachten</div> + </text> + </section> + <section> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-TextValue"> + <valueString value="oefentherapie"/> + </extension> + <title value="Ingestelde behandeling"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="108631000146107"/> + <display value="behandeling lopende"/> + </coding> + </code> + <text> + <status value="extensions"/> + <div xmlns="http://www.w3.org/1999/xhtml">Ingestelde behandeling: oefentherapie</div> + </text> + </section> + </section> +</Composition> diff --git a/src/ELZ-0-2-0-beta/Test/_reference/resources/contactperson-de-Kok.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/contactperson-de-Kok.xml new file mode 100644 index 0000000000..d10fbbfeb5 --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/_reference/resources/contactperson-de-Kok.xml @@ -0,0 +1,128 @@ +<?xml version="1.0" encoding="UTF-8"?> +<RelatedPerson xmlns="http://hl7.org/fhir"> + <id value="contactperson-de-Kok"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-ContactPerson"/> + </meta> + <patient> + <reference value="Patient/patient-van-XXX-Sanderink-de-Kok"/> + <type value="Patient"/> + <display value="Patient, Sandra Janine (Sandra) van XXX_Sanderink"/> + </patient> + <relationship> + <coding> + <system value="urn:oid:2.16.840.1.113883.2.4.3.11.22.472"/> + <code value="01"/> + <display value="Eerste relatie/contactpersoon"/> + </coding> + </relationship> + <relationship> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-RoleCode"/> + <code value="DOMPART"/> + <display value="Partner"/> + </coding> + </relationship> + <name> + <extension url="http://hl7.org/fhir/StructureDefinition/humanname-assembly-order"> + <valueCode value="NL1"/> + </extension> + <use value="official"/> + <text value="Henk Leo (Henk) de Kok"/> + <family value="de Kok"> + <extension url="http://hl7.org/fhir/StructureDefinition/humanname-own-prefix"> + <valueString value="de"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/humanname-own-name"> + <valueString value="Kok"/> + </extension> + </family> + <given value="Henk"> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier"> + <valueCode value="BR"/> + </extension> + </given> + <given value="Leo"> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier"> + <valueCode value="BR"/> + </extension> + </given> + </name> + <name> + <use value="official"/> + <given value="HL."> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier"> + <valueCode value="IN"/> + </extension> + </given> + </name> + <name> + <use value="usual"/> + <given value="Henk"/> + </name> + <telecom> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-Comment"> + <valueString value="Vooral 's avonds bereikbaar"/> + </extension> + <system value="phone"> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-CodeSpecification"> + <valueCodeableConcept> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-AddressUse"/> + <code value="MC"/> + <display value="Mobiel telefoonnummer"/> + </coding> + </valueCodeableConcept> + </extension> + </system> + <value value="0665555556"/> + <use value="home"/> + </telecom> + <telecom> + <system value="email"/> + <value value="kokkie@testemail.nl"/> + <use value="work"/> + </telecom> + <address> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-AddressInformation.AddressType"> + <valueCodeableConcept> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-AddressUse"/> + <code value="PHYS"/> + <display value="Woon-/verblijfadres"/> + </coding> + </valueCodeableConcept> + </extension> + <use value="home"/> + <type value="physical"/> + <line value="Knolweg to 1000 a II"> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName"> + <valueString value="Knolweg"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber"> + <valueString value="1000"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-buildingNumberSuffix"> + <valueString value="a II"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-additionalLocator"> + <valueString value="to"/> + </extension> + </line> + <city value="Stitswerd"/> + <district value="Het Hogeland"/> + <postalCode value="9999XA"/> + <country value="Nederland"> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-CodeSpecification"> + <valueCodeableConcept> + <coding> + <system value="urn:iso:std:iso:3166"/> + <version value="2020-10-26T00:00:00"/> + <code value="NL"/> + <display value="Nederland"/> + </coding> + </valueCodeableConcept> + </extension> + </country> + </address> +</RelatedPerson> diff --git a/src/ELZ-0-2-0-beta/Test/_reference/resources/organization-04016056-0400.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/organization-04016056-0400.xml new file mode 100644 index 0000000000..b5569361cf --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/_reference/resources/organization-04016056-0400.xml @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Organization xmlns="http://hl7.org/fhir"> + <id value="organization-04016056-0400"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthcareProvider-Organization"/> + </meta> + <identifier> + <system value="http://fhir.nl/fhir/NamingSystem/agb-z"/> + <value value="04016056"/> + </identifier> + <type> + <coding> + <system value="urn:oid:2.16.840.1.113883.2.4.6.7"/> + <version value="2020-10-23T00:00:00"/> + <code value="0400"/> + <display value="Fysiotherapeuten, niet nader gespecificeerd"/> + </coding> + </type> + <type> + <coding> + <system value="http://nictiz.nl/fhir/NamingSystem/organization-type"/> + <code value="Z4"/> + <display value="Zelfstandig behandelcentrum"/> + </coding> + </type> + <name value="FysioHolland"/> + <telecom> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-Comment"> + <valueString value="Bereikbaarheid alleen tijdens kantooruren"/> + </extension> + <system value="phone"> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-CodeSpecification"> + <valueCodeableConcept> + <coding> + <system value="urn:oid:2.16.840.1.113883.2.4.3.11.60.40.4.22.1"/> + <code value="LL"/> + <display value="Land Line"/> + </coding> + </valueCodeableConcept> + </extension> + </system> + <value value="088-9876543"/> + <use value="work"/> + </telecom> + <telecom> + <system value="email"/> + <value value="fysiotherapie@holland.nl"/> + <use value="work"/> + </telecom> + <address> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-AddressInformation.AddressType"> + <valueCodeableConcept> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-AddressUse"/> + <code value="WP"/> + <display value="Werkadres"/> + </coding> + </valueCodeableConcept> + </extension> + <use value="work"/> + <line value="Amsterdamsestraatweg 646 B Bis"> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName"> + <valueString value="Amsterdamsestraatweg"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber"> + <valueString value="646"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-buildingNumberSuffix"> + <valueString value="B Bis"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-unitID"> + <valueString value="Ingang trap omhoog"/> + </extension> + </line> + <city value="Utrecht"/> + <district value="Utrecht"/> + <postalCode value="3555HX"/> + <country value="Nederland"> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-CodeSpecification"> + <valueCodeableConcept> + <coding> + <system value="urn:iso:std:iso:3166"/> + <version value="2020-10-26T00:00:00"/> + <code value="NL"/> + <display value="Nederland"/> + </coding> + </valueCodeableConcept> + </extension> + </country> + </address> +</Organization> diff --git a/src/ELZ-0-2-0-beta/Test/_reference/resources/organization-04086949.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/organization-04086949.xml new file mode 100644 index 0000000000..fcf2154f69 --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/_reference/resources/organization-04086949.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Organization xmlns="http://hl7.org/fhir"> + <id value="organization-04086949"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthcareProvider-Organization"/> + </meta> + <identifier> + <system value="http://fhir.nl/fhir/NamingSystem/agb-z"/> + <value value="04086949"/> + </identifier> +</Organization> diff --git a/src/ELZ-0-2-0-beta/Test/_reference/resources/patient-XXX-Andrioli.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/patient-XXX-Andrioli.xml new file mode 100644 index 0000000000..7f7895e618 --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/_reference/resources/patient-XXX-Andrioli.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Patient xmlns="http://hl7.org/fhir"> + <id value="patient-XXX-Andrioli"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-Patient"/> + </meta> + <identifier> + <system value="http://fhir.nl/fhir/NamingSystem/bsn"/> + <value value="999900262"/> + </identifier> + <name> + <use value="official"/> + <text value="XXX_Andrioli"/> + <family value="XXX_Andrioli"> + <extension url="http://hl7.org/fhir/StructureDefinition/humanname-own-name"> + <valueString value="XXX_Andrioli"/> + </extension> + </family> + </name> +</Patient> diff --git a/src/ELZ-0-2-0-beta/Test/_reference/resources/patient-van-XXX-Sanderink-de-Kok.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/patient-van-XXX-Sanderink-de-Kok.xml new file mode 100644 index 0000000000..46914547bd --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/_reference/resources/patient-van-XXX-Sanderink-de-Kok.xml @@ -0,0 +1,137 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Patient xmlns="http://hl7.org/fhir"> + <id value="patient-van-XXX-Sanderink-de-Kok"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-Patient"/> + </meta> + <identifier> + <system value="http://fhir.nl/fhir/NamingSystem/bsn"/> + <value value="999900250"/> + </identifier> + <name> + <extension url="http://hl7.org/fhir/StructureDefinition/humanname-assembly-order"> + <valueCode value="NL1"/> + </extension> + <use value="official"/> + <text value="Sandra Janine (Sandra) van XXX_Sanderink"/> + <family value="van XXX_Sanderink"> + <extension url="http://hl7.org/fhir/StructureDefinition/humanname-own-prefix"> + <valueString value="van"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/humanname-own-name"> + <valueString value="XXX_Sanderink"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/humanname-partner-prefix"> + <valueString value="de"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/humanname-partner-name"> + <valueString value="Kok"/> + </extension> + </family> + <given value="Sandra"> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier"> + <valueCode value="BR"/> + </extension> + </given> + <given value="Janine"> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier"> + <valueCode value="BR"/> + </extension> + </given> + <prefix value="Ing."/> + </name> + <name> + <use value="official"/> + <given value="SJ."> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier"> + <valueCode value="IN"/> + </extension> + </given> + </name> + <name> + <use value="usual"/> + <given value="Sandra"/> + </name> + <telecom> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-Comment"> + <valueString value="Alleen overdag bereikbaar"/> + </extension> + <system value="phone"> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-CodeSpecification"> + <valueCodeableConcept> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-AddressUse"/> + <code value="MC"/> + <display value="Mobiel telefoonnummer"/> + </coding> + </valueCodeableConcept> + </extension> + </system> + <value value="0698765678"/> + <use value="home"/> + </telecom> + <telecom> + <system value="email"/> + <value value="xxx_sanderink@testemail.nl"/> + <use value="home"/> + </telecom> + <gender value="female"> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-CodeSpecification"> + <valueCodeableConcept> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-AdministrativeGender"/> + <code value="F"/> + <display value="Vrouw"/> + </coding> + </valueCodeableConcept> + </extension> + </gender> + <birthDate value="1963-10-01"/> + <deceasedBoolean value="false"/> + <address> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-AddressInformation.AddressType"> + <valueCodeableConcept> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-AddressUse"/> + <code value="PHYS"/> + <display value="Woon-/verblijfadres"/> + </coding> + </valueCodeableConcept> + </extension> + <use value="home"/> + <type value="physical"/> + <line value="Knolweg to 1000 a II"> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName"> + <valueString value="Knolweg"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber"> + <valueString value="1000"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-buildingNumberSuffix"> + <valueString value="a II"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-additionalLocator"> + <valueString value="to"/> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-unitID"> + <valueString value="Huize Zonnebloem"/> + </extension> + </line> + <city value="Stitswerd"/> + <district value="Het Hogeland"/> + <postalCode value="9999XA"/> + <country value="Nederland"> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-CodeSpecification"> + <valueCodeableConcept> + <coding> + <system value="urn:iso:std:iso:3166"/> + <version value="2020-10-26T00:00:00"/> + <code value="NL"/> + <display value="Nederland"/> + </coding> + </valueCodeableConcept> + </extension> + </country> + </address> + <multipleBirthBoolean value="false"/> +</Patient> diff --git a/src/ELZ-0-2-0-beta/Test/_reference/resources/practitioner-000001111.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/practitioner-000001111.xml new file mode 100644 index 0000000000..13963d8135 --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/_reference/resources/practitioner-000001111.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Practitioner xmlns="http://hl7.org/fhir"> + <id value="practitioner-000001111"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthProfessional-Practitioner"/> + </meta> + <identifier> + <system value="http://fhir.nl/fhir/NamingSystem/uzi-nr-pers"/> + <value value="000001111"/> + </identifier> +</Practitioner> diff --git a/src/ELZ-0-2-0-beta/Test/_reference/resources/practitioner-04115923.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/practitioner-04115923.xml new file mode 100644 index 0000000000..45af266dea --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/_reference/resources/practitioner-04115923.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Practitioner xmlns="http://hl7.org/fhir"> + <id value="practitioner-04115923"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthProfessional-Practitioner"/> + </meta> + <identifier> + <system value="http://fhir.nl/fhir/NamingSystem/agb-z"/> + <value value="04115923"/> + </identifier> + <gender value="female"> + <extension url="http://nictiz.nl/fhir/StructureDefinition/ext-CodeSpecification"> + <valueCodeableConcept> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-AdministrativeGender"/> + <code value="F"/> + <display value="Vrouw"/> + </coding> + </valueCodeableConcept> + </extension> + </gender> +</Practitioner> diff --git a/src/ELZ-0-2-0-beta/Test/_reference/resources/practitionerrole-000001111.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/practitionerrole-000001111.xml new file mode 100644 index 0000000000..f392012749 --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/_reference/resources/practitionerrole-000001111.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<PractitionerRole xmlns="http://hl7.org/fhir"> + <id value="practitionerrole-000001111"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthProfessional-PractitionerRole"/> + </meta> + <practitioner> + <reference value="Practitioner/practitioner-000001111"/> + <type value="Practitioner"/> + <display value="Healthcare professional (person), person identification: 000001111 from system UZI Personen"/> + </practitioner> +</PractitionerRole> diff --git a/src/ELZ-0-2-0-beta/Test/_reference/resources/practitionerrole-04115923.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/practitionerrole-04115923.xml new file mode 100644 index 0000000000..50c2f31bec --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/_reference/resources/practitionerrole-04115923.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<PractitionerRole xmlns="http://hl7.org/fhir"> + <id value="practitionerrole-04115923"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthProfessional-PractitionerRole"/> + </meta> + <practitioner> + <reference value="Practitioner/practitioner-04115923"/> + <type value="Practitioner"/> + <display value="Healthcare professional (person), person identification: 04115923 from system AGB-Z"/> + </practitioner> + <organization> + <reference value="Organization/organization-04016056-0400"/> + <type value="Organization"/> + <display value="Healthcare provider (organization), FysioHolland"/> + </organization> + <specialty> + <coding> + <system value="urn:oid:2.16.840.1.113883.2.4.6.7"/> + <version value="2020-10-23T00:00:00"/> + <code value="0448"/> + <display value="Fysiotherapeuten, fysiotherapie en manuele therapie"/> + </coding> + </specialty> +</PractitionerRole> diff --git a/src/ELZ-0-2-0-beta/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml new file mode 100644 index 0000000000..258691b120 --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ServiceRequest xmlns="http://hl7.org/fhir"> + <id value="servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/hg-ReferralServiceRequest"/> + </meta> + <identifier> + <system value="urn:oid:2.16.840.1.113883.2.4.3.11.999.7"/> + <value value="hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + </identifier> + <status value="completed"/> + <intent value="order"/> + <category> + <coding> + <system value="urn:oid:2.16.840.1.113883.2.4.4.30.69"/> + <code value="1"/> + <display value="Verwijsbrief"/> + </coding> + </category> + <priority value="asap"/> + <subject> + <reference value="Patient/patient-van-XXX-Sanderink-de-Kok"/> + <type value="Patient"/> + <display value="Patient, Sandra Janine (Sandra) van XXX_Sanderink"/> + </subject> + <authoredOn value="${CURRENTDATE}"/> + <requester> + <reference value="PractitionerRole/practitionerrole-000001111"/> + <type value="PractitionerRole"/> + <display value="Healthcare professional (role), Huisartsen, niet nader gespecificeerd, Gezondheidscentrum de Brug"/> + </requester> + <performer> + <reference value="PractitionerRole/practitionerrole-04115923"/> + <type value="PractitionerRole"/> + <display value="Healthcare professional (role), Fysiotherapeuten, fysiotherapie en manuele therapie, FysioHolland"/> + </performer> + <supportingInfo> + <reference value="Composition/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <type value="Composition"/> + <display value="Referral note, Test-XXX_Sanderink"/> + </supportingInfo> +</ServiceRequest> diff --git a/src/ELZ-0-2-0-beta/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml new file mode 100644 index 0000000000..189114687d --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ServiceRequest xmlns="http://hl7.org/fhir"> + <id value="servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/hg-ReferralServiceRequest"/> + </meta> + <identifier> + <system value="urn:oid:2.16.840.1.113883.2.4.3.11.999.7"/> + <value value="hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + </identifier> + <status value="completed"/> + <intent value="order"/> + <category> + <coding> + <system value="urn:oid:2.16.840.1.113883.2.4.4.30.69"/> + <code value="1"/> + <display value="Verwijsbrief"/> + </coding> + </category> + <subject> + <reference value="Patient/patient-XXX-Andrioli"/> + <type value="Patient"/> + <display value="Patient, XXX_Andrioli"/> + </subject> + <authoredOn value="${CURRENTDATE}"/> + <requester> + <reference value="PractitionerRole/practitionerrole-000001111"/> + <type value="PractitionerRole"/> + <display value="Healthcare professional (role)"/> + </requester> + <performer> + <reference value="Organization/organization-04086949"/> + <type value="Organization"/> + <display value="Healthcare provider (organization), organisation-id 04086949 in system 2.16.840.1.113883.2.4.6.1"/> + </performer> + <supportingInfo> + <reference value="Composition/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <type value="Composition"/> + <display value="Referral note, XXX_Andrioli"/> + </supportingInfo> +</ServiceRequest> diff --git a/src/ELZ-0-2-0-beta/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml new file mode 100644 index 0000000000..5ac98745b5 --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Task xmlns="http://hl7.org/fhir"> + <id value="task-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/hg-ReferralTask"/> + </meta> + <identifier> + <system value="urn:oid:2.16.840.1.113883.2.4.3.11.999.7"/> + <value value="hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + </identifier> + <status value="in-progress"/> + <intent value="order"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="3457005"/> + <display value="verwijzen van patiënt"/> + </coding> + </code> + <focus> + <reference value="ServiceRequest/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <type value="ServiceRequest"/> + <display value="envelop"/> + </focus> + <for> + <reference value="Patient/patient-van-XXX-Sanderink-de-Kok"/> + <type value="Patient"/> + <display value="Patient, Sandra Janine (Sandra) van XXX_Sanderink"/> + </for> + <authoredOn value="${CURRENTDATE}"/> + <requester> + <reference value="PractitionerRole/practitionerrole-000001111"/> + <type value="PractitionerRole"/> + <display value="Healthcare professional (role)"/> + </requester> + <owner> + <reference value="Organization/organization-04086949"/> + <type value="Organization"/> + <display value="Healthcare provider (organization), organisation-id 04086949 in system 2.16.840.1.113883.2.4.6.1"/> + </owner> +</Task> diff --git a/src/ELZ-0-2-0-beta/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml new file mode 100644 index 0000000000..e6a94a1125 --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Task xmlns="http://hl7.org/fhir"> + <id value="task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/hg-ReferralTask"/> + </meta> + <identifier> + <system value="urn:oid:2.16.840.1.113883.2.4.3.11.999.7"/> + <value value="hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + </identifier> + <status value="in-progress"/> + <intent value="order"/> + <code> + <coding> + <system value="http://snomed.info/sct"/> + <code value="3457005"/> + <display value="verwijzen van patiënt"/> + </coding> + </code> + <focus> + <reference value="ServiceRequest/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <type value="ServiceRequest"/> + <display value="envelop"/> + </focus> + <for> + <reference value="Patient/patient-XXX-Andrioli"/> + <type value="Patient"/> + <display value="Patient, XXX_Andrioli"/> + </for> + <authoredOn value="${CURRENTDATE}"/> + <requester> + <reference value="PractitionerRole/practitionerrole-000001111"/> + <type value="PractitionerRole"/> + <display value="Healthcare professional (role)"/> + </requester> + <owner> + <reference value="Organization/organization-04086949"/> + <type value="Organization"/> + <display value="Healthcare provider (organization), organisation-id 04086949 in system 2.16.840.1.113883.2.4.6.1"/> + </owner> +</Task> diff --git a/src/ELZ-0-2-0-beta/Test/build-ELZ-0-2-0-beta-Test.bat b/src/ELZ-0-2-0-beta/Test/build-ELZ-0-2-0-beta-Test.bat new file mode 100644 index 0000000000..a97e2e0b47 --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/build-ELZ-0-2-0-beta-Test.bat @@ -0,0 +1,5 @@ +@setlocal enableextensions +@echo off + +call ant -f ..\..\build-single.xml -propertyfile build.properties %* +pause \ No newline at end of file diff --git a/src/ELZ-0-2-0-beta/Test/build-ELZ-0-2-0-beta-Test.sh b/src/ELZ-0-2-0-beta/Test/build-ELZ-0-2-0-beta-Test.sh new file mode 100644 index 0000000000..6b0af9a8b3 --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/build-ELZ-0-2-0-beta-Test.sh @@ -0,0 +1,13 @@ +#@setlocal enableextensions +#@echo off +JAVA_HOME=`/usr/libexec/java_home -v 1.8` +#PWD=`dirname $0` + +#echo "Removing ..." +#rm -f "$PWD/_reference/resources/*.xml" +#SOURCEDIR=`readlink -f "$PWD/../../../../HL7-mappings/ada_2_fhir/bgz_msz/1.2/beschikbaarstellen/fhir_instance/"` +#echo "Copying from $SOURCEDIR" +#echo " to $PWD/_reference/resources/" +#cp "$SOURCEDIR/*.xml" "$PWD/_reference/resources/" + +ant -f $PWD/../../build-single.xml -propertyfile $PWD/build.properties $* diff --git a/src/ELZ-0-2-0-beta/Test/build.properties b/src/ELZ-0-2-0-beta/Test/build.properties new file mode 100644 index 0000000000..8baf79091f --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/build.properties @@ -0,0 +1,6 @@ +input.dir = src/ELZ-0-2-0-beta/Test +output.dir = output/R4/ELZ-0-2-0-beta/ELZ/Test +fhir.version = R4 + +informationStandard = ELZ 0.2.0 +usecase = ELZ \ No newline at end of file From 677595c3d39512f3f91ca5b30ef7539aad6bc42f Mon Sep 17 00:00:00 2001 From: Eduard <rijcke@nictiz.nl> Date: Tue, 19 Aug 2025 13:19:44 +0200 Subject: [PATCH 2/6] Fixed the fhirpath expression in testscript for ELZ --- .../Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml | 4 ++-- .../Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml | 4 ++-- .../Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml | 4 ++-- .../Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml | 4 ++-- .../Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml | 4 ++-- .../Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml index 05da1687ac..d569024a77 100644 --- a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml @@ -47,13 +47,13 @@ <variable> <name value="servicerequestid"/> <description value="The resource id from the ServiceRequest"/> - <expression value="Task.focus.reference.substring(Task.focus.reference.lastIndexOf('/') + 1)"/> + <expression value="Task.focus.reference.replaceMatches('^.*ServiceRequest/','')"/> <sourceId value="taskfromserver"/> </variable> <variable> <name value="compositionid"/> <description value="The resource id from the Composition"/> - <expression value="ServiceRequest.supportingInfo.first().reference.substring(ServiceRequest.supportingInfo.first().reference.lastIndexOf('/') + 1)"/> + <expression value="ServiceRequest.supportingInfo.first().reference.replaceMatches('^.*Composition/','')"/> <sourceId value="servicerequestfromserver"/> </variable> <test id="01-serve-Task"> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml index c3ccab54aa..75fd4b3d82 100644 --- a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml @@ -47,13 +47,13 @@ <variable> <name value="servicerequestid"/> <description value="The resource id from the ServiceRequest"/> - <expression value="Task.focus.reference.substring(Task.focus.reference.lastIndexOf('/') + 1)"/> + <expression value="Task.focus.reference.replaceMatches('^.*ServiceRequest/','')"/> <sourceId value="taskfromserver"/> </variable> <variable> <name value="compositionid"/> <description value="The resource id from the Composition"/> - <expression value="ServiceRequest.supportingInfo.first().reference.substring(ServiceRequest.supportingInfo.first().reference.lastIndexOf('/') + 1)"/> + <expression value="ServiceRequest.supportingInfo.first().reference.replaceMatches('^.*Composition/','')"/> <sourceId value="servicerequestfromserver"/> </variable> <test id="01-serve-Task"> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml index df8f0d3603..580c3f7619 100644 --- a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml @@ -47,13 +47,13 @@ <variable> <name value="servicerequestid"/> <description value="The resource id of the Servicerequest"/> - <expression value="Task.focus.reference.substring(Task.focus.reference.lastIndexOf('/') + 1)"/> + <expression value="Task.focus.reference.replaceMatches('^.*ServiceRequest/','')"/> <sourceId value="taskfromserver"/> </variable> <variable> <name value="compositionid"/> <description value="The resource id of the Composition"/> - <expression value="ServiceRequest.supportingInfo.first().reference.substring(ServiceRequest.supportingInfo.first().reference.lastIndexOf('/') + 1)"/> + <expression value="ServiceRequest.supportingInfo.first().reference.replaceMatches('^.*Composition/','')"/> <sourceId value="servicerequestfromserver"/> </variable> <test id="01-serve-Task"> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml index 2c3861b88e..cb4ead850b 100644 --- a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml @@ -47,13 +47,13 @@ <variable> <name value="servicerequestid"/> <description value="The resource id of the Servicerequest"/> - <expression value="Task.focus.reference.substring(Task.focus.reference.lastIndexOf('/') + 1)"/> + <expression value="Task.focus.reference.replaceMatches('^.*ServiceRequest/','')"/> <sourceId value="taskfromserver"/> </variable> <variable> <name value="compositionid"/> <description value="The resource id of the Composition"/> - <expression value="ServiceRequest.supportingInfo.first().reference.substring(ServiceRequest.supportingInfo.first().reference.lastIndexOf('/') + 1)"/> + <expression value="ServiceRequest.supportingInfo.first().reference.replaceMatches('^.*Composition/','')"/> <sourceId value="servicerequestfromserver"/> </variable> <test id="01-serve-Task"> diff --git a/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml index e522bff601..f8fdf161b1 100644 --- a/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml +++ b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml @@ -23,7 +23,7 @@ <variable> <name value="servicerequestid"/> <description value="The resource id from the ServiceRequest"/> - <expression value="Task.focus.reference.substring(Task.focus.reference.lastIndexOf('/') + 1)"/> + <expression value="Task.focus.reference.replaceMatches('^.*ServiceRequest/','')"/> <sourceId value="taskfromserver"/> </variable> @@ -31,7 +31,7 @@ <variable> <name value="compositionid"/> <description value="The resource id from the Composition"/> - <expression value="ServiceRequest.supportingInfo.first().reference.substring(ServiceRequest.supportingInfo.first().reference.lastIndexOf('/') + 1)"/> + <expression value="ServiceRequest.supportingInfo.first().reference.replaceMatches('^.*Composition/','')"/> <sourceId value="servicerequestfromserver"/> </variable> diff --git a/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml index 95efad560b..f57b7227f7 100644 --- a/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml +++ b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml @@ -23,14 +23,14 @@ <variable> <name value="servicerequestid"/> <description value="The resource id of the Servicerequest"/> - <expression value="Task.focus.reference.substring(Task.focus.reference.lastIndexOf('/') + 1)"/> + <expression value="Task.focus.reference.replaceMatches('^.*ServiceRequest/','')"/> <sourceId value="taskfromserver"/> </variable> <variable> <name value="compositionid"/> <description value="The resource id of the Composition"/> - <expression value="ServiceRequest.supportingInfo.first().reference.substring(ServiceRequest.supportingInfo.first().reference.lastIndexOf('/') + 1)"/> + <expression value="ServiceRequest.supportingInfo.first().reference.replaceMatches('^.*Composition/','')"/> <sourceId value="servicerequestfromserver"/> </variable> From cb7eae64db9347a3b901c54a8973b5150ddbaa53 Mon Sep 17 00:00:00 2001 From: Eduard <rijcke@nictiz.nl> Date: Tue, 19 Aug 2025 13:54:43 +0200 Subject: [PATCH 3/6] Specified the taskid paramater for each scenario --- .../elz-serving-xis-scenario-1-maximal-json.xml | 2 +- .../elz-serving-xis-scenario-1-maximal-xml.xml | 2 +- .../elz-serving-xis-scenario-2-minimal-json.xml | 2 +- .../elz-serving-xis-scenario-2-minimal-xml.xml | 2 +- .../Serving-XIS/elz-serving-xis-scenario-1-maximal.xml | 8 +++----- .../Serving-XIS/elz-serving-xis-scenario-2-minimal.xml | 2 +- 6 files changed, 8 insertions(+), 10 deletions(-) diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml index d569024a77..096c5d85c5 100644 --- a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml @@ -41,7 +41,7 @@ <description value="OAuth Token for current patient"/> </variable> <variable> - <name value="taskid"/> + <name value="taskid-maximum"/> <description value="The resource id of the Task"/> </variable> <variable> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml index 75fd4b3d82..7d2abe2f74 100644 --- a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml @@ -41,7 +41,7 @@ <description value="OAuth Token for current patient"/> </variable> <variable> - <name value="taskid"/> + <name value="taskid-maximum"/> <description value="The resource id of the Task"/> </variable> <variable> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml index 580c3f7619..39b3a13a66 100644 --- a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml @@ -41,7 +41,7 @@ <description value="OAuth Token for current patient"/> </variable> <variable> - <name value="taskid"/> + <name value="taskid-minimum"/> <description value="The resource id of the Task"/> </variable> <variable> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml index cb4ead850b..624457e7c4 100644 --- a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml @@ -41,7 +41,7 @@ <description value="OAuth Token for current patient"/> </variable> <variable> - <name value="taskid"/> + <name value="taskid-minimum"/> <description value="The resource id of the Task"/> </variable> <variable> diff --git a/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml index f8fdf161b1..9ffcdc2e01 100644 --- a/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml +++ b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml @@ -16,7 +16,7 @@ </variable> <variable> - <name value="taskid"/> + <name value="taskid-maximum"/> <description value="The resource id of the Task"/> </variable> @@ -26,16 +26,14 @@ <expression value="Task.focus.reference.replaceMatches('^.*ServiceRequest/','')"/> <sourceId value="taskfromserver"/> </variable> - - + <variable> <name value="compositionid"/> <description value="The resource id from the Composition"/> <expression value="ServiceRequest.supportingInfo.first().reference.replaceMatches('^.*Composition/','')"/> <sourceId value="servicerequestfromserver"/> </variable> - - + <test id="01-serve-Task"> <name value="Scenario 1.1 - Task"/> <description diff --git a/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml index f57b7227f7..fd943ca567 100644 --- a/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml +++ b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml @@ -16,7 +16,7 @@ </variable> <variable> - <name value="taskid"/> + <name value="taskid-minimum"/> <description value="The resource id of the Task"/> </variable> From ef4c60dfc1e5e554dcb12fa9c931069a19f42869 Mon Sep 17 00:00:00 2001 From: Eduard <rijcke@nictiz.nl> Date: Tue, 19 Aug 2025 14:12:55 +0200 Subject: [PATCH 4/6] Small fix with taskid paramter --- .../Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml | 2 +- .../Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml | 2 +- .../Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml | 2 +- .../Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml | 2 +- .../Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml | 2 +- .../Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml index 096c5d85c5..56f12fff34 100644 --- a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml @@ -71,7 +71,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="/${taskid}"/> + <params value="/${taskid-maximum}"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml index 7d2abe2f74..f8fe31fe4c 100644 --- a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml @@ -71,7 +71,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="/${taskid}"/> + <params value="/${taskid-maximum}"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml index 39b3a13a66..b20b453b82 100644 --- a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml @@ -71,7 +71,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="/${taskid}"/> + <params value="/${taskid-minimum}"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml index 624457e7c4..6df0f5df6d 100644 --- a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml @@ -71,7 +71,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="/${taskid}"/> + <params value="/${taskid-minimum}"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> diff --git a/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml index 9ffcdc2e01..8924d29313 100644 --- a/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml +++ b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml @@ -40,7 +40,7 @@ value="Serve Task resource"/> <nts:include value="test.server.successfulRead" scope="common" resource="Task" - params="/${taskid}" + params="/${taskid-maximum}" useToken="true" responseId="taskfromserver"/> diff --git a/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml index fd943ca567..bd5c696025 100644 --- a/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml +++ b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml @@ -40,7 +40,7 @@ value="Serve Task resource"/> <nts:include value="test.server.successfulRead" scope="common" resource="Task" - params="/${taskid}" + params="/${taskid-minimum}" useToken="true" responseId="taskfromserver"/> From 58b8c1f1cdbea1fed9422fe05338b99e908d6bde Mon Sep 17 00:00:00 2001 From: Pieter Edelman <edelman@nictiz.nl> Date: Mon, 8 Sep 2025 10:14:38 +0200 Subject: [PATCH 5/6] Remove unneeded discriminator in content asserts --- .../elz-serving-xis-scenario-1-maximal.xml | 6 ++---- .../elz-serving-xis-scenario-2-minimal.xml | 6 ++---- .../Test/build-ELZ-0-2-0-beta-Test.sh | 15 ++------------- 3 files changed, 6 insertions(+), 21 deletions(-) diff --git a/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml index 8924d29313..164620b1bc 100644 --- a/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml +++ b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml @@ -44,8 +44,7 @@ useToken="true" responseId="taskfromserver"/> - <nts:contentAsserts href="resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml" - description="contains .code.coding.code = '3457005'" discriminator="code.where(coding.where(code = '3457005'))" nts:in-targets="CheckContent"/> + <nts:contentAsserts href="resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml" nts:in-targets="CheckContent"/> </test> <test id="02-serve-ServiceRequest"> @@ -57,8 +56,7 @@ useToken="true" responseId="servicerequestfromserver"/> - <nts:contentAsserts href="resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml" - description="contains .category.coding.code = '1'" discriminator="category.where(coding.where(code = '1'))" nts:in-targets="CheckContent"/> + <nts:contentAsserts href="resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml" nts:in-targets="CheckContent"/> </test> <test id="03-serve-Composition"> diff --git a/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml index bd5c696025..bdf0d9334b 100644 --- a/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml +++ b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml @@ -44,8 +44,7 @@ useToken="true" responseId="taskfromserver"/> - <nts:contentAsserts href="resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml" - description="contains .code.coding.code = '3457005'" discriminator="code.where(coding.where(code = '3457005'))" nts:in-targets="CheckContent"/> + <nts:contentAsserts href="resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml" nts:in-targets="CheckContent"/> </test> @@ -58,8 +57,7 @@ useToken="true" responseId="servicerequestfromserver"/> - <nts:contentAsserts href="resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml" - description="contains .category.coding.code = '1'" discriminator="category.where(coding.where(code = '1'))" nts:in-targets="CheckContent"/> + <nts:contentAsserts href="resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml" nts:in-targets="CheckContent"/> </test> diff --git a/src/ELZ-0-2-0-beta/Test/build-ELZ-0-2-0-beta-Test.sh b/src/ELZ-0-2-0-beta/Test/build-ELZ-0-2-0-beta-Test.sh index 6b0af9a8b3..ad108d33e2 100644 --- a/src/ELZ-0-2-0-beta/Test/build-ELZ-0-2-0-beta-Test.sh +++ b/src/ELZ-0-2-0-beta/Test/build-ELZ-0-2-0-beta-Test.sh @@ -1,13 +1,2 @@ -#@setlocal enableextensions -#@echo off -JAVA_HOME=`/usr/libexec/java_home -v 1.8` -#PWD=`dirname $0` - -#echo "Removing ..." -#rm -f "$PWD/_reference/resources/*.xml" -#SOURCEDIR=`readlink -f "$PWD/../../../../HL7-mappings/ada_2_fhir/bgz_msz/1.2/beschikbaarstellen/fhir_instance/"` -#echo "Copying from $SOURCEDIR" -#echo " to $PWD/_reference/resources/" -#cp "$SOURCEDIR/*.xml" "$PWD/_reference/resources/" - -ant -f $PWD/../../build-single.xml -propertyfile $PWD/build.properties $* +#!/bin/bash +ant -f ../../build-single.xml -propertyfile build.properties $* From 7320d6c64e146f33e5d7d18903a3abf640da1260 Mon Sep 17 00:00:00 2001 From: Pieter Edelman <edelman@nictiz.nl> Date: Mon, 8 Sep 2025 10:26:39 +0200 Subject: [PATCH 6/6] Add CheckContent target generation --- ...lz-serving-xis-scenario-1-maximal-json.xml | 858 ++++++++++++++++++ ...elz-serving-xis-scenario-1-maximal-xml.xml | 858 ++++++++++++++++++ ...lz-serving-xis-scenario-2-minimal-json.xml | 753 +++++++++++++++ ...elz-serving-xis-scenario-2-minimal-xml.xml | 753 +++++++++++++++ .../Serving-XIS-CheckContent/properties.json | 12 + src/ELZ-0-2-0-beta/Test/build.properties | 3 + 6 files changed, 3237 insertions(+) create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-json.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-xml.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-json.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-xml.xml create mode 100644 output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS-CheckContent/properties.json diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-json.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-json.xml new file mode 100644 index 0000000000..ffc1695784 --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-json.xml @@ -0,0 +1,858 @@ +<?xml version="1.0" encoding="UTF-8"?> +<TestScript xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> + <id value="elz-serving-xis-scenario-1-maximal-CheckContent-json"/> + <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-1-maximal-CheckContent-json"/> + <version value="R4-patchlevel 2025.31"/> + <name value="ELZ - Serving XIS - Scenario 1 - Serving ELZ resources of van-XXX-Sanderink-de-Kok - target CheckContent - JSON Format"/> + <status value="active"/> + <publisher value="Nictiz"/> + <contact> + <name value="Nictiz"/> + <telecom> + <system value="email"/> + <value value="kwalificatie@nictiz.nl"/> + <use value="work"/> + </telecom> + </contact> + <description value="Scenario 1 - Serving ELZ resources of van-XXX-Sanderink-de-Kok"/> + <origin> + <extension url="http://fhir.interoplab.eu/fhir/StructureDefinition/Interoplab-CL-ext-SUT"> + <valueBoolean value="false"/> + </extension> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-origin-types"/> + <code value="FHIR-Client"/> + </profile> + </origin> + <destination> + <extension url="http://fhir.interoplab.eu/fhir/StructureDefinition/Interoplab-CL-ext-SUT"> + <valueBoolean value="true"/> + </extension> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-destination-types"/> + <code value="FHIR-Server"/> + </profile> + </destination> + <variable> + <name value="patient-token-id"/> + <defaultValue value="Bearer 03e9660e-735a-44e5-ba80-402dd471f47d"/> + <description value="OAuth Token for current patient"/> + </variable> + <variable> + <name value="composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id"/> + <description value="Resource.id for Composition 1"/> + <expression value="Composition.id"/> + <sourceId value="fixture-03-serve-Composition"/> + </variable> + <variable> + <name value="taskid-maximum"/> + <description value="The resource id of the Task"/> + </variable> + <variable> + <name value="servicerequestid"/> + <description value="The resource id from the ServiceRequest"/> + <expression value="Task.focus.reference.replaceMatches('^.*ServiceRequest/','')"/> + <sourceId value="taskfromserver"/> + </variable> + <variable> + <name value="compositionid"/> + <description value="The resource id from the Composition"/> + <expression value="ServiceRequest.supportingInfo.first().reference.replaceMatches('^.*Composition/','')"/> + <sourceId value="servicerequestfromserver"/> + </variable> + <variable> + <name value="task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id"/> + <description value="Resource.id for Task 1"/> + <expression value="Task.id"/> + <sourceId value="fixture-01-serve-Task"/> + </variable> + <variable> + <name value="servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id"/> + <description value="Resource.id for ServiceRequest 1"/> + <expression value="ServiceRequest.id"/> + <sourceId value="fixture-02-serve-ServiceRequest"/> + </variable> + <test id="01-serve-Task"> + <name value="Scenario 1.1 - Task"/> + <description value="Serve Task resource"/> + <action> + <operation> + <type> + <system value="http://hl7.org/fhir/restful-interaction"/> + <code value="read"/> + </type> + <resource value="Task"/> + <description value="Test server to serve Task resource."/> + <accept value="json"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="/${taskid-maximum}"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + <responseId value="taskfromserver"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="Task.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that the OID of the zib valueset is not used for the system of a coding element."/> + <direction value="response"/> + <expression value="Task.descendants().where($this.is(coding)).where(system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2')).exists().not()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all CodeableConcept elements contain either a coding.display or a text value if no Coding exists or has an extension (e.g. a nullFlavor or data-absent-reason extension). For more information see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3Use_of_coded_concepts."/> + <direction value="response"/> + <expression value="Task.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all References have a display value, see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3#Use_of_the_reference_datatype."/> + <direction value="response"/> + <expression value="Task.descendants().where($this.is(Reference)).all(display.exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-nullFlavor').exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Identifiers have both a .system and a .value. In rare cases where a general category of identifiers can be used, .type can replace .system. Edge cases for both .system and .type to be unknown are not applicable to Nictiz. For more information, see https://www.hl7.org/fhir/stu3/datatypes.html#Identifier."/> + <direction value="response"/> + <expression value="Task.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) and value.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test> + <name value="Scenario 1.1 - Task - Check Task"/> + <description value="Check if the previous operation results in a FHIR Task that contains the values that are expected following Nictiz' materials (fixture .id: task-hg-VerwijzingHuisartsParamedicusMaximaalbericht)"/> + <action> + <assert> + <description value="Response contains exactly 1 Task"/> + <direction value="response"/> + <expression value="Task.count() = 1"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Task resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="Task.id.exists()"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-1"/> + <description value="Contains .meta with .profile 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralTask'"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').meta.profile.where($this = 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralTask').exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-2"/> + <description value="Contains .identifier with .system and .value"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').identifier.where(system and value).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-3"/> + <description value="Contains .status 'in-progress'"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').status = 'in-progress'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-4"/> + <description value="Contains .intent 'order'"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').intent = 'order'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-5"/> + <description value="Contains .code with .coding with .system 'http://snomed.info/sct' and .code '3457005' and .display"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').code.coding.where(system = 'http://snomed.info/sct' and code = '3457005' and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-6"/> + <description value="Contains .focus with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').focus.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-7"/> + <description value="Contains .for with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').for.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-8"/> + <description value="Contains .authoredOn"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').authoredOn.exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-9"/> + <description value="Contains .requester with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').requester.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-10"/> + <description value="Contains .owner with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').owner.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test id="02-serve-ServiceRequest"> + <name value="Scenario 1.2 - ServiceRequest"/> + <description value="Serve ServiceRequest resource"/> + <action> + <operation> + <type> + <system value="http://hl7.org/fhir/restful-interaction"/> + <code value="read"/> + </type> + <resource value="ServiceRequest"/> + <description value="Test server to serve ServiceRequest resource."/> + <accept value="json"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="/${servicerequestid}"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + <responseId value="servicerequestfromserver"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="ServiceRequest.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that the OID of the zib valueset is not used for the system of a coding element."/> + <direction value="response"/> + <expression value="ServiceRequest.descendants().where($this.is(coding)).where(system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2')).exists().not()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all CodeableConcept elements contain either a coding.display or a text value if no Coding exists or has an extension (e.g. a nullFlavor or data-absent-reason extension). For more information see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3Use_of_coded_concepts."/> + <direction value="response"/> + <expression value="ServiceRequest.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all References have a display value, see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3#Use_of_the_reference_datatype."/> + <direction value="response"/> + <expression value="ServiceRequest.descendants().where($this.is(Reference)).all(display.exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-nullFlavor').exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Identifiers have both a .system and a .value. In rare cases where a general category of identifiers can be used, .type can replace .system. Edge cases for both .system and .type to be unknown are not applicable to Nictiz. For more information, see https://www.hl7.org/fhir/stu3/datatypes.html#Identifier."/> + <direction value="response"/> + <expression value="ServiceRequest.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) and value.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test> + <name value="Scenario 1.2 - ServiceRequest - Check ServiceRequest"/> + <description value="Check if the previous operation results in a FHIR ServiceRequest that contains the values that are expected following Nictiz' materials (fixture .id: servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht)"/> + <action> + <assert> + <description value="Response contains exactly 1 ServiceRequest"/> + <direction value="response"/> + <expression value="ServiceRequest.count() = 1"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="ServiceRequest resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="ServiceRequest.id.exists()"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-1"/> + <description value="Contains .meta with .profile 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralServiceRequest'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').meta.profile.where($this = 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralServiceRequest').exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-2"/> + <description value="Contains .identifier with .system and .value"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').identifier.where(system and value).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-3"/> + <description value="Contains .status 'completed'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').status = 'completed'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-4"/> + <description value="Contains .intent 'order'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').intent = 'order'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-5"/> + <description value="Contains .category with .coding with .system 'urn:oid:2.16.840.1.113883.2.4.4.30.69' and .code '1' and .display"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').category.where(coding.where(system = 'urn:oid:2.16.840.1.113883.2.4.4.30.69' and code = '1' and display)).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-6"/> + <description value="Contains .priority 'asap'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').priority = 'asap'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-7"/> + <description value="Contains .subject with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').subject.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-8"/> + <description value="Contains .authoredOn"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').authoredOn.exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-9"/> + <description value="Contains .requester with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').requester.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-10"/> + <description value="Contains .performer with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').performer.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-11"/> + <description value="Contains .supportingInfo with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').supportingInfo.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test id="03-serve-Composition"> + <name value="Scenario 1.3 - Composition"/> + <description value="Serve Composition resource with all the references by using the Document operation"/> + <action> + <operation> + <type> + <system value="http://hl7.org/fhir/restful-interaction"/> + <code value="read"/> + </type> + <resource value="Composition"/> + <description value="Test server to serve Composition resource."/> + <accept value="json"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="/${compositionid}"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="Composition.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that the OID of the zib valueset is not used for the system of a coding element."/> + <direction value="response"/> + <expression value="Composition.descendants().where($this.is(coding)).where(system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2')).exists().not()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all CodeableConcept elements contain either a coding.display or a text value if no Coding exists or has an extension (e.g. a nullFlavor or data-absent-reason extension). For more information see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3Use_of_coded_concepts."/> + <direction value="response"/> + <expression value="Composition.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all References have a display value, see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3#Use_of_the_reference_datatype."/> + <direction value="response"/> + <expression value="Composition.descendants().where($this.is(Reference)).all(display.exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-nullFlavor').exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Identifiers have both a .system and a .value. In rare cases where a general category of identifiers can be used, .type can replace .system. Edge cases for both .system and .type to be unknown are not applicable to Nictiz. For more information, see https://www.hl7.org/fhir/stu3/datatypes.html#Identifier."/> + <direction value="response"/> + <expression value="Composition.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) and value.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test> + <name value="Scenario 1.3 - Composition - Check Composition"/> + <description value="Check if the previous operation results in a FHIR Composition that contains the values that are expected following Nictiz' materials (fixture .id: composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht)"/> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Response contains exactly 1 Composition"/> + <direction value="response"/> + <expression value="Composition.count() = 1"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Composition resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="Composition.id.exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-1"/> + <description value="Contains .meta with .profile 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralComposition'"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').meta.profile.where($this = 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralComposition').exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-2"/> + <description value="Contains .identifier with .system and .value"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').identifier.where(system and value).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-3"/> + <description value="Contains .status 'final'"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').status = 'final'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-4"/> + <description value="Contains .type with .coding with .system 'http://loinc.org' and .code '57133-1' and .display"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').type.coding.where(system = 'http://loinc.org' and code = '57133-1' and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-5"/> + <description value="Contains .subject with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').subject.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-6"/> + <description value="Contains .date"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').date.exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-7"/> + <description value="Contains .author with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').author.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-8"/> + <description value="Contains .title with a value. This assert only checks existence of a value, because string comparisons can have many possible caveats"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').title.hasValue()"/> + <stopTestOnFail value="false"/> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9"/> + <description value="Contains .section with .title with a value, and .code with .coding with .system 'http://snomed.info/sct' and .code '405624007' and .display, and , and. This assert checks if all children exist (if applicable with their specific values) and if they are present within one element. Following asserts check if individual children exist to help you debug if this assert fails"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(title.hasValue() and code.coding.where(system = 'http://snomed.info/sct' and code = '405624007' and display).exists()).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-1"/> + <description value="Contains .section.title with a value. This assert checks only one child. Assert 1-9 checks if all children are present in the same parent. This assert only checks existence of a value, because string comparisons can have many possible caveats"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(title.hasValue()).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-2"/> + <description value="Contains .section.code with .coding with .system 'http://snomed.info/sct' and .code '405624007' and .display. This assert checks only one child. Assert 1-9 checks if all children are present in the same parent"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(code.coding.where(system = 'http://snomed.info/sct' and code = '405624007' and display).exists()).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-3-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-9-3 checks if all children are present in the same parent"/> + <direction value="response"/> + <!--FHIRPath expressions with .ofType(...) are poorly supported at the moment, so it was rewritten. Original expression: 'Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()'--> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.where($this is string).hasValue())).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-4-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-9-4 checks if all children are present in the same parent"/> + <direction value="response"/> + <!--FHIRPath expressions with .ofType(...) are poorly supported at the moment, so it was rewritten. Original expression: 'Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()'--> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.where($this is string).hasValue())).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-10"/> + <description value="Contains .section with .title with a value, and .code with .coding with .system 'http://snomed.info/sct' and .code '406550009' and .display. This assert checks if all children exist (if applicable with their specific values) and if they are present within one element. Following asserts check if individual children exist to help you debug if this assert fails"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(title.hasValue() and code.coding.where(system = 'http://snomed.info/sct' and code = '406550009' and display).exists()).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-10-1"/> + <description value="Contains .section.title with a value. This assert checks only one child. Assert 1-10 checks if all children are present in the same parent. This assert only checks existence of a value, because string comparisons can have many possible caveats"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(title.hasValue()).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-10-2"/> + <description value="Contains .section.code with .coding with .system 'http://snomed.info/sct' and .code '406550009' and .display. This assert checks only one child. Assert 1-10 checks if all children are present in the same parent"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(code.coding.where(system = 'http://snomed.info/sct' and code = '406550009' and display).exists()).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-10-3-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-10-3 checks if all children are present in the same parent"/> + <direction value="response"/> + <!--FHIRPath expressions with .ofType(...) are poorly supported at the moment, so it was rewritten. Original expression: 'Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()'--> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.where($this is string).hasValue())).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-10-4-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-10-4 checks if all children are present in the same parent"/> + <direction value="response"/> + <!--FHIRPath expressions with .ofType(...) are poorly supported at the moment, so it was rewritten. Original expression: 'Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()'--> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.where($this is string).hasValue())).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-10-5-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-10-5 checks if all children are present in the same parent"/> + <direction value="response"/> + <!--FHIRPath expressions with .ofType(...) are poorly supported at the moment, so it was rewritten. Original expression: 'Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()'--> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.where($this is string).hasValue())).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-10-6-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-10-6 checks if all children are present in the same parent"/> + <direction value="response"/> + <!--FHIRPath expressions with .ofType(...) are poorly supported at the moment, so it was rewritten. Original expression: 'Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()'--> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.where($this is string).hasValue())).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> +</TestScript> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-xml.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-xml.xml new file mode 100644 index 0000000000..4b0b9135ca --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-xml.xml @@ -0,0 +1,858 @@ +<?xml version="1.0" encoding="UTF-8"?> +<TestScript xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> + <id value="elz-serving-xis-scenario-1-maximal-CheckContent-xml"/> + <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-1-maximal-CheckContent-xml"/> + <version value="R4-patchlevel 2025.31"/> + <name value="ELZ - Serving XIS - Scenario 1 - Serving ELZ resources of van-XXX-Sanderink-de-Kok - target CheckContent - XML Format"/> + <status value="active"/> + <publisher value="Nictiz"/> + <contact> + <name value="Nictiz"/> + <telecom> + <system value="email"/> + <value value="kwalificatie@nictiz.nl"/> + <use value="work"/> + </telecom> + </contact> + <description value="Scenario 1 - Serving ELZ resources of van-XXX-Sanderink-de-Kok"/> + <origin> + <extension url="http://fhir.interoplab.eu/fhir/StructureDefinition/Interoplab-CL-ext-SUT"> + <valueBoolean value="false"/> + </extension> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-origin-types"/> + <code value="FHIR-Client"/> + </profile> + </origin> + <destination> + <extension url="http://fhir.interoplab.eu/fhir/StructureDefinition/Interoplab-CL-ext-SUT"> + <valueBoolean value="true"/> + </extension> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-destination-types"/> + <code value="FHIR-Server"/> + </profile> + </destination> + <variable> + <name value="patient-token-id"/> + <defaultValue value="Bearer 03e9660e-735a-44e5-ba80-402dd471f47d"/> + <description value="OAuth Token for current patient"/> + </variable> + <variable> + <name value="composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id"/> + <description value="Resource.id for Composition 1"/> + <expression value="Composition.id"/> + <sourceId value="fixture-03-serve-Composition"/> + </variable> + <variable> + <name value="taskid-maximum"/> + <description value="The resource id of the Task"/> + </variable> + <variable> + <name value="servicerequestid"/> + <description value="The resource id from the ServiceRequest"/> + <expression value="Task.focus.reference.replaceMatches('^.*ServiceRequest/','')"/> + <sourceId value="taskfromserver"/> + </variable> + <variable> + <name value="compositionid"/> + <description value="The resource id from the Composition"/> + <expression value="ServiceRequest.supportingInfo.first().reference.replaceMatches('^.*Composition/','')"/> + <sourceId value="servicerequestfromserver"/> + </variable> + <variable> + <name value="task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id"/> + <description value="Resource.id for Task 1"/> + <expression value="Task.id"/> + <sourceId value="fixture-01-serve-Task"/> + </variable> + <variable> + <name value="servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id"/> + <description value="Resource.id for ServiceRequest 1"/> + <expression value="ServiceRequest.id"/> + <sourceId value="fixture-02-serve-ServiceRequest"/> + </variable> + <test id="01-serve-Task"> + <name value="Scenario 1.1 - Task"/> + <description value="Serve Task resource"/> + <action> + <operation> + <type> + <system value="http://hl7.org/fhir/restful-interaction"/> + <code value="read"/> + </type> + <resource value="Task"/> + <description value="Test server to serve Task resource."/> + <accept value="xml"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="/${taskid-maximum}"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + <responseId value="taskfromserver"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="Task.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that the OID of the zib valueset is not used for the system of a coding element."/> + <direction value="response"/> + <expression value="Task.descendants().where($this.is(coding)).where(system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2')).exists().not()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all CodeableConcept elements contain either a coding.display or a text value if no Coding exists or has an extension (e.g. a nullFlavor or data-absent-reason extension). For more information see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3Use_of_coded_concepts."/> + <direction value="response"/> + <expression value="Task.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all References have a display value, see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3#Use_of_the_reference_datatype."/> + <direction value="response"/> + <expression value="Task.descendants().where($this.is(Reference)).all(display.exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-nullFlavor').exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Identifiers have both a .system and a .value. In rare cases where a general category of identifiers can be used, .type can replace .system. Edge cases for both .system and .type to be unknown are not applicable to Nictiz. For more information, see https://www.hl7.org/fhir/stu3/datatypes.html#Identifier."/> + <direction value="response"/> + <expression value="Task.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) and value.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test> + <name value="Scenario 1.1 - Task - Check Task"/> + <description value="Check if the previous operation results in a FHIR Task that contains the values that are expected following Nictiz' materials (fixture .id: task-hg-VerwijzingHuisartsParamedicusMaximaalbericht)"/> + <action> + <assert> + <description value="Response contains exactly 1 Task"/> + <direction value="response"/> + <expression value="Task.count() = 1"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Task resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="Task.id.exists()"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-1"/> + <description value="Contains .meta with .profile 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralTask'"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').meta.profile.where($this = 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralTask').exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-2"/> + <description value="Contains .identifier with .system and .value"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').identifier.where(system and value).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-3"/> + <description value="Contains .status 'in-progress'"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').status = 'in-progress'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-4"/> + <description value="Contains .intent 'order'"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').intent = 'order'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-5"/> + <description value="Contains .code with .coding with .system 'http://snomed.info/sct' and .code '3457005' and .display"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').code.coding.where(system = 'http://snomed.info/sct' and code = '3457005' and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-6"/> + <description value="Contains .focus with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').focus.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-7"/> + <description value="Contains .for with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').for.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-8"/> + <description value="Contains .authoredOn"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').authoredOn.exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-9"/> + <description value="Contains .requester with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').requester.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-10"/> + <description value="Contains .owner with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').owner.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test id="02-serve-ServiceRequest"> + <name value="Scenario 1.2 - ServiceRequest"/> + <description value="Serve ServiceRequest resource"/> + <action> + <operation> + <type> + <system value="http://hl7.org/fhir/restful-interaction"/> + <code value="read"/> + </type> + <resource value="ServiceRequest"/> + <description value="Test server to serve ServiceRequest resource."/> + <accept value="xml"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="/${servicerequestid}"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + <responseId value="servicerequestfromserver"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="ServiceRequest.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that the OID of the zib valueset is not used for the system of a coding element."/> + <direction value="response"/> + <expression value="ServiceRequest.descendants().where($this.is(coding)).where(system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2')).exists().not()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all CodeableConcept elements contain either a coding.display or a text value if no Coding exists or has an extension (e.g. a nullFlavor or data-absent-reason extension). For more information see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3Use_of_coded_concepts."/> + <direction value="response"/> + <expression value="ServiceRequest.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all References have a display value, see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3#Use_of_the_reference_datatype."/> + <direction value="response"/> + <expression value="ServiceRequest.descendants().where($this.is(Reference)).all(display.exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-nullFlavor').exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Identifiers have both a .system and a .value. In rare cases where a general category of identifiers can be used, .type can replace .system. Edge cases for both .system and .type to be unknown are not applicable to Nictiz. For more information, see https://www.hl7.org/fhir/stu3/datatypes.html#Identifier."/> + <direction value="response"/> + <expression value="ServiceRequest.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) and value.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test> + <name value="Scenario 1.2 - ServiceRequest - Check ServiceRequest"/> + <description value="Check if the previous operation results in a FHIR ServiceRequest that contains the values that are expected following Nictiz' materials (fixture .id: servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht)"/> + <action> + <assert> + <description value="Response contains exactly 1 ServiceRequest"/> + <direction value="response"/> + <expression value="ServiceRequest.count() = 1"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="ServiceRequest resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="ServiceRequest.id.exists()"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-1"/> + <description value="Contains .meta with .profile 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralServiceRequest'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').meta.profile.where($this = 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralServiceRequest').exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-2"/> + <description value="Contains .identifier with .system and .value"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').identifier.where(system and value).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-3"/> + <description value="Contains .status 'completed'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').status = 'completed'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-4"/> + <description value="Contains .intent 'order'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').intent = 'order'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-5"/> + <description value="Contains .category with .coding with .system 'urn:oid:2.16.840.1.113883.2.4.4.30.69' and .code '1' and .display"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').category.where(coding.where(system = 'urn:oid:2.16.840.1.113883.2.4.4.30.69' and code = '1' and display)).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-6"/> + <description value="Contains .priority 'asap'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').priority = 'asap'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-7"/> + <description value="Contains .subject with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').subject.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-8"/> + <description value="Contains .authoredOn"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').authoredOn.exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-9"/> + <description value="Contains .requester with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').requester.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-10"/> + <description value="Contains .performer with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').performer.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-11"/> + <description value="Contains .supportingInfo with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').supportingInfo.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test id="03-serve-Composition"> + <name value="Scenario 1.3 - Composition"/> + <description value="Serve Composition resource with all the references by using the Document operation"/> + <action> + <operation> + <type> + <system value="http://hl7.org/fhir/restful-interaction"/> + <code value="read"/> + </type> + <resource value="Composition"/> + <description value="Test server to serve Composition resource."/> + <accept value="xml"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="/${compositionid}"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="Composition.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that the OID of the zib valueset is not used for the system of a coding element."/> + <direction value="response"/> + <expression value="Composition.descendants().where($this.is(coding)).where(system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2')).exists().not()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all CodeableConcept elements contain either a coding.display or a text value if no Coding exists or has an extension (e.g. a nullFlavor or data-absent-reason extension). For more information see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3Use_of_coded_concepts."/> + <direction value="response"/> + <expression value="Composition.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all References have a display value, see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3#Use_of_the_reference_datatype."/> + <direction value="response"/> + <expression value="Composition.descendants().where($this.is(Reference)).all(display.exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-nullFlavor').exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Identifiers have both a .system and a .value. In rare cases where a general category of identifiers can be used, .type can replace .system. Edge cases for both .system and .type to be unknown are not applicable to Nictiz. For more information, see https://www.hl7.org/fhir/stu3/datatypes.html#Identifier."/> + <direction value="response"/> + <expression value="Composition.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) and value.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test> + <name value="Scenario 1.3 - Composition - Check Composition"/> + <description value="Check if the previous operation results in a FHIR Composition that contains the values that are expected following Nictiz' materials (fixture .id: composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht)"/> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Response contains exactly 1 Composition"/> + <direction value="response"/> + <expression value="Composition.count() = 1"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Composition resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="Composition.id.exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-1"/> + <description value="Contains .meta with .profile 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralComposition'"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').meta.profile.where($this = 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralComposition').exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-2"/> + <description value="Contains .identifier with .system and .value"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').identifier.where(system and value).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-3"/> + <description value="Contains .status 'final'"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').status = 'final'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-4"/> + <description value="Contains .type with .coding with .system 'http://loinc.org' and .code '57133-1' and .display"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').type.coding.where(system = 'http://loinc.org' and code = '57133-1' and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-5"/> + <description value="Contains .subject with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').subject.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-6"/> + <description value="Contains .date"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').date.exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-7"/> + <description value="Contains .author with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').author.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-8"/> + <description value="Contains .title with a value. This assert only checks existence of a value, because string comparisons can have many possible caveats"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').title.hasValue()"/> + <stopTestOnFail value="false"/> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9"/> + <description value="Contains .section with .title with a value, and .code with .coding with .system 'http://snomed.info/sct' and .code '405624007' and .display, and , and. This assert checks if all children exist (if applicable with their specific values) and if they are present within one element. Following asserts check if individual children exist to help you debug if this assert fails"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(title.hasValue() and code.coding.where(system = 'http://snomed.info/sct' and code = '405624007' and display).exists()).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-1"/> + <description value="Contains .section.title with a value. This assert checks only one child. Assert 1-9 checks if all children are present in the same parent. This assert only checks existence of a value, because string comparisons can have many possible caveats"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(title.hasValue()).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-2"/> + <description value="Contains .section.code with .coding with .system 'http://snomed.info/sct' and .code '405624007' and .display. This assert checks only one child. Assert 1-9 checks if all children are present in the same parent"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(code.coding.where(system = 'http://snomed.info/sct' and code = '405624007' and display).exists()).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-3-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-9-3 checks if all children are present in the same parent"/> + <direction value="response"/> + <!--FHIRPath expressions with .ofType(...) are poorly supported at the moment, so it was rewritten. Original expression: 'Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()'--> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.where($this is string).hasValue())).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-4-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-9-4 checks if all children are present in the same parent"/> + <direction value="response"/> + <!--FHIRPath expressions with .ofType(...) are poorly supported at the moment, so it was rewritten. Original expression: 'Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()'--> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.where($this is string).hasValue())).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-10"/> + <description value="Contains .section with .title with a value, and .code with .coding with .system 'http://snomed.info/sct' and .code '406550009' and .display. This assert checks if all children exist (if applicable with their specific values) and if they are present within one element. Following asserts check if individual children exist to help you debug if this assert fails"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(title.hasValue() and code.coding.where(system = 'http://snomed.info/sct' and code = '406550009' and display).exists()).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-10-1"/> + <description value="Contains .section.title with a value. This assert checks only one child. Assert 1-10 checks if all children are present in the same parent. This assert only checks existence of a value, because string comparisons can have many possible caveats"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(title.hasValue()).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-10-2"/> + <description value="Contains .section.code with .coding with .system 'http://snomed.info/sct' and .code '406550009' and .display. This assert checks only one child. Assert 1-10 checks if all children are present in the same parent"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(code.coding.where(system = 'http://snomed.info/sct' and code = '406550009' and display).exists()).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-10-3-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-10-3 checks if all children are present in the same parent"/> + <direction value="response"/> + <!--FHIRPath expressions with .ofType(...) are poorly supported at the moment, so it was rewritten. Original expression: 'Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()'--> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.where($this is string).hasValue())).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-10-4-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-10-4 checks if all children are present in the same parent"/> + <direction value="response"/> + <!--FHIRPath expressions with .ofType(...) are poorly supported at the moment, so it was rewritten. Original expression: 'Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()'--> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.where($this is string).hasValue())).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-10-5-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-10-5 checks if all children are present in the same parent"/> + <direction value="response"/> + <!--FHIRPath expressions with .ofType(...) are poorly supported at the moment, so it was rewritten. Original expression: 'Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()'--> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.where($this is string).hasValue())).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-10-6-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-10-6 checks if all children are present in the same parent"/> + <direction value="response"/> + <!--FHIRPath expressions with .ofType(...) are poorly supported at the moment, so it was rewritten. Original expression: 'Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()'--> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.where($this is string).hasValue())).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> +</TestScript> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-json.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-json.xml new file mode 100644 index 0000000000..1cbdf318f3 --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-json.xml @@ -0,0 +1,753 @@ +<?xml version="1.0" encoding="UTF-8"?> +<TestScript xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> + <id value="elz-serving-xis-scenario-2-minimal-CheckContent-json"/> + <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-2-minimal-CheckContent-json"/> + <version value="R4-patchlevel 2025.31"/> + <name value="ELZ - Serving XIS - Scenario 2 - Serving ELZ resources of XXX-Andrioli - target CheckContent - JSON Format"/> + <status value="active"/> + <publisher value="Nictiz"/> + <contact> + <name value="Nictiz"/> + <telecom> + <system value="email"/> + <value value="kwalificatie@nictiz.nl"/> + <use value="work"/> + </telecom> + </contact> + <description value="Scenario 2 - Serving ELZ resources of XXX-Andrioli"/> + <origin> + <extension url="http://fhir.interoplab.eu/fhir/StructureDefinition/Interoplab-CL-ext-SUT"> + <valueBoolean value="false"/> + </extension> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-origin-types"/> + <code value="FHIR-Client"/> + </profile> + </origin> + <destination> + <extension url="http://fhir.interoplab.eu/fhir/StructureDefinition/Interoplab-CL-ext-SUT"> + <valueBoolean value="true"/> + </extension> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-destination-types"/> + <code value="FHIR-Server"/> + </profile> + </destination> + <variable> + <name value="patient-token-id"/> + <defaultValue value="Bearer 24a9d82d-e4ca-4680-8885-4ff3f00a7f7c"/> + <description value="OAuth Token for current patient"/> + </variable> + <variable> + <name value="composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id"/> + <description value="Resource.id for Composition 1"/> + <expression value="Composition.id"/> + <sourceId value="fixture-03-serve-Composition"/> + </variable> + <variable> + <name value="taskid-minimum"/> + <description value="The resource id of the Task"/> + </variable> + <variable> + <name value="servicerequestid"/> + <description value="The resource id of the Servicerequest"/> + <expression value="Task.focus.reference.replaceMatches('^.*ServiceRequest/','')"/> + <sourceId value="taskfromserver"/> + </variable> + <variable> + <name value="compositionid"/> + <description value="The resource id of the Composition"/> + <expression value="ServiceRequest.supportingInfo.first().reference.replaceMatches('^.*Composition/','')"/> + <sourceId value="servicerequestfromserver"/> + </variable> + <variable> + <name value="task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id"/> + <description value="Resource.id for Task 1"/> + <expression value="Task.id"/> + <sourceId value="fixture-01-serve-Task"/> + </variable> + <variable> + <name value="servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id"/> + <description value="Resource.id for ServiceRequest 1"/> + <expression value="ServiceRequest.id"/> + <sourceId value="fixture-02-serve-ServiceRequest"/> + </variable> + <test id="01-serve-Task"> + <name value="Scenario 2.1 - Task"/> + <description value="Serve Task resource"/> + <action> + <operation> + <type> + <system value="http://hl7.org/fhir/restful-interaction"/> + <code value="read"/> + </type> + <resource value="Task"/> + <description value="Test server to serve Task resource."/> + <accept value="json"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="/${taskid-minimum}"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + <responseId value="taskfromserver"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="Task.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that the OID of the zib valueset is not used for the system of a coding element."/> + <direction value="response"/> + <expression value="Task.descendants().where($this.is(coding)).where(system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2')).exists().not()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all CodeableConcept elements contain either a coding.display or a text value if no Coding exists or has an extension (e.g. a nullFlavor or data-absent-reason extension). For more information see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3Use_of_coded_concepts."/> + <direction value="response"/> + <expression value="Task.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all References have a display value, see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3#Use_of_the_reference_datatype."/> + <direction value="response"/> + <expression value="Task.descendants().where($this.is(Reference)).all(display.exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-nullFlavor').exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Identifiers have both a .system and a .value. In rare cases where a general category of identifiers can be used, .type can replace .system. Edge cases for both .system and .type to be unknown are not applicable to Nictiz. For more information, see https://www.hl7.org/fhir/stu3/datatypes.html#Identifier."/> + <direction value="response"/> + <expression value="Task.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) and value.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test> + <name value="Scenario 2.1 - Task - Check Task"/> + <description value="Check if the previous operation results in a FHIR Task that contains the values that are expected following Nictiz' materials (fixture .id: task-hg-VerwijzingHuisartsParamedicusMinimaalbericht)"/> + <action> + <assert> + <description value="Response contains exactly 1 Task"/> + <direction value="response"/> + <expression value="Task.count() = 1"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Task resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="Task.id.exists()"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-1"/> + <description value="Contains .meta with .profile 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralTask'"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').meta.profile.where($this = 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralTask').exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-2"/> + <description value="Contains .identifier with .system and .value"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').identifier.where(system and value).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-3"/> + <description value="Contains .status 'in-progress'"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').status = 'in-progress'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-4"/> + <description value="Contains .intent 'order'"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').intent = 'order'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-5"/> + <description value="Contains .code with .coding with .system 'http://snomed.info/sct' and .code '3457005' and .display"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').code.coding.where(system = 'http://snomed.info/sct' and code = '3457005' and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-6"/> + <description value="Contains .focus with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').focus.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-7"/> + <description value="Contains .for with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').for.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-8"/> + <description value="Contains .authoredOn"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').authoredOn.exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-9"/> + <description value="Contains .requester with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').requester.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-10"/> + <description value="Contains .owner with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').owner.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test id="02-serve-ServiceRequest"> + <name value="Scenario 2.2 - ServiceRequest"/> + <description value="Serve ServiceRequest resource"/> + <action> + <operation> + <type> + <system value="http://hl7.org/fhir/restful-interaction"/> + <code value="read"/> + </type> + <resource value="ServiceRequest"/> + <description value="Test server to serve ServiceRequest resource."/> + <accept value="json"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="/${servicerequestid}"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + <responseId value="servicerequestfromserver"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="ServiceRequest.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that the OID of the zib valueset is not used for the system of a coding element."/> + <direction value="response"/> + <expression value="ServiceRequest.descendants().where($this.is(coding)).where(system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2')).exists().not()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all CodeableConcept elements contain either a coding.display or a text value if no Coding exists or has an extension (e.g. a nullFlavor or data-absent-reason extension). For more information see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3Use_of_coded_concepts."/> + <direction value="response"/> + <expression value="ServiceRequest.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all References have a display value, see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3#Use_of_the_reference_datatype."/> + <direction value="response"/> + <expression value="ServiceRequest.descendants().where($this.is(Reference)).all(display.exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-nullFlavor').exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Identifiers have both a .system and a .value. In rare cases where a general category of identifiers can be used, .type can replace .system. Edge cases for both .system and .type to be unknown are not applicable to Nictiz. For more information, see https://www.hl7.org/fhir/stu3/datatypes.html#Identifier."/> + <direction value="response"/> + <expression value="ServiceRequest.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) and value.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test> + <name value="Scenario 2.2 - ServiceRequest - Check ServiceRequest"/> + <description value="Check if the previous operation results in a FHIR ServiceRequest that contains the values that are expected following Nictiz' materials (fixture .id: servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht)"/> + <action> + <assert> + <description value="Response contains exactly 1 ServiceRequest"/> + <direction value="response"/> + <expression value="ServiceRequest.count() = 1"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="ServiceRequest resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="ServiceRequest.id.exists()"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-1"/> + <description value="Contains .meta with .profile 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralServiceRequest'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').meta.profile.where($this = 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralServiceRequest').exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-2"/> + <description value="Contains .identifier with .system and .value"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').identifier.where(system and value).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-3"/> + <description value="Contains .status 'completed'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').status = 'completed'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-4"/> + <description value="Contains .intent 'order'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').intent = 'order'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-5"/> + <description value="Contains .category with .coding with .system 'urn:oid:2.16.840.1.113883.2.4.4.30.69' and .code '1' and .display"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').category.where(coding.where(system = 'urn:oid:2.16.840.1.113883.2.4.4.30.69' and code = '1' and display)).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-6"/> + <description value="Contains .subject with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').subject.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-7"/> + <description value="Contains .authoredOn"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').authoredOn.exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-8"/> + <description value="Contains .requester with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').requester.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-9"/> + <description value="Contains .performer with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').performer.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-10"/> + <description value="Contains .supportingInfo with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').supportingInfo.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test id="03-serve-Composition"> + <name value="Scenario 2.3 - Composition"/> + <description value="Serve Composition resource with all the references by using the Document operation"/> + <action> + <operation> + <type> + <system value="http://hl7.org/fhir/restful-interaction"/> + <code value="read"/> + </type> + <resource value="Composition"/> + <description value="Test server to serve Composition resource."/> + <accept value="json"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="/${compositionid}"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="Composition.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that the OID of the zib valueset is not used for the system of a coding element."/> + <direction value="response"/> + <expression value="Composition.descendants().where($this.is(coding)).where(system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2')).exists().not()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all CodeableConcept elements contain either a coding.display or a text value if no Coding exists or has an extension (e.g. a nullFlavor or data-absent-reason extension). For more information see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3Use_of_coded_concepts."/> + <direction value="response"/> + <expression value="Composition.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all References have a display value, see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3#Use_of_the_reference_datatype."/> + <direction value="response"/> + <expression value="Composition.descendants().where($this.is(Reference)).all(display.exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-nullFlavor').exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Identifiers have both a .system and a .value. In rare cases where a general category of identifiers can be used, .type can replace .system. Edge cases for both .system and .type to be unknown are not applicable to Nictiz. For more information, see https://www.hl7.org/fhir/stu3/datatypes.html#Identifier."/> + <direction value="response"/> + <expression value="Composition.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) and value.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test> + <name value="Scenario 2.3 - Composition - Check Composition"/> + <description value="Check if the previous operation results in a FHIR Composition that contains the values that are expected following Nictiz' materials (fixture .id: composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht)"/> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Response contains exactly 1 Composition"/> + <direction value="response"/> + <expression value="Composition.count() = 1"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Composition resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="Composition.id.exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-1"/> + <description value="Contains .meta with .profile 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralComposition'"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').meta.profile.where($this = 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralComposition').exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-2"/> + <description value="Contains .identifier with .system and .value"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').identifier.where(system and value).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-3"/> + <description value="Contains .status 'final'"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').status = 'final'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-4"/> + <description value="Contains .type with .coding with .system 'http://loinc.org' and .code '57133-1' and .display"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').type.coding.where(system = 'http://loinc.org' and code = '57133-1' and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-5"/> + <description value="Contains .subject with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').subject.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-6"/> + <description value="Contains .date"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').date.exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-7"/> + <description value="Contains .author with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').author.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-8"/> + <description value="Contains .title with a value. This assert only checks existence of a value, because string comparisons can have many possible caveats"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').title.hasValue()"/> + <stopTestOnFail value="false"/> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9"/> + <description value="Contains .section with .title with a value, and .code with .coding with .system 'http://snomed.info/sct' and .code '406550009' and .display. This assert checks if all children exist (if applicable with their specific values) and if they are present within one element. Following asserts check if individual children exist to help you debug if this assert fails"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').section.where(title.hasValue() and code.coding.where(system = 'http://snomed.info/sct' and code = '406550009' and display).exists()).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-1"/> + <description value="Contains .section.title with a value. This assert checks only one child. Assert 1-9 checks if all children are present in the same parent. This assert only checks existence of a value, because string comparisons can have many possible caveats"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').section.where(title.hasValue()).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-2"/> + <description value="Contains .section.code with .coding with .system 'http://snomed.info/sct' and .code '406550009' and .display. This assert checks only one child. Assert 1-9 checks if all children are present in the same parent"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').section.where(code.coding.where(system = 'http://snomed.info/sct' and code = '406550009' and display).exists()).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-3-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-9-3 checks if all children are present in the same parent"/> + <direction value="response"/> + <!--FHIRPath expressions with .ofType(...) are poorly supported at the moment, so it was rewritten. Original expression: 'Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()'--> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.where($this is string).hasValue())).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-4-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-9-4 checks if all children are present in the same parent"/> + <direction value="response"/> + <!--FHIRPath expressions with .ofType(...) are poorly supported at the moment, so it was rewritten. Original expression: 'Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()'--> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.where($this is string).hasValue())).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> +</TestScript> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-xml.xml b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-xml.xml new file mode 100644 index 0000000000..b5d3397983 --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-xml.xml @@ -0,0 +1,753 @@ +<?xml version="1.0" encoding="UTF-8"?> +<TestScript xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> + <id value="elz-serving-xis-scenario-2-minimal-CheckContent-xml"/> + <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-2-minimal-CheckContent-xml"/> + <version value="R4-patchlevel 2025.31"/> + <name value="ELZ - Serving XIS - Scenario 2 - Serving ELZ resources of XXX-Andrioli - target CheckContent - XML Format"/> + <status value="active"/> + <publisher value="Nictiz"/> + <contact> + <name value="Nictiz"/> + <telecom> + <system value="email"/> + <value value="kwalificatie@nictiz.nl"/> + <use value="work"/> + </telecom> + </contact> + <description value="Scenario 2 - Serving ELZ resources of XXX-Andrioli"/> + <origin> + <extension url="http://fhir.interoplab.eu/fhir/StructureDefinition/Interoplab-CL-ext-SUT"> + <valueBoolean value="false"/> + </extension> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-origin-types"/> + <code value="FHIR-Client"/> + </profile> + </origin> + <destination> + <extension url="http://fhir.interoplab.eu/fhir/StructureDefinition/Interoplab-CL-ext-SUT"> + <valueBoolean value="true"/> + </extension> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-destination-types"/> + <code value="FHIR-Server"/> + </profile> + </destination> + <variable> + <name value="patient-token-id"/> + <defaultValue value="Bearer 24a9d82d-e4ca-4680-8885-4ff3f00a7f7c"/> + <description value="OAuth Token for current patient"/> + </variable> + <variable> + <name value="composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id"/> + <description value="Resource.id for Composition 1"/> + <expression value="Composition.id"/> + <sourceId value="fixture-03-serve-Composition"/> + </variable> + <variable> + <name value="taskid-minimum"/> + <description value="The resource id of the Task"/> + </variable> + <variable> + <name value="servicerequestid"/> + <description value="The resource id of the Servicerequest"/> + <expression value="Task.focus.reference.replaceMatches('^.*ServiceRequest/','')"/> + <sourceId value="taskfromserver"/> + </variable> + <variable> + <name value="compositionid"/> + <description value="The resource id of the Composition"/> + <expression value="ServiceRequest.supportingInfo.first().reference.replaceMatches('^.*Composition/','')"/> + <sourceId value="servicerequestfromserver"/> + </variable> + <variable> + <name value="task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id"/> + <description value="Resource.id for Task 1"/> + <expression value="Task.id"/> + <sourceId value="fixture-01-serve-Task"/> + </variable> + <variable> + <name value="servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id"/> + <description value="Resource.id for ServiceRequest 1"/> + <expression value="ServiceRequest.id"/> + <sourceId value="fixture-02-serve-ServiceRequest"/> + </variable> + <test id="01-serve-Task"> + <name value="Scenario 2.1 - Task"/> + <description value="Serve Task resource"/> + <action> + <operation> + <type> + <system value="http://hl7.org/fhir/restful-interaction"/> + <code value="read"/> + </type> + <resource value="Task"/> + <description value="Test server to serve Task resource."/> + <accept value="xml"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="/${taskid-minimum}"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + <responseId value="taskfromserver"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="Task.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that the OID of the zib valueset is not used for the system of a coding element."/> + <direction value="response"/> + <expression value="Task.descendants().where($this.is(coding)).where(system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2')).exists().not()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all CodeableConcept elements contain either a coding.display or a text value if no Coding exists or has an extension (e.g. a nullFlavor or data-absent-reason extension). For more information see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3Use_of_coded_concepts."/> + <direction value="response"/> + <expression value="Task.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all References have a display value, see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3#Use_of_the_reference_datatype."/> + <direction value="response"/> + <expression value="Task.descendants().where($this.is(Reference)).all(display.exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-nullFlavor').exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Identifiers have both a .system and a .value. In rare cases where a general category of identifiers can be used, .type can replace .system. Edge cases for both .system and .type to be unknown are not applicable to Nictiz. For more information, see https://www.hl7.org/fhir/stu3/datatypes.html#Identifier."/> + <direction value="response"/> + <expression value="Task.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) and value.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test> + <name value="Scenario 2.1 - Task - Check Task"/> + <description value="Check if the previous operation results in a FHIR Task that contains the values that are expected following Nictiz' materials (fixture .id: task-hg-VerwijzingHuisartsParamedicusMinimaalbericht)"/> + <action> + <assert> + <description value="Response contains exactly 1 Task"/> + <direction value="response"/> + <expression value="Task.count() = 1"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Task resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="Task.id.exists()"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-1"/> + <description value="Contains .meta with .profile 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralTask'"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').meta.profile.where($this = 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralTask').exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-2"/> + <description value="Contains .identifier with .system and .value"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').identifier.where(system and value).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-3"/> + <description value="Contains .status 'in-progress'"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').status = 'in-progress'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-4"/> + <description value="Contains .intent 'order'"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').intent = 'order'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-5"/> + <description value="Contains .code with .coding with .system 'http://snomed.info/sct' and .code '3457005' and .display"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').code.coding.where(system = 'http://snomed.info/sct' and code = '3457005' and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-6"/> + <description value="Contains .focus with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').focus.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-7"/> + <description value="Contains .for with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').for.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-8"/> + <description value="Contains .authoredOn"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').authoredOn.exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-9"/> + <description value="Contains .requester with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').requester.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-10"/> + <description value="Contains .owner with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').owner.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test id="02-serve-ServiceRequest"> + <name value="Scenario 2.2 - ServiceRequest"/> + <description value="Serve ServiceRequest resource"/> + <action> + <operation> + <type> + <system value="http://hl7.org/fhir/restful-interaction"/> + <code value="read"/> + </type> + <resource value="ServiceRequest"/> + <description value="Test server to serve ServiceRequest resource."/> + <accept value="xml"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="/${servicerequestid}"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + <responseId value="servicerequestfromserver"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="ServiceRequest.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that the OID of the zib valueset is not used for the system of a coding element."/> + <direction value="response"/> + <expression value="ServiceRequest.descendants().where($this.is(coding)).where(system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2')).exists().not()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all CodeableConcept elements contain either a coding.display or a text value if no Coding exists or has an extension (e.g. a nullFlavor or data-absent-reason extension). For more information see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3Use_of_coded_concepts."/> + <direction value="response"/> + <expression value="ServiceRequest.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all References have a display value, see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3#Use_of_the_reference_datatype."/> + <direction value="response"/> + <expression value="ServiceRequest.descendants().where($this.is(Reference)).all(display.exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-nullFlavor').exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Identifiers have both a .system and a .value. In rare cases where a general category of identifiers can be used, .type can replace .system. Edge cases for both .system and .type to be unknown are not applicable to Nictiz. For more information, see https://www.hl7.org/fhir/stu3/datatypes.html#Identifier."/> + <direction value="response"/> + <expression value="ServiceRequest.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) and value.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test> + <name value="Scenario 2.2 - ServiceRequest - Check ServiceRequest"/> + <description value="Check if the previous operation results in a FHIR ServiceRequest that contains the values that are expected following Nictiz' materials (fixture .id: servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht)"/> + <action> + <assert> + <description value="Response contains exactly 1 ServiceRequest"/> + <direction value="response"/> + <expression value="ServiceRequest.count() = 1"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="ServiceRequest resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="ServiceRequest.id.exists()"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-1"/> + <description value="Contains .meta with .profile 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralServiceRequest'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').meta.profile.where($this = 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralServiceRequest').exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-2"/> + <description value="Contains .identifier with .system and .value"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').identifier.where(system and value).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-3"/> + <description value="Contains .status 'completed'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').status = 'completed'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-4"/> + <description value="Contains .intent 'order'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').intent = 'order'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-5"/> + <description value="Contains .category with .coding with .system 'urn:oid:2.16.840.1.113883.2.4.4.30.69' and .code '1' and .display"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').category.where(coding.where(system = 'urn:oid:2.16.840.1.113883.2.4.4.30.69' and code = '1' and display)).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-6"/> + <description value="Contains .subject with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').subject.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-7"/> + <description value="Contains .authoredOn"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').authoredOn.exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-8"/> + <description value="Contains .requester with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').requester.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-9"/> + <description value="Contains .performer with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').performer.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <label value="1-10"/> + <description value="Contains .supportingInfo with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').supportingInfo.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test id="03-serve-Composition"> + <name value="Scenario 2.3 - Composition"/> + <description value="Serve Composition resource with all the references by using the Document operation"/> + <action> + <operation> + <type> + <system value="http://hl7.org/fhir/restful-interaction"/> + <code value="read"/> + </type> + <resource value="Composition"/> + <description value="Test server to serve Composition resource."/> + <accept value="xml"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="/${compositionid}"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <stopTestOnFail value="true"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="Composition.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that the OID of the zib valueset is not used for the system of a coding element."/> + <direction value="response"/> + <expression value="Composition.descendants().where($this.is(coding)).where(system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2')).exists().not()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all CodeableConcept elements contain either a coding.display or a text value if no Coding exists or has an extension (e.g. a nullFlavor or data-absent-reason extension). For more information see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3Use_of_coded_concepts."/> + <direction value="response"/> + <expression value="Composition.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all References have a display value, see https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3#Use_of_the_reference_datatype."/> + <direction value="response"/> + <expression value="Composition.descendants().where($this.is(Reference)).all(display.exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists() or extension.where(url = 'http://hl7.org/fhir/StructureDefinition/iso21090-nullFlavor').exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <description value="Confirm that all Identifiers have both a .system and a .value. In rare cases where a general category of identifiers can be used, .type can replace .system. Edge cases for both .system and .type to be unknown are not applicable to Nictiz. For more information, see https://www.hl7.org/fhir/stu3/datatypes.html#Identifier."/> + <direction value="response"/> + <expression value="Composition.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) and value.exists())"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test> + <name value="Scenario 2.3 - Composition - Check Composition"/> + <description value="Check if the previous operation results in a FHIR Composition that contains the values that are expected following Nictiz' materials (fixture .id: composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht)"/> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Response contains exactly 1 Composition"/> + <direction value="response"/> + <expression value="Composition.count() = 1"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Composition resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="Composition.id.exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-1"/> + <description value="Contains .meta with .profile 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralComposition'"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').meta.profile.where($this = 'http://nictiz.nl/fhir/StructureDefinition/hg-ReferralComposition').exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-2"/> + <description value="Contains .identifier with .system and .value"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').identifier.where(system and value).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-3"/> + <description value="Contains .status 'final'"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').status = 'final'"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-4"/> + <description value="Contains .type with .coding with .system 'http://loinc.org' and .code '57133-1' and .display"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').type.coding.where(system = 'http://loinc.org' and code = '57133-1' and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-5"/> + <description value="Contains .subject with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').subject.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-6"/> + <description value="Contains .date"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').date.exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-7"/> + <description value="Contains .author with either .reference or .identifier and .display"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').author.where((reference or identifier) and display).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-8"/> + <description value="Contains .title with a value. This assert only checks existence of a value, because string comparisons can have many possible caveats"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').title.hasValue()"/> + <stopTestOnFail value="false"/> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9"/> + <description value="Contains .section with .title with a value, and .code with .coding with .system 'http://snomed.info/sct' and .code '406550009' and .display. This assert checks if all children exist (if applicable with their specific values) and if they are present within one element. Following asserts check if individual children exist to help you debug if this assert fails"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').section.where(title.hasValue() and code.coding.where(system = 'http://snomed.info/sct' and code = '406550009' and display).exists()).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-1"/> + <description value="Contains .section.title with a value. This assert checks only one child. Assert 1-9 checks if all children are present in the same parent. This assert only checks existence of a value, because string comparisons can have many possible caveats"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').section.where(title.hasValue()).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-2"/> + <description value="Contains .section.code with .coding with .system 'http://snomed.info/sct' and .code '406550009' and .display. This assert checks only one child. Assert 1-9 checks if all children are present in the same parent"/> + <direction value="response"/> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').section.where(code.coding.where(system = 'http://snomed.info/sct' and code = '406550009' and display).exists()).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-3-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-9-3 checks if all children are present in the same parent"/> + <direction value="response"/> + <!--FHIRPath expressions with .ofType(...) are poorly supported at the moment, so it was rewritten. Original expression: 'Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()'--> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.where($this is string).hasValue())).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <label value="1-9-4-1"/> + <description value="Contains .section.section.extension with url 'http://nictiz.nl/fhir/StructureDefinition/ext-TextValue' with .valueString with a value. This assert checks only one child. Assert 1-9-4 checks if all children are present in the same parent"/> + <direction value="response"/> + <!--FHIRPath expressions with .ofType(...) are poorly supported at the moment, so it was rewritten. Original expression: 'Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.ofType(string).hasValue())).exists()'--> + <expression value="Composition.where(id = '${composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').section.where(section.where(extension('http://nictiz.nl/fhir/StructureDefinition/ext-TextValue').value.where($this is string).hasValue())).exists()"/> + <stopTestOnFail value="false"/> + <warningOnly value="false"/> + </assert> + </action> + </test> +</TestScript> diff --git a/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS-CheckContent/properties.json b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS-CheckContent/properties.json new file mode 100644 index 0000000000..3b085b1dd1 --- /dev/null +++ b/output/R4/ELZ-0-2-0-beta/ELZ/Test/Serving-XIS-CheckContent/properties.json @@ -0,0 +1,12 @@ + + { "goal" : "Test", + "fhirVersion" : "R4", + "informationStandard" : "ELZ 0.2.0", + "usecase" : "ELZ", + "role" : + { "name" : "Serving-XIS", + "description" : "XIS that can be queried by a client" }, + "variant" : + { "name" : "CheckContent", + "description" : "Version with automated checks on the content of the test scenario" }, + "serverAlias" : "nictiz" } \ No newline at end of file diff --git a/src/ELZ-0-2-0-beta/Test/build.properties b/src/ELZ-0-2-0-beta/Test/build.properties index 8baf79091f..c1c7fc30a0 100644 --- a/src/ELZ-0-2-0-beta/Test/build.properties +++ b/src/ELZ-0-2-0-beta/Test/build.properties @@ -2,5 +2,8 @@ input.dir = src/ELZ-0-2-0-beta/Test output.dir = output/R4/ELZ-0-2-0-beta/ELZ/Test fhir.version = R4 +targets.additional = Serving-XIS-CheckContent +target.description.Serving-XIS-CheckContent = Version with automated checks on the content of the test scenario + informationStandard = ELZ 0.2.0 usecase = ELZ \ No newline at end of file