From ba35b69d4c6eb6c521a2dd34602414380e19a870 Mon Sep 17 00:00:00 2001 From: Niek van Galen Date: Wed, 31 May 2023 16:11:31 +0200 Subject: [PATCH 01/16] Initial commit of folder structure and build files for ELZ --- .../Receiving-XIS/elz-receiving-xis-scenario-1.xml | 10 ++++++++++ .../Test/Sending-XIS/elz-sending-xis-scenario-1.xml | 10 ++++++++++ src/ELZ-0-2-0-beta/Test/build-ELZ-0-2-0-beta-Test.bat | 5 +++++ src/ELZ-0-2-0-beta/Test/build.properties | 3 +++ 4 files changed, 28 insertions(+) create mode 100644 src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1.xml create mode 100644 src/ELZ-0-2-0-beta/Test/Sending-XIS/elz-sending-xis-scenario-1.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.properties diff --git a/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1.xml b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1.xml new file mode 100644 index 0000000000..90040927d1 --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/ELZ-0-2-0-beta/Test/Sending-XIS/elz-sending-xis-scenario-1.xml b/src/ELZ-0-2-0-beta/Test/Sending-XIS/elz-sending-xis-scenario-1.xml new file mode 100644 index 0000000000..209a4f9958 --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/Sending-XIS/elz-sending-xis-scenario-1.xml @@ -0,0 +1,10 @@ + + + + + + + + + + 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.properties b/src/ELZ-0-2-0-beta/Test/build.properties new file mode 100644 index 0000000000..dae0607e6d --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/build.properties @@ -0,0 +1,3 @@ +input.dir = src/ELZ-0-2-0-beta/Test +output.dir = dev/FHIR4-0-1-Test/ELZ-0-2-0-beta +fhir.version = R4 \ No newline at end of file From a4cc54566521807b6e2dd230417fa2e651591b35 Mon Sep 17 00:00:00 2001 From: Eduard Date: Thu, 7 Sep 2023 15:18:09 +0200 Subject: [PATCH 02/16] HZP-192 First Test resources for the ELZ project. --- ...zingHuisartsParamedicusMaximaalbericht.xml | 152 ++++++++++++++++++ ...zingHuisartsParamedicusMinimaalbericht.xml | 74 +++++++++ .../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 | 41 +++++ ...zingHuisartsParamedicusMinimaalbericht.xml | 40 +++++ ...zingHuisartsParamedicusMaximaalbericht.xml | 40 +++++ ...zingHuisartsParamedicusMinimaalbericht.xml | 40 +++++ 15 files changed, 844 insertions(+) create mode 100644 src/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml create mode 100644 src/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml create mode 100644 src/ELZ-0-2-0-beta/_reference/resources/contactperson-de-Kok.xml create mode 100644 src/ELZ-0-2-0-beta/_reference/resources/organization-04016056-0400.xml create mode 100644 src/ELZ-0-2-0-beta/_reference/resources/organization-04086949.xml create mode 100644 src/ELZ-0-2-0-beta/_reference/resources/patient-XXX-Andrioli.xml create mode 100644 src/ELZ-0-2-0-beta/_reference/resources/patient-van-XXX-Sanderink-de-Kok.xml create mode 100644 src/ELZ-0-2-0-beta/_reference/resources/practitioner-000001111.xml create mode 100644 src/ELZ-0-2-0-beta/_reference/resources/practitioner-04115923.xml create mode 100644 src/ELZ-0-2-0-beta/_reference/resources/practitionerrole-000001111.xml create mode 100644 src/ELZ-0-2-0-beta/_reference/resources/practitionerrole-04115923.xml create mode 100644 src/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml create mode 100644 src/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml create mode 100644 src/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml create mode 100644 src/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml b/src/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml new file mode 100644 index 0000000000..df68557d76 --- /dev/null +++ b/src/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <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/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml b/src/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml new file mode 100644 index 0000000000..07d1a6720e --- /dev/null +++ b/src/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml @@ -0,0 +1,74 @@ +<?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> + <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="T"/> + <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/_reference/resources/contactperson-de-Kok.xml b/src/ELZ-0-2-0-beta/_reference/resources/contactperson-de-Kok.xml new file mode 100644 index 0000000000..d10fbbfeb5 --- /dev/null +++ b/src/ELZ-0-2-0-beta/_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/_reference/resources/organization-04016056-0400.xml b/src/ELZ-0-2-0-beta/_reference/resources/organization-04016056-0400.xml new file mode 100644 index 0000000000..b5569361cf --- /dev/null +++ b/src/ELZ-0-2-0-beta/_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/_reference/resources/organization-04086949.xml b/src/ELZ-0-2-0-beta/_reference/resources/organization-04086949.xml new file mode 100644 index 0000000000..fcf2154f69 --- /dev/null +++ b/src/ELZ-0-2-0-beta/_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/_reference/resources/patient-XXX-Andrioli.xml b/src/ELZ-0-2-0-beta/_reference/resources/patient-XXX-Andrioli.xml new file mode 100644 index 0000000000..7f7895e618 --- /dev/null +++ b/src/ELZ-0-2-0-beta/_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/_reference/resources/patient-van-XXX-Sanderink-de-Kok.xml b/src/ELZ-0-2-0-beta/_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/_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/_reference/resources/practitioner-000001111.xml b/src/ELZ-0-2-0-beta/_reference/resources/practitioner-000001111.xml new file mode 100644 index 0000000000..13963d8135 --- /dev/null +++ b/src/ELZ-0-2-0-beta/_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/_reference/resources/practitioner-04115923.xml b/src/ELZ-0-2-0-beta/_reference/resources/practitioner-04115923.xml new file mode 100644 index 0000000000..45af266dea --- /dev/null +++ b/src/ELZ-0-2-0-beta/_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/_reference/resources/practitionerrole-000001111.xml b/src/ELZ-0-2-0-beta/_reference/resources/practitionerrole-000001111.xml new file mode 100644 index 0000000000..f392012749 --- /dev/null +++ b/src/ELZ-0-2-0-beta/_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/_reference/resources/practitionerrole-04115923.xml b/src/ELZ-0-2-0-beta/_reference/resources/practitionerrole-04115923.xml new file mode 100644 index 0000000000..50c2f31bec --- /dev/null +++ b/src/ELZ-0-2-0-beta/_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/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml b/src/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml new file mode 100644 index 0000000000..840d3edb26 --- /dev/null +++ b/src/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml @@ -0,0 +1,41 @@ +<?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> + <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="T"/> + <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/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml b/src/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml new file mode 100644 index 0000000000..299266272b --- /dev/null +++ b/src/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml @@ -0,0 +1,40 @@ +<?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> + <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="T"/> + <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/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml b/src/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml new file mode 100644 index 0000000000..3febfe4bc0 --- /dev/null +++ b/src/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml @@ -0,0 +1,40 @@ +<?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> + <value value="hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + </identifier> + <status value="requested"/> + <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="Gezondheidscentrum de Brug"/> + </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="T"/> + <requester> + <reference value="PractitionerRole/practitionerrole-000001111"/> + <type value="PractitionerRole"/> + <display value="Healthcare professional (role), Huisartsen, niet nader gespecificeerd, Gezondheidscentrum de Brug"/> + </requester> + <owner> + <reference value="PractitionerRole/practitionerrole-04115923"/> + <type value="PractitionerRole"/> + <display value="Healthcare professional (role), Fysiotherapeuten, fysiotherapie en manuele therapie, FysioHolland"/> + </owner> +</Task> diff --git a/src/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml b/src/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml new file mode 100644 index 0000000000..996e90f468 --- /dev/null +++ b/src/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml @@ -0,0 +1,40 @@ +<?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> + <value value="hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + </identifier> + <status value="requested"/> + <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="T"/> + <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> From ff787a46a6a0f314ba40046dd3f8a6bd3b337cc0 Mon Sep 17 00:00:00 2001 From: Eduard <rijcke@nictiz.nl> Date: Fri, 27 Oct 2023 15:03:06 +0200 Subject: [PATCH 03/16] HZP-192 First XIS Receiving Testscripts (beta) for the ELZ project. --- .../elz-receiving-xis-scenario-1-minimal.xml | 43 +++++++++++++++++ .../elz-receiving-xis-scenario-1.xml | 10 ---- .../elz-sending-xis-scenario-1.xml | 10 ---- .../action.receivingxis.awaitNotification.xml | 48 +++++++++++++++++++ .../action.sendingxis.sendNotification.xml | 30 ++++++++++++ .../setup.general.initializeTask.xml | 19 ++++++++ .../test.receivingxis.readServicerequest.xml | 32 +++++++++++++ .../test.receivingxis.readTask.xml | 39 +++++++++++++++ .../test.sendingxis.serveServicerequest.xml | 22 +++++++++ .../_components/test.sendingxis.serveTask.xml | 38 +++++++++++++++ ...zingHuisartsParamedicusMaximaalbericht.xml | 0 ...zingHuisartsParamedicusMinimaalbericht.xml | 0 .../contactperson-de-Kok.xml | 0 .../organization-04016056-0400.xml | 0 .../organization-04086949.xml | 0 .../patient-XXX-Andrioli.xml | 0 .../patient-van-XXX-Sanderink-de-Kok.xml | 0 .../practitioner-000001111.xml | 0 .../practitioner-04115923.xml | 0 .../practitionerrole-000001111.xml | 0 .../practitionerrole-04115923.xml | 0 ...zingHuisartsParamedicusMaximaalbericht.xml | 0 ...zingHuisartsParamedicusMinimaalbericht.xml | 0 ...sParamedicusMaximaalbericht-REQUESTED.xml} | 10 ++-- ...sParamedicusMinimaalbericht-REQUESTED.xml} | 0 25 files changed, 276 insertions(+), 25 deletions(-) create mode 100644 src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml delete mode 100644 src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1.xml delete mode 100644 src/ELZ-0-2-0-beta/Test/Sending-XIS/elz-sending-xis-scenario-1.xml create mode 100644 src/ELZ-0-2-0-beta/_components/action.receivingxis.awaitNotification.xml create mode 100644 src/ELZ-0-2-0-beta/_components/action.sendingxis.sendNotification.xml create mode 100644 src/ELZ-0-2-0-beta/_components/setup.general.initializeTask.xml create mode 100644 src/ELZ-0-2-0-beta/_components/test.receivingxis.readServicerequest.xml create mode 100644 src/ELZ-0-2-0-beta/_components/test.receivingxis.readTask.xml create mode 100644 src/ELZ-0-2-0-beta/_components/test.sendingxis.serveServicerequest.xml create mode 100644 src/ELZ-0-2-0-beta/_components/test.sendingxis.serveTask.xml rename src/ELZ-0-2-0-beta/_reference/resources/{ => resources-generic}/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml (100%) rename src/ELZ-0-2-0-beta/_reference/resources/{ => resources-generic}/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml (100%) rename src/ELZ-0-2-0-beta/_reference/resources/{ => resources-generic}/contactperson-de-Kok.xml (100%) rename src/ELZ-0-2-0-beta/_reference/resources/{ => resources-generic}/organization-04016056-0400.xml (100%) rename src/ELZ-0-2-0-beta/_reference/resources/{ => resources-generic}/organization-04086949.xml (100%) rename src/ELZ-0-2-0-beta/_reference/resources/{ => resources-generic}/patient-XXX-Andrioli.xml (100%) rename src/ELZ-0-2-0-beta/_reference/resources/{ => resources-generic}/patient-van-XXX-Sanderink-de-Kok.xml (100%) rename src/ELZ-0-2-0-beta/_reference/resources/{ => resources-generic}/practitioner-000001111.xml (100%) rename src/ELZ-0-2-0-beta/_reference/resources/{ => resources-generic}/practitioner-04115923.xml (100%) rename src/ELZ-0-2-0-beta/_reference/resources/{ => resources-generic}/practitionerrole-000001111.xml (100%) rename src/ELZ-0-2-0-beta/_reference/resources/{ => resources-generic}/practitionerrole-04115923.xml (100%) rename src/ELZ-0-2-0-beta/_reference/resources/{ => resources-specific}/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml (100%) rename src/ELZ-0-2-0-beta/_reference/resources/{ => resources-specific}/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml (100%) rename src/ELZ-0-2-0-beta/_reference/resources/{task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml => resources-specific/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-REQUESTED.xml} (73%) rename src/ELZ-0-2-0-beta/_reference/resources/{task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml => resources-specific/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-REQUESTED.xml} (100%) diff --git a/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml new file mode 100644 index 0000000000..75fa973040 --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-model href="../../general/schematron/NictizTestScript.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-minimal"/> + <version value="R4"/> + <name value="ELZ-Receiving-XIS-scenario-1-minimal"/> + <description value="Scenario 1 minimal (beta) for Eerstelijnszorg receiving systems. In a normal scenario, the test for the negotiation phase ('aanmeldfase') has been completed before running this test, although it may be performed in isolation."/> + + <nts:authToken patientResourceId="nl-core-patient-eov-test-1-1b-01"/> + + <setup> + <nts:fixture + id="initial-task-fixture" + href="resources/resources-specific/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-REQUESTED.xml"/> + <nts:include value="setup.general.initializeTask" + task-fixture-id="initial-task-fixture" + description="At the sending XIS, the Task resulting from the negotiation phase is updated with a reference to the nursing handoff Composition on Task.input."/> + </setup> + + <nts:include value="action.receivingxis.awaitNotification" + name="Await nursing handoff addition notification" + description="The sending XIS sends a notification to the receiving XIS because the Task has been updated with a reference to the Servicerequest."/> + + <test> + <name value="Read Task with nursing handoff"/> + <description value="The receiving XIS should perform a read on the Task after receiving a notification that the Task has been updated."/> + + <nts:include value="test.receivingxis.readTask" + taskStatus="in-progress" + responseId="in-progress-task-response"/> + </test> + + <test> + <name value="Read nursing handoff"/> + <description value="After reading the Task, the receiving XIS should detect that a reference to the Servicerequest has been added and subsequently perform a read to retrieve this Servicerequest."/> + + <nts:include value="test.receivingxis.readServicerequest" + taskFixtureId="in-progress-task-response" + sliceSystem="http://snomed.info/sct" sliceCode="3457005"/> + </test> + +</TestScript> diff --git a/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1.xml b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1.xml deleted file mode 100644 index 90040927d1..0000000000 --- a/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<?xml-model href="../../general/schematron/NictizTestScript.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="Receiving-XIS-scenario1"/> - <version value="r4-0.2.0-beta"/> - <name value="Receiving-XIS-scenario1"/> - <description value="TO DO"/> - -</TestScript> diff --git a/src/ELZ-0-2-0-beta/Test/Sending-XIS/elz-sending-xis-scenario-1.xml b/src/ELZ-0-2-0-beta/Test/Sending-XIS/elz-sending-xis-scenario-1.xml deleted file mode 100644 index 209a4f9958..0000000000 --- a/src/ELZ-0-2-0-beta/Test/Sending-XIS/elz-sending-xis-scenario-1.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<?xml-model href="../../general/schematron/NictizTestScript.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="Sending-XIS-scenario1"/> - <version value="r4-0.2.0-beta"/> - <name value="Sending-XIS-scenario1"/> - <description value="TO DO"/> - -</TestScript> diff --git a/src/ELZ-0-2-0-beta/_components/action.receivingxis.awaitNotification.xml b/src/ELZ-0-2-0-beta/_components/action.receivingxis.awaitNotification.xml new file mode 100644 index 0000000000..49068292ff --- /dev/null +++ b/src/ELZ-0-2-0-beta/_components/action.receivingxis.awaitNotification.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Send a notification to the notification endpoint defined during setup. This will be an isolated "test" in the TestScript. + This mechanism (ab)uses the TestScript create operation by using the `url` element to define the URL to send the POST to. + @param name - A unique name for this notification sending instance. + @param [description] - An optional description for thit step. +--> +<nts:component xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> + <test> + <name value="{$name}"/> + <description value="{$description}"/> + + <variable> + <name value="notificationEndpoint"/> + <hint value="The notification endpoint that the sending XIS can use to notify the receiving XIS, _without_ the trailing slash."/> + </variable> + + <variable> + <name value="authorization-token-id"/> + <hint value="The payload of the authorization header that Touchstone should use when sending the notification to the notification endpoint."/> + </variable> + + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="create"/> + </type> + <resource value="Resource"/> + <label value="Notify receiving XIS"/> + <description value="The sending XIS sends a notification to the specified endpoint of the receiving XIS."/> + <requestHeader> + <field value="Authorization"/> + <value value="${authorization-token-id}"/> + </requestHeader> + <url value="${notificationEndpoint}/${task-id}"/> + </operation> + </action> + <action> + <assert nts:stopTestOnFail="false"> + <label value="Check that the response code is 202 Accepted."/> + <description value="It is advised that the receiving XIS responds to the notification with '202 Accepted'."/> + <responseCode value="202"/> + <warningOnly value="true"/> + </assert> + </action> + </test> +</nts:component> diff --git a/src/ELZ-0-2-0-beta/_components/action.sendingxis.sendNotification.xml b/src/ELZ-0-2-0-beta/_components/action.sendingxis.sendNotification.xml new file mode 100644 index 0000000000..44c0ada43b --- /dev/null +++ b/src/ELZ-0-2-0-beta/_components/action.sendingxis.sendNotification.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Await a notification from the sending XIS before continuing. +--> +<nts:component xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> + <variable nts:in-targets="#default"> + <name value="task-id"/> + <hint value="Please provide the Resource.id of the Task that will be used. The notification endpoint will be shown when executing the test, based on the variable filled out here (it is dynamically determined by Touchstone)."/> + </variable> + + <test nts:in-targets="#default"> + <name value="{$name}"/> + <description value="Await notification to the endpoint specified below."/> + + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="create"/> + </type> + <resource value="Resource"/> + <label value="Await notification from sending XIS"/> + <description value="The sending XIS should notify the receiving XIS by POSTing and empty body on the endpoint specified here."/> + <destination value="2"/> + <origin value="2"/> + <params value="/${task-id}"/> + </operation> + </action> + </test> +</nts:component> diff --git a/src/ELZ-0-2-0-beta/_components/setup.general.initializeTask.xml b/src/ELZ-0-2-0-beta/_components/setup.general.initializeTask.xml new file mode 100644 index 0000000000..40ec3b908b --- /dev/null +++ b/src/ELZ-0-2-0-beta/_components/setup.general.initializeTask.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Initialize the eOverdracht Task: create/update the Task on WildFHIR to its initial for the test and set the + following variables: + * setup-task-response: The result of the Task create/update operation + * task-id: The id of the Task + @param task-fixture-id: The id of the fixture that contains the Task in its initial state. + @param description: The description of the operation. +--> +<nts:component xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> + <variable> + <name value="task-id" /> + <expression value="Task.id"/> + <sourceId value="{$task-fixture-id}"/> + </variable> + + <nts:include value="action.general.updateTaskBySendingXis" + responseId="setup-task-response" /> +</nts:component> diff --git a/src/ELZ-0-2-0-beta/_components/test.receivingxis.readServicerequest.xml b/src/ELZ-0-2-0-beta/_components/test.receivingxis.readServicerequest.xml new file mode 100644 index 0000000000..8df77ae2e7 --- /dev/null +++ b/src/ELZ-0-2-0-beta/_components/test.receivingxis.readServicerequest.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + The step in the ELZ flow where the receiving XIS reads a Compostion which is referred to using the .input + of a previously retrieved Task. + @param taskFixtureId - The fixture id of the Task that refers the Servicerequest. + @param sliceSystem - The system used for the Taks.input slice that refers to the Servicerequest. + @param sliceCode - The code used for the Taks.input slice that refers to the Servicerequest. +--> +<nts:component xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> + <variable> + <name value="{$taskFixtureId}-servicerequest-{$sliceCode}-id"/> + <expression value="Task.input.where(type.coding.system = '{$sliceSystem}' and type.coding.code = '{$sliceCode}').value.reference.replace('Servicerequest/', '')"/> + <sourceId value="{$taskFixtureId}"/> + </variable> + + <nts:include nts:in-targets="#default" value="test.client.read" scope="common" + resource="Servicerequest" + params="/${{$taskFixtureId}-servicerequest-{$sliceCode}-id}/$document" + useToken="true"/> + <nts:include nts:in-targets="#default" value="assert.response.success" scope="common"/> + <action nts:in-targets="#default"> + <assert> + <description value="Make sure that the test server (WildFHIR) returns a Bundle."/> + <direction value="response"/> + <resource value="Bundle"/> + </assert> + </action> + <nts:include nts:in-targets="NoDocument" value="test.client.successfulRead" scope="common" + resource="Servicerequest" + params="/${{$taskFixtureId}-servicerequest-{$sliceCode}-id}" + useToken="true"/> +</nts:component> \ No newline at end of file diff --git a/src/ELZ-0-2-0-beta/_components/test.receivingxis.readTask.xml b/src/ELZ-0-2-0-beta/_components/test.receivingxis.readTask.xml new file mode 100644 index 0000000000..44c88d7c9c --- /dev/null +++ b/src/ELZ-0-2-0-beta/_components/test.receivingxis.readTask.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Test a receiving XIS to read the eOverdracht Task after getting a notification with the Task.id. + @param taskStatus - The expected status of the Task. This is needed for the sanity check that a Task with the + specified status is returned at this time in the process. +--> +<nts:component xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes" /> + <code value="read" /> + </type> + <resource value="Task"/> + <label value="Get Task resource for eOverdracht"/> + <accept value="xml" /> + <destination value="1"/> + <origin value="1"/> + <params value="/${task-id}"/> + <nts:include value="header.request.PatientToken" scope="common"/> + <responseId nts:ifset="responseId" value="{$responseId}"/> + </operation> + </action> + + <nts:include value="assert.response.success" scope="common"/> + <action> + <assert> + <label value="Sanity check to see if the result is a Task."/> + <resource value="Task"/> + </assert> + </action> + <action> + <assert> + <label value="Sanity check to see if the Task has status={$taskStatus}."/> + <expression value="Task.status = '{$taskStatus}'"/> + </assert> + </action> +</nts:component> + diff --git a/src/ELZ-0-2-0-beta/_components/test.sendingxis.serveServicerequest.xml b/src/ELZ-0-2-0-beta/_components/test.sendingxis.serveServicerequest.xml new file mode 100644 index 0000000000..7aa863a01f --- /dev/null +++ b/src/ELZ-0-2-0-beta/_components/test.sendingxis.serveServicerequest.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + The step in the ELZ where the receiving XIS reads a Servicerequest which is referred to using the .input + of a previously retrieved Task. + @param taskFixtureId - The fixture id of the Task that refers the Servicerequest. + @param sliceSystem - The system used for the Task.input slice that refers to the Servicerequest. + @param sliceCode - The code used for the Task.input slice that refers to the Servicerequest. +--> +<nts:component xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> + <variable> + <name value="{$taskFixtureId}-servicerequest-{$sliceCode}-id"/> + <expression value="Task.input.where(type.where(coding.where(system = '{$sliceSystem}' and code = '{$sliceCode}'))).value.reference.replace('Servicerequest/', '')"/> + <sourceId value="{$taskFixtureId}"/> + </variable> + + <nts:include value="test.server.successfulRead" scope="common" + resource="Servicerequest" + params="/${{$taskFixtureId}-servicerequest-{$sliceCode}-id}/$document" + useToken="true"/> + + <nts:include value="assert.response.bundleContent" scope="common" bundleType="document"/> +</nts:component> \ No newline at end of file diff --git a/src/ELZ-0-2-0-beta/_components/test.sendingxis.serveTask.xml b/src/ELZ-0-2-0-beta/_components/test.sendingxis.serveTask.xml new file mode 100644 index 0000000000..874d3e6567 --- /dev/null +++ b/src/ELZ-0-2-0-beta/_components/test.sendingxis.serveTask.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Test a sending XIS to serve new or updated eOverdracht Tasks. + @param taskStatus - The expected status of the Task. + @param [responseId] - An optional id to cache the server response to. +--> + +<nts:component xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> + <nts:include value="test.server.read" scope="common" + resource="Task" + params="${task-id}" + useToken="yes"/> + <nts:include value="assert.response.success" scope="common"/> + <action> + <assert> + <label value="Make sure that a Task is returned."/> + <resource value="Task"/> + </assert> + </action> + + <profile id="eOverdracht-Task"> + <reference value="http://nictiz.nl/fhir/StructureDefinition/eOverdracht-Task"/> + </profile> + <action> + <assert> + <label value="Validate the returned Task to the eOverdracht Task profile"/> + <validateProfileId value="eOverdracht-Task"/> + </assert> + </action> + + <action> + <assert> + <label value="Make sure that the Task has status={$taskStatus}."/> + <expression value="Task.status = '{$taskStatus}'"/> + </assert> + </action> +</nts:component> + diff --git a/src/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml b/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml rename to src/ELZ-0-2-0-beta/_reference/resources/resources-generic/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml b/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml rename to src/ELZ-0-2-0-beta/_reference/resources/resources-generic/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/contactperson-de-Kok.xml b/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/contactperson-de-Kok.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/contactperson-de-Kok.xml rename to src/ELZ-0-2-0-beta/_reference/resources/resources-generic/contactperson-de-Kok.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/organization-04016056-0400.xml b/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/organization-04016056-0400.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/organization-04016056-0400.xml rename to src/ELZ-0-2-0-beta/_reference/resources/resources-generic/organization-04016056-0400.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/organization-04086949.xml b/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/organization-04086949.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/organization-04086949.xml rename to src/ELZ-0-2-0-beta/_reference/resources/resources-generic/organization-04086949.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/patient-XXX-Andrioli.xml b/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/patient-XXX-Andrioli.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/patient-XXX-Andrioli.xml rename to src/ELZ-0-2-0-beta/_reference/resources/resources-generic/patient-XXX-Andrioli.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/patient-van-XXX-Sanderink-de-Kok.xml b/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/patient-van-XXX-Sanderink-de-Kok.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/patient-van-XXX-Sanderink-de-Kok.xml rename to src/ELZ-0-2-0-beta/_reference/resources/resources-generic/patient-van-XXX-Sanderink-de-Kok.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/practitioner-000001111.xml b/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/practitioner-000001111.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/practitioner-000001111.xml rename to src/ELZ-0-2-0-beta/_reference/resources/resources-generic/practitioner-000001111.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/practitioner-04115923.xml b/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/practitioner-04115923.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/practitioner-04115923.xml rename to src/ELZ-0-2-0-beta/_reference/resources/resources-generic/practitioner-04115923.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/practitionerrole-000001111.xml b/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/practitionerrole-000001111.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/practitionerrole-000001111.xml rename to src/ELZ-0-2-0-beta/_reference/resources/resources-generic/practitionerrole-000001111.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/practitionerrole-04115923.xml b/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/practitionerrole-04115923.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/practitionerrole-04115923.xml rename to src/ELZ-0-2-0-beta/_reference/resources/resources-generic/practitionerrole-04115923.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml b/src/ELZ-0-2-0-beta/_reference/resources/resources-specific/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml rename to src/ELZ-0-2-0-beta/_reference/resources/resources-specific/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml b/src/ELZ-0-2-0-beta/_reference/resources/resources-specific/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml rename to src/ELZ-0-2-0-beta/_reference/resources/resources-specific/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml b/src/ELZ-0-2-0-beta/_reference/resources/resources-specific/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-REQUESTED.xml similarity index 73% rename from src/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml rename to src/ELZ-0-2-0-beta/_reference/resources/resources-specific/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-REQUESTED.xml index 3febfe4bc0..894ec1473e 100644 --- a/src/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml +++ b/src/ELZ-0-2-0-beta/_reference/resources/resources-specific/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-REQUESTED.xml @@ -19,7 +19,7 @@ <focus> <reference value="ServiceRequest/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> <type value="ServiceRequest"/> - <display value="Gezondheidscentrum de Brug"/> + <display value="envelop"/> </focus> <for> <reference value="Patient/patient-van-XXX-Sanderink-de-Kok"/> @@ -30,11 +30,11 @@ <requester> <reference value="PractitionerRole/practitionerrole-000001111"/> <type value="PractitionerRole"/> - <display value="Healthcare professional (role), Huisartsen, niet nader gespecificeerd, Gezondheidscentrum de Brug"/> + <display value="Healthcare professional (role)"/> </requester> <owner> - <reference value="PractitionerRole/practitionerrole-04115923"/> - <type value="PractitionerRole"/> - <display value="Healthcare professional (role), Fysiotherapeuten, fysiotherapie en manuele therapie, FysioHolland"/> + <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/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml b/src/ELZ-0-2-0-beta/_reference/resources/resources-specific/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-REQUESTED.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml rename to src/ELZ-0-2-0-beta/_reference/resources/resources-specific/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-REQUESTED.xml From bfc0d6e586ce5ab28ff3b2b4e896c1409be96be4 Mon Sep 17 00:00:00 2001 From: Eduard <rijcke@nictiz.nl> Date: Fri, 27 Oct 2023 15:31:53 +0200 Subject: [PATCH 04/16] HZP-192 Textual changes --- .../elz-receiving-xis-scenario-1-minimal.xml | 8 ++++---- .../_components/test.receivingxis.readTask.xml | 4 ++-- .../_components/test.sendingxis.serveTask.xml | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml index 75fa973040..e7a2144921 100644 --- a/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml +++ b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml @@ -15,15 +15,15 @@ href="resources/resources-specific/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-REQUESTED.xml"/> <nts:include value="setup.general.initializeTask" task-fixture-id="initial-task-fixture" - description="At the sending XIS, the Task resulting from the negotiation phase is updated with a reference to the nursing handoff Composition on Task.input."/> + description="At the sending XIS, the Task resulting from the negotiation phase is updated with a reference to the Servicerequest on Task.input."/> </setup> <nts:include value="action.receivingxis.awaitNotification" - name="Await nursing handoff addition notification" + name="Await addition notification" description="The sending XIS sends a notification to the receiving XIS because the Task has been updated with a reference to the Servicerequest."/> <test> - <name value="Read Task with nursing handoff"/> + <name value="Read Task"/> <description value="The receiving XIS should perform a read on the Task after receiving a notification that the Task has been updated."/> <nts:include value="test.receivingxis.readTask" @@ -32,7 +32,7 @@ </test> <test> - <name value="Read nursing handoff"/> + <name value="Read Servicerequest"/> <description value="After reading the Task, the receiving XIS should detect that a reference to the Servicerequest has been added and subsequently perform a read to retrieve this Servicerequest."/> <nts:include value="test.receivingxis.readServicerequest" diff --git a/src/ELZ-0-2-0-beta/_components/test.receivingxis.readTask.xml b/src/ELZ-0-2-0-beta/_components/test.receivingxis.readTask.xml index 44c88d7c9c..5154c81da0 100644 --- a/src/ELZ-0-2-0-beta/_components/test.receivingxis.readTask.xml +++ b/src/ELZ-0-2-0-beta/_components/test.receivingxis.readTask.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - Test a receiving XIS to read the eOverdracht Task after getting a notification with the Task.id. + Test a receiving XIS to read the ELZ Task after getting a notification with the Task.id. @param taskStatus - The expected status of the Task. This is needed for the sanity check that a Task with the specified status is returned at this time in the process. --> @@ -12,7 +12,7 @@ <code value="read" /> </type> <resource value="Task"/> - <label value="Get Task resource for eOverdracht"/> + <label value="Get Task resource for ELZ"/> <accept value="xml" /> <destination value="1"/> <origin value="1"/> diff --git a/src/ELZ-0-2-0-beta/_components/test.sendingxis.serveTask.xml b/src/ELZ-0-2-0-beta/_components/test.sendingxis.serveTask.xml index 874d3e6567..8f86c1ac41 100644 --- a/src/ELZ-0-2-0-beta/_components/test.sendingxis.serveTask.xml +++ b/src/ELZ-0-2-0-beta/_components/test.sendingxis.serveTask.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - Test a sending XIS to serve new or updated eOverdracht Tasks. + Test a sending XIS to serve new or updated ELZ Tasks. @param taskStatus - The expected status of the Task. @param [responseId] - An optional id to cache the server response to. --> @@ -18,13 +18,13 @@ </assert> </action> - <profile id="eOverdracht-Task"> - <reference value="http://nictiz.nl/fhir/StructureDefinition/eOverdracht-Task"/> + <profile id="ELZ-Task"> + <reference value="http://nictiz.nl/fhir/StructureDefinition/hg-ReferralTask"/> </profile> <action> <assert> - <label value="Validate the returned Task to the eOverdracht Task profile"/> - <validateProfileId value="eOverdracht-Task"/> + <label value="Validate the returned Task to the ELZ Task profile"/> + <validateProfileId value="ELZ-Task"/> </assert> </action> From fb7e98ccbc6954b0b402bca46d170f475fb2e00d Mon Sep 17 00:00:00 2001 From: Eduard <rijcke@nictiz.nl> Date: Mon, 6 Nov 2023 15:32:02 +0100 Subject: [PATCH 05/16] HZP-192 Rebuild of the testscripts for ELZ Testmaterials (beta) --- Configuration/QualificationTokens.json | 1612 +++++++++-------- Configuration/QualificationTokensStaging.json | 1563 ++++++++-------- .../elz-receiving-xis-scenario-1-minimal.xml | 70 +- ...zingHuisartsParamedicusMaximaalbericht.xml | 2 +- ...zingHuisartsParamedicusMinimaalbericht.xml | 2 +- .../resources}/contactperson-de-Kok.xml | 0 .../resources}/organization-04016056-0400.xml | 0 .../resources}/organization-04086949.xml | 0 .../resources}/patient-XXX-Andrioli.xml | 0 .../patient-van-XXX-Sanderink-de-Kok.xml | 0 .../resources}/practitioner-000001111.xml | 0 .../resources}/practitioner-04115923.xml | 0 .../resources}/practitionerrole-000001111.xml | 0 .../resources}/practitionerrole-04115923.xml | 0 ...zingHuisartsParamedicusMaximaalbericht.xml | 2 +- ...zingHuisartsParamedicusMinimaalbericht.xml | 2 +- ...ingHuisartsParamedicusMaximaalbericht.xml} | 4 +- ...ingHuisartsParamedicusMinimaalbericht.xml} | 4 +- .../action.receivingxis.awaitNotification.xml | 48 - .../action.sendingxis.sendNotification.xml | 30 - .../setup.general.initializeTask.xml | 19 - .../test.receivingxis.readServicerequest.xml | 32 - .../test.receivingxis.readTask.xml | 39 - .../test.sendingxis.serveServicerequest.xml | 22 - .../_components/test.sendingxis.serveTask.xml | 38 - 25 files changed, 1730 insertions(+), 1759 deletions(-) rename src/ELZ-0-2-0-beta/{_reference/resources/resources-generic => Test/_reference/resources}/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml (99%) rename src/ELZ-0-2-0-beta/{_reference/resources/resources-generic => Test/_reference/resources}/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml (98%) rename src/ELZ-0-2-0-beta/{_reference/resources/resources-generic => Test/_reference/resources}/contactperson-de-Kok.xml (100%) rename src/ELZ-0-2-0-beta/{_reference/resources/resources-generic => Test/_reference/resources}/organization-04016056-0400.xml (100%) rename src/ELZ-0-2-0-beta/{_reference/resources/resources-generic => Test/_reference/resources}/organization-04086949.xml (100%) rename src/ELZ-0-2-0-beta/{_reference/resources/resources-generic => Test/_reference/resources}/patient-XXX-Andrioli.xml (100%) rename src/ELZ-0-2-0-beta/{_reference/resources/resources-generic => Test/_reference/resources}/patient-van-XXX-Sanderink-de-Kok.xml (100%) rename src/ELZ-0-2-0-beta/{_reference/resources/resources-generic => Test/_reference/resources}/practitioner-000001111.xml (100%) rename src/ELZ-0-2-0-beta/{_reference/resources/resources-generic => Test/_reference/resources}/practitioner-04115923.xml (100%) rename src/ELZ-0-2-0-beta/{_reference/resources/resources-generic => Test/_reference/resources}/practitionerrole-000001111.xml (100%) rename src/ELZ-0-2-0-beta/{_reference/resources/resources-generic => Test/_reference/resources}/practitionerrole-04115923.xml (100%) rename src/ELZ-0-2-0-beta/{_reference/resources/resources-specific => Test/_reference/resources}/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml (98%) rename src/ELZ-0-2-0-beta/{_reference/resources/resources-specific => Test/_reference/resources}/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml (97%) rename src/ELZ-0-2-0-beta/{_reference/resources/resources-specific/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-REQUESTED.xml => Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml} (95%) rename src/ELZ-0-2-0-beta/{_reference/resources/resources-specific/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-REQUESTED.xml => Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml} (95%) delete mode 100644 src/ELZ-0-2-0-beta/_components/action.receivingxis.awaitNotification.xml delete mode 100644 src/ELZ-0-2-0-beta/_components/action.sendingxis.sendNotification.xml delete mode 100644 src/ELZ-0-2-0-beta/_components/setup.general.initializeTask.xml delete mode 100644 src/ELZ-0-2-0-beta/_components/test.receivingxis.readServicerequest.xml delete mode 100644 src/ELZ-0-2-0-beta/_components/test.receivingxis.readTask.xml delete mode 100644 src/ELZ-0-2-0-beta/_components/test.sendingxis.serveServicerequest.xml delete mode 100644 src/ELZ-0-2-0-beta/_components/test.sendingxis.serveTask.xml diff --git a/Configuration/QualificationTokens.json b/Configuration/QualificationTokens.json index d33ffb68e0..510b90f416 100644 --- a/Configuration/QualificationTokens.json +++ b/Configuration/QualificationTokens.json @@ -1,745 +1,869 @@ [ - { - "accessToken": "Bearer 2588b52d-c5ef-4cfa-84d4-acf8419a72e9", - "resourceId": "eAfspraak-Patient-kwalificatie1", - "familyName": "XXX_Verweij", - "bsn": "999911533", - "qualificationScript": "MedMij eAfspraken" - }, - { - "accessToken": "Bearer 48a1fb8a-82e5-4e72-b560-4924279bb57e", - "resourceId": "eAfspraak-Patient-kwalificatie2", - "familyName": "XXX_Zalentein", - "bsn": "999911582", - "qualificationScript": "MedMij eAfspraken" - }, - { - "accessToken": "Bearer ed772f1e-5c86-4a0b-af36-4a05a2059191", - "resourceId": "eAfspraak-Patient-kwalificatie3", - "familyName": "XXX_Egmond", - "bsn": "999911594", - "qualificationScript": "MedMij eAfspraken" - }, - { - "accessToken": "Bearer f92b6141-55db-46d5-a3ae-874b69907d22", - "resourceId": "example-pdfa-kwalificatie1", - "familyName": "XXX_Baltus", - "bsn": "999910796", - "qualificationScript": "MedMij PDF/A" - }, - { - "accessToken": "Bearer aae7b5aa-d796-4fba-b4d3-852d9043ee66", - "resourceId": "example-pdfa-kwalificatie2", - "familyName": "XXX_Schulte", - "bsn": "999910784", - "qualificationScript": "MedMij PDF/A" - }, - { - "accessToken": "Bearer 84b0da5a-3816-49ba-9df4-88bc089dd401", - "resourceId": "example-pdfa-kwalificatie3", - "familyName": "XXX_Ellens", - "bsn": "999910863", - "qualificationScript": "MedMij PDF/A" - }, - { - "accessToken": "Bearer 93cde269-ce35-4077-a39d-19296670e949", - "resourceId": "medmij-bgz-patient-ts-01", - "familyName": "XXX_Helleman", - "bsn": "999911120", - "qualificationScript": "MedMij BGZ" - }, - { - "accessToken": "Bearer 6056a9eb-da6a-45dc-b557-e854e138af8f", - "resourceId": "medmij-bgz-patient-ts-02", - "familyName": "XXX_Mesker", - "bsn": "999911284", - "qualificationScript": "MedMij BGZ" - }, - { - "accessToken": "Bearer d9f8d61b-c236-489f-aba5-b3bebd312c30", - "resourceId": "selfmeasurement-patient-kwalificatie1", - "familyName": "XXX_Bourgonjee", - "bsn": "999911302", - "qualificationScript": "MedMij Zelfmetingen" - }, - { - "accessToken": "Bearer 06bbe01d-b3cb-4028-8b1c-f731d0241b57", - "resourceId": "selfmeasurement-patient-kwalificatie2", - "familyName": "XXX_Bergzoon", - "bsn": "999911259", - "qualificationScript": "MedMij Zelfmetingen" - }, - { - "accessToken": "Bearer f5a06257-2498-4442-96e7-98bf5708d6ae", - "resourceId": "selfmeasurements-2020-01-patient-kwalificatie1", - "familyName": "XXX_Bourgonjee", - "bsn": "999911302", - "qualificationScript": "MedMij Zelfmetingen 2020.01" - }, - { - "accessToken": "Bearer 2405ec76-1fc0-4c5a-8963-1b3c8abb130b", - "resourceId": "selfmeasurements-2020-01-patient-kwalificatie2", - "familyName": "XXX_Bergzoon", - "bsn": "999911259", - "qualificationScript": "MedMij Zelfmetingen 2020.01" - }, - { - "accessToken": "Bearer 14bc6cc6-7b7b-4c29-b662-c5284d76cf3c", - "resourceId": "laboratoryresults-patient-kwalificatie1", - "familyName": "XXX_Aantrekker", - "bsn": "999910450", - "qualificationScript": "MedMij Lab" - }, - { - "accessToken": "Bearer 0aed465d-aab0-4417-9b3c-e6f635892fea", - "resourceId": "gpdata-patient-kwalificatie1", - "familyName": "XXX_Cevat", - "bsn": "999911132", - "qualificationScript": "MedMij Huisarts" - }, - { - "accessToken": "Bearer 5d0d5475-9609-4e91-bbca-c466ed704952", - "resourceId": "XXX-Yong", - "familyName": "XXX_Yong", - "bsn": "999911776", - "qualificationScript": "MedMij AllergyIntolerance" - }, - { - "accessToken": "Bearer 327aea20-12b8-11ea-aaef-0800200c9a66", - "resourceId": "YYY-Yong20", - "familyName": "YYY_Yong20", - "bsn": "999988402", - "qualificationScript": "MedMij AllergyIntolerance" - }, - { - "accessToken": "Bearer 3daef240-ee84-11e9-aaef-0800200c9a66", - "resourceId": "XXX-Stalewska", - "familyName": "XXX_Stalewska", - "bsn": "999911235", - "qualificationScript": "MedMij AllergyIntolerance" - }, - { - "accessToken": "Bearer 473b7ca0-f0f7-11e9-aaef-0800200c9a66", - "resourceId": "XXX-Smits", - "familyName": "XXX_Smits", - "bsn": "999911223", - "qualificationScript": "MedMij AllergyIntolerance" - }, - { - "accessToken": "Bearer 8c6e2d90-f0f7-11e9-aaef-0800200c9a66", - "resourceId": "XXX-Daalen", - "familyName": "XXX_Daalen", - "bsn": "999911247", - "qualificationScript": "MedMij AllergyIntolerance" - }, - { - "accessToken": "Bearer c980c4c9-a6d7-41d2-b541-5284f33b2f75", - "resourceId": "XXX-BOURGONJE", - "familyName": "XXX_Bourgonje", - "bsn": "999911296", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 31d4a33c-75a7-44a0-ba5c-2722971a0b85", - "resourceId": "XXX-GOBEE", - "familyName": "XXX_Gobee", - "bsn": "999911314", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer e2696872-f855-4283-a01b-c0db9c50bde2", - "resourceId": "XXX-DIRKSZ", - "familyName": "XXX_Dirksz", - "bsn": "999911326", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer b086604e-af06-48ae-bb7a-d099b4ebbf89", - "resourceId": "XXX-STRENGERSZ", - "familyName": "XXX_Strengersz", - "bsn": "999911338", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 72538476-32d0-4f7f-80c7-bb12a1872d8e", - "resourceId": "XXX-RUYS", - "familyName": "XXX_Ruys", - "bsn": "999911351", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 56fddbdf-cf49-41e1-b261-5ff7466c54a5", - "resourceId": "XXX-CNOSSEN", - "familyName": "XXX_Cnossen", - "bsn": "999911740", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 9981f7ad-f22b-4a99-be31-68145536f9de", - "resourceId": "XXX-KILKENNY", - "familyName": "XXX_Kilkenny", - "bsn": "999911752", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer d30f66ca-288d-44ea-aae0-659400d3ff42", - "resourceId": "XXX-AMAYA", - "familyName": "XXX_Amaya", - "bsn": "999911764", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 453863d0-0aa1-42e4-9201-7ca7e061520c", - "resourceId": "ADELAAR", - "familyName": "Adelaar", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer b373ae26-3452-4c19-8865-806aa503b9d0", - "resourceId": "BERKEN", - "familyName": "van der Berken", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 3c5c5d2d-587a-4aa0-9aa0-a4ec0641531f", - "resourceId": "CREIENS", - "familyName": "Creiens", - "bsn": "999999060", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 088c319c-e22d-4d8b-b65c-c3f2d76b7ec6", - "resourceId": "DIREN", - "familyName": "Direnç", - "bsn": "555555914", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 2ecfcf66-af45-4290-ab7c-6b7c3d10a452", - "resourceId": "HENEGOUWEN", - "familyName": "van Henegouwen", - "bsn": "555555112", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer acc0c081-ece5-4760-bfd9-ce61d1450406", - "resourceId": "SLUIS", - "familyName": "van der Sluis", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer dcdfe220-0fb9-470c-8721-08fd966fbea1", - "resourceId": "VEENOORD", - "familyName": "Veenoord", - "bsn": "555555021", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer acd68d8c-9394-4aee-8aa7-f7f81183e0d3", - "resourceId": "XXX-BEKKER", - "familyName": "XXX_BEKKER", - "bsn": "999911715", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer bde481d0-311a-4ca4-9cd6-334db51b7f54", - "resourceId": "XXX-JANKIE", - "familyName": "XXX_Jankie", - "bsn": "999910437", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 99b14b9a-a112-49d4-934b-10145cd353ba", - "resourceId": "XXX-ZUTPHEN", - "familyName": "van XXX_Zutphen", - "bsn": "999910498", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 13ac391e-e9f2-40b8-a15c-bb8d896009b9", - "resourceId": "XXX-MOLENAARS", - "familyName": "XXX_Molenaars", - "bsn": "999910449", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 7cac059d-47e7-4026-9f69-b826921305ae", - "resourceId": "XXX-BOSCHMAN", - "familyName": "van de XXX_Boschman", - "bsn": "999912100", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 29fe6dc3-deb8-4d5a-b7f1-a5e407e962d3", - "resourceId": "XXX-VONKER", - "familyName": "XXX_Vonker", - "bsn": "999910401", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer b289543a-03e0-4d2a-90c1-6edc3e53a314", - "resourceId": "XXX-INCIDENT-A", - "familyName": "XXX-Incident-A", - "bsn": "999990159", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer af8c760b-ce0b-4b8b-a5b0-bdd973439d12", - "resourceId": "XXX-MAASZ", - "familyName": "XXX_Maasz", - "bsn": "999910747", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 461b4db0-73fa-4ee8-a807-7d24fe8d139c", - "resourceId": "XXX-Kester", - "familyName": "van XXX_Kester", - "bsn": "999911557", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 828138a3-a871-4657-99a4-6a72b07038c7", - "resourceId": "XXX-TEST-E", - "familyName": "XXX_TEST_E", - "bsn": "999990196", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 761549f5-112d-49be-a20d-3874783b4ca7", - "resourceId": "C-XXX-CSC-SMOKETEST-A", - "familyName": "XXX-CSC-Smoketest-A", - "bsn": "999990020", - "qualificationScript": "MedMij Medication Test" - }, - { - "accessToken": "Bearer 883f6750-6058-47fa-ab49-7390e65f5098", - "resourceId": "D-XXX-CSC-SMOKETEST-B", - "familyName": "XXX-CSC-Smoketest-B", - "bsn": "999990032", - "qualificationScript": "MedMij Medication Test" - }, - { - "accessToken": "Bearer 893d8122-6490-4d65-9621-6dda1abd1966", - "resourceId": "E-XXX-GBZ-SMOKETEST-A", - "familyName": "XXX-GBZ-Smoketest-A", - "bsn": "999990044", - "qualificationScript": "MedMij Medication Test" - }, - { - "accessToken": "Bearer 90bf84c3-1e1e-407d-94da-9e62d7ae7614", - "resourceId": "F-XXX-GBZ-SMOKETEST-B", - "familyName": "XXX-GBZ-Smoketest-B", - "bsn": "999990056", - "qualificationScript": "MedMij Medication Test" - }, - { - "accessToken": "Bearer 30f59e35-3210-4590-96c2-9b4ed43b6969", - "resourceId": "G-XXX-GBZ-SMOKETEST-C", - "familyName": "XXX-GBZ-Smoketest-C", - "bsn": "999990068", - "qualificationScript": "MedMij Medication Test" - }, - { - "accessToken": "Bearer 12c3813c-b72a-4928-98a6-5fe03467b470", - "resourceId": "nl-core-Patient-mp9-C-XXX-Dongen", - "familyName": "XXX_Dongen", - "bsn": "999900493", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer e2ff0738-c96f-4122-92db-5bd0bf0e5515", - "resourceId": "nl-core-Patient-mp9-D-XXX-Dijks", - "familyName": "XXX_Dijks", - "bsn": "999900468", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer 108df91b-1fd8-4430-8bef-a31450be3cee", - "resourceId": "nl-core-Patient-mp9-D-XXX-Dixhoorn", - "familyName": "XXX_Dixhoorn", - "bsn": "999900481", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer b568572b-e7bc-4b50-bedf-b05f2b08853d", - "resourceId": "nl-core-Patient-mp9-J-XXX-Bree", - "familyName": "XXX_Bree", - "bsn": "999901588", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer 82d0f2b8-14c3-4811-9ba5-ce14bfd6362d", - "resourceId": "nl-core-Patient-mp9-M-vandeXXX-RambaranMishre", - "familyName": "van de XXX_Rambaran Mishre", - "bsn": "999900948", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer db377ac5-180b-450b-be42-3bc681604b9f", - "resourceId": "nl-core-Patient-mp9-M-vandeXXX-Roelofs", - "familyName": "van de XXX_Roelofs", - "bsn": "999900973", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer 5dc971e7-78eb-401b-8f94-97d9df821979", - "resourceId": "nl-core-Patient-mp9-M-vandeXXX-Tewarie", - "familyName": "van de XXX_Tewarie", - "bsn": "999900961", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer ceaacc9c-7d53-4cee-a86f-895ff07551a5", - "resourceId": "nl-core-Patient-mp9-MXXX-Rambaldo", - "familyName": "XXX_Rambaldo", - "bsn": "999900936", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer c1a6704f-c57b-4b34-84b9-fd03914900c0", - "resourceId": "nl-core-Patient-mp9-N-XXX-Rozendal", - "familyName": "XXX_Rozendal", - "bsn": "999900985", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer ebb49739-aa96-4c74-b460-6cde1d1cf2ad", - "resourceId": "nl-core-Patient-mp9-R-vanXXX-Sonnenberg", - "familyName": "van XXX_Sonnenberg", - "bsn": "999901084", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer 79eaebe9-e18c-4169-b592-ce2f7cba3bd3", - "resourceId": "nl-core-Patient-mp9-R-XXX-Smitsz", - "familyName": "XXX_Smitsz", - "bsn": "999901072", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer 6fc70c51-bdda-422e-9eaa-899fe24c4ef9", - "resourceId": "XXX-Bals", - "familyName": "XXX_Bals", - "bsn": "999911478", - "qualificationScript": "MedMij GGZ" - }, - { - "accessToken": "Bearer 55180ef6-52b9-4ce2-954f-7f623b568bef", - "resourceId": "XXX-Walsen", - "familyName": "XXX_Walsen", - "bsn": "999911491", - "qualificationScript": "MedMij GGZ" - }, - { - "accessToken": "Bearer 25337a23-71e8-4e5a-93c0-1c92d517924c", - "resourceId": "XXX-Camp", - "familyName": "XXX_Camp", - "bsn": "999911788", - "qualificationScript": "MedMij AllergyIntolerance" - }, - { - "accessToken": "Bearer d8a50530-12b7-11ea-aaef-0800200c9a66", - "resourceId": "YYY-Camp20", - "familyName": "YYY_Camp20", - "bsn": "999988293", - "qualificationScript": "MedMij AllergyIntolerance" - }, - { - "accessToken": "Bearer ce28d649-a3ba-4d9c-99e6-d31f6a70476f", - "resourceId": "XXX-Mutter", - "familyName": "XXX_Mutter", - "bsn": "999911673", - "qualificationScript": "MedMij BGLZ" - }, - { - "accessToken": "Bearer e097ff15-c3a7-43a7-a190-70750e0be2c7", - "resourceId": "XXX-Valk", - "familyName": "XXX_Valk", - "bsn": "999911697", - "qualificationScript": "MedMij BGLZ" - }, - { - "accessToken": "Bearer c380d9d0-5567-4658-9c9e-94414a0d9ed9", - "resourceId": "nl-core-patient-eov-cert-1-1b-01", - "familyName": "XXX_Molog", - "bsn": "999900080", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer 4777580a-690e-44ce-8a3c-1e29d420ab40", - "resourceId": "nl-core-patient-eov-test-1-1b-01", - "familyName": "XXX_Altenborg", - "bsn": "999911612", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer 97294e63-092d-4554-a18a-9d60de7a726d", - "resourceId": "nl-core-patient-eov-test-1-1-01", - "familyName": "XXX_Altenborg", - "bsn": "999911612", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer afc1cfc0-6848-4ccb-a0a1-f87838301c31", - "resourceId": "nl-core-patient-eov-test-1-2b-01", - "familyName": "van_Clinteren-van_de_Put", - "bsn": "999999072", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer 7da0de73-a3ad-41af-9272-1a5e8f1113f2", - "resourceId": "nl-core-patient-eov-test-1-3b-01", - "familyName": "XXX_Ven", - "bsn": "999900018", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer ac282097-fffa-4edb-83db-3aaff8effc01", - "resourceId": "nl-core-patient-eov-test-1-4b-01", - "familyName": "XXX_Birkholz", - "bsn": "999900031", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer 90d9027e-8535-439d-a14b-ee4a1309bf56", - "resourceId": "XXX-Hondius", - "familyName": "van XXX_Hondius", - "bsn": "999900079", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer 6fa204d2-9d4d-4dba-9fd3-b40da5203d4a", - "resourceId": "nl-core-patient-eov-test-1-5-01", - "familyName": "van_de_XXX_Quigleys", - "bsn": "999900912", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer 80dd21a2-4a38-4de1-a4cb-e4def6007301", - "resourceId": "nl-core-patient-eov-test-1-6-01", - "familyName": "XXX_Arcken", - "bsn": "999900043", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer 44ef3c25-6a05-4668-ac1b-16beb0f7a82f", - "resourceId": "nl-core-patient-eov-test-1-7-01", - "familyName": "XXX_Schouten-Baak", - "bsn": "999900055", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer 8650115c-b5b4-40ea-82c9-dd2e8566ef2c", - "resourceId": "nl-core-patient-eov-test-1-8-01", - "familyName": "XXX_Koutrik", - "bsn": "999900067", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer 32c63064-7953-4f11-bf85-1ae7f23a8091", - "resourceId": "XXX-Sauter", - "familyName": "XXX_Sauter", - "bsn": "999911636", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer bcabe321-ef23-44f0-9a14-3fe10b622d64", - "resourceId": "XXX-Buckle", - "familyName": "XXX_Buckle", - "bsn": "999911454", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer ff7467f5-0f40-4c88-826c-f5bf4ecbd411", - "resourceId": "Sandbox-Driggers", - "familyName": "Sandbox-Driggers", - "bsn": "942768218", - "qualificationScript": "Sandbox Zelfmetingen" - }, - { - "accessToken": "Bearer b8a9596a-1301-4666-bc39-f5077bf5738d", - "resourceId": "Sandbox-Bramhall", - "familyName": "Sandbox-Bramhall", - "bsn": "857220226", - "qualificationScript": "Sandbox Zelfmetingen" - }, - { - "accessToken": "Bearer 1f5b4282-544e-4832-b370-eeb69eb758d4", - "resourceId": "XXX-testpatient", - "familyName": "XXX_testpatient", - "bsn": "00000000", - "qualificationScript": "Geboortezorg" - }, - { - "accessToken": "Bearer 9e5ad1fa-3461-4f55-a033-55eb961b290a", - "resourceId": "XXXVINK", - "familyName": "XXX_Vink", - "qualificationScript": "MedMij Questionnaires" - }, - { - "accessToken": "Bearer 0dd9618f-ac1f-4ecf-a5a1-440174706ddd", - "resourceId": "XXXBOUMANN", - "familyName": "XXX_Boumann", - "qualificationScript": "MedMij Questionnaires" - }, - { - "accessToken": "Bearer f9e46b63-c2cb-433c-a84e-2c02e0921c06", - "resourceId": "XXXREPSCHER", - "familyName": "XXX_Repscher", - "qualificationScript": "MedMij Questionnaires" - }, - { - "accessToken": "Bearer 21bb7b80-9f4b-11ea-ab12-0800200c9a66", - "resourceId": "XXX-TEST-D", - "familyName": "XXX-TEST-D", - "bsn": "999990238", - "qualificationScript": "MedMij AllergyIntolerance" - }, - { - "accessToken": "Bearer 2ede36e0-9f4b-11ea-ab12-0800200c9a66", - "resourceId": "XXX-TEST-F", - "familyName": "XXX-TEST-F", - "bsn": "999990251", - "qualificationScript": "MedMij AllergyIntolerance" - }, - { - "accessToken": "Bearer 76a3e3e0-c06a-11ea-8b6e-0800200c9a66", - "resourceId": "H-XXX-ARCHANGEL", - "familyName": "XXX_Archangel", - "bsn": "999910899", - "qualificationScript": "MP 907 POC Praktijktest" - }, - { - "accessToken": "Bearer 7f817b80-c06a-11ea-8b6e-0800200c9a66", - "resourceId": "D-XXX-FRANSSEN", - "familyName": "XXX_Franssen", - "bsn": "999910887", - "qualificationScript": "MP 907 POC Praktijktest" - }, - { - "accessToken": "Bearer 9d0084c7-332a-4ee9-81fb-4994e74e4c10", - "resourceId": "JAMILAJXXX-KWEE", - "familyName": "XXX_Kwee", - "bsn": "999900730", - "qualificationScript": "MedMij Geboortezorg" - }, - { - "accessToken": "Bearer 9d0084c7-332a-4ee9-81fb-4994e74e4c10", - "resourceId": "JAMALJXXX-KWEE", - "familyName": "XXX_Kwee", - "bsn": "999900730", - "qualificationScript": "MedMij Geboortezorg" - }, - { - "accessToken": "Bearer 9d0084c7-332a-4ee9-81fb-4994e74e4c10", - "resourceId": "JUSEFJXXX-KWEE", - "familyName": "XXX_Kwee", - "bsn": "999900730", - "qualificationScript": "MedMij Geboortezorg" - }, - { - "accessToken": "Bearer 53a606f4-3664-4fd6-bcfd-7559231821aa", - "resourceId": "HANNAHXXX-KOOIJ", - "familyName": "XXX_KOOIJ", - "bsn": "999900717", - "qualificationScript": "MedMij Geboortezorg" - }, - { - "accessToken": "Bearer 53a606f4-3664-4fd6-bcfd-7559231821aa", - "resourceId": "HELENXXX-KOOIJ", - "familyName": "XXX_KOOIJ", - "bsn": "999900717", - "qualificationScript": "MedMij Geboortezorg" - }, - { - "accessToken": "Bearer 0fccbba4-6740-11ed-9022-0242ac120002", - "resourceId": "JULIAJXXX-LAARHOVEN", - "familyName": "XXX-LAARHOVEN", - "bsn": "999900754", - "qualificationScript": "MedMij Geboortezorg" - }, - { - "accessToken": "Bearer 52d1157f-08fc-4519-8458-82427de17fb7", - "resourceId": "nl-core-Patient-1285290", - "familyName": "XXX_Helleman", - "bsn": "999911120", - "qualificationScript": "MedMij Dossierwijzigingsverzoek", - "txOutcomeAck": "true", - "txOutcomeAckText": "Je wijzigingsverzoek is ontvangen, neem voor meer informatie contact op met Test Medisch Centrum. Is de situatie levensbedreigend bel dan 112." - }, - { - "accessToken": "Bearer 7c0f1645-2ebb-44b6-a77d-88e18a88ea66", - "resourceId": "selfmeasurements-Patient-XXX-Smorenburg", - "familyName": "XXX_Smorenburg", - "bsn": "999901369", - "qualificationScript": "MedMij 2020.01 Test SelfMeasurements Retrieve/Serve" - }, - { - "accessToken": "Bearer 805b20d7-09e7-4e03-a08e-7e8c19e9f9df", - "resourceId": "selfmeasurements-Patient-XXX-Herder", - "familyName": "XXX_Herder", - "bsn": "999901370", - "qualificationScript": "MedMij 2020.01 Test SelfMeasurements Send/Receive" - }, - { - "accessToken": "Bearer aa474a5b-25b4-4bc9-a730-27a91776d91a", - "resourceId": "imm-Patient-03", - "familyName": "Bakker", - "bsn": "990003516", - "qualificationScript": "MedMij Immunisatie" - }, - { - "accessToken": "Bearer e7de2d44-22f2-11ed-861d-0242ac120002", - "resourceId": "imm-Patient-01", - "familyName": "van Putten", - "qualificationScript": "MedMij Immunisatie" - }, - { - "accessToken": "Bearer 60e3bbbe-3e2d-4ef3-a0da-d9bc1f3a3576", - "resourceId": "imm-Patient-02", - "familyName": "Pieterse", - "qualificationScript": "MedMij Immunisatie" - }, - { - "accessToken": "Bearer 4b9f7015-2f36-4c57-a69d-986f853ffcd5", - "resourceId": "imm-Patient-04", - "familyName": "Lucasz", - "bsn": "990003838", - "qualificationScript": "MedMij Immunisatie" - }, - { - "accessToken": "Bearer 7066cb09-a06b-45c0-84ac-e14368964bb1", - "resourceId": "imm-Patient-05", - "familyName": "van der Voorden-der Teeuwen", - "bsn": "990003863", - "qualificationScript": "MedMij Immunisatie" - }, - { - "accessToken": "Bearer b4917a9e-462f-11ed-b878-0242ac120002", - "resourceId": "DENNIS-D-DENNIS-JANSE", - "familyName": "Janse", - "bsn": "999999151", - "qualificationScript": "BgZ voor medisch-specialistische zorg" - }, - { - "accessToken": "Bearer c2035300-462f-11ed-b878-0242ac120002", - "resourceId": "MARIA-FRANCISCA-MF-MARIA-VAN-T-HOEN-VERHEUL", - "familyName": "van 't Hoen-Verheul", - "bsn": "999999092", - "qualificationScript": "BgZ voor medisch-specialistische zorg" - }, - { - "accessToken": "Bearer 7ce7c666-6f96-40a7-a8fa-922056cb18b4", - "resourceId": "medmij-bgz-test-patA", - "familyName": "XXX_Rijn", - "bsn": "999901382", - "qualificationScript": "MedMij BgZ Test" - }, - { - "accessToken": "Bearer 1ddbc5c4-9309-436d-b4c7-8416610c215c", - "resourceId": "medmij-bgz-test-patB", - "familyName": "XXX_Hoff", - "bsn": "999901394", - "qualificationScript": "MedMij BgZ Test" - } -] + { + "accessToken": "Bearer 2588b52d-c5ef-4cfa-84d4-acf8419a72e9", + "resourceId": "eAfspraak-Patient-kwalificatie1", + "familyName": "XXX_Verweij", + "bsn": "999911533", + "qualificationScript": "MedMij eAfspraken" + }, + { + "accessToken": "Bearer 48a1fb8a-82e5-4e72-b560-4924279bb57e", + "resourceId": "eAfspraak-Patient-kwalificatie2", + "familyName": "XXX_Zalentein", + "bsn": "999911582", + "qualificationScript": "MedMij eAfspraken" + }, + { + "accessToken": "Bearer ed772f1e-5c86-4a0b-af36-4a05a2059191", + "resourceId": "eAfspraak-Patient-kwalificatie3", + "familyName": "XXX_Egmond", + "bsn": "999911594", + "qualificationScript": "MedMij eAfspraken" + }, + { + "accessToken": "Bearer f92b6141-55db-46d5-a3ae-874b69907d22", + "resourceId": "example-pdfa-kwalificatie1", + "familyName": "XXX_Baltus", + "bsn": "999910796", + "qualificationScript": "MedMij PDF/A" + }, + { + "accessToken": "Bearer aae7b5aa-d796-4fba-b4d3-852d9043ee66", + "resourceId": "example-pdfa-kwalificatie2", + "familyName": "XXX_Schulte", + "bsn": "999910784", + "qualificationScript": "MedMij PDF/A" + }, + { + "accessToken": "Bearer 84b0da5a-3816-49ba-9df4-88bc089dd401", + "resourceId": "example-pdfa-kwalificatie3", + "familyName": "XXX_Ellens", + "bsn": "999910863", + "qualificationScript": "MedMij PDF/A" + }, + { + "accessToken": "Bearer 93cde269-ce35-4077-a39d-19296670e949", + "resourceId": "medmij-bgz-patient-ts-01", + "familyName": "XXX_Helleman", + "bsn": "999911120", + "qualificationScript": "MedMij BGZ" + }, + { + "accessToken": "Bearer 6056a9eb-da6a-45dc-b557-e854e138af8f", + "resourceId": "medmij-bgz-patient-ts-02", + "familyName": "XXX_Mesker", + "bsn": "999911284", + "qualificationScript": "MedMij BGZ" + }, + { + "accessToken": "Bearer d9f8d61b-c236-489f-aba5-b3bebd312c30", + "resourceId": "selfmeasurement-patient-kwalificatie1", + "familyName": "XXX_Bourgonjee", + "bsn": "999911302", + "qualificationScript": "MedMij Zelfmetingen" + }, + { + "accessToken": "Bearer 06bbe01d-b3cb-4028-8b1c-f731d0241b57", + "resourceId": "selfmeasurement-patient-kwalificatie2", + "familyName": "XXX_Bergzoon", + "bsn": "999911259", + "qualificationScript": "MedMij Zelfmetingen" + }, + { + "accessToken": "Bearer f5a06257-2498-4442-96e7-98bf5708d6ae", + "resourceId": "selfmeasurements-2020-01-patient-kwalificatie1", + "familyName": "XXX_Bourgonjee", + "bsn": "999911302", + "qualificationScript": "MedMij Zelfmetingen 2020.01" + }, + { + "accessToken": "Bearer 2405ec76-1fc0-4c5a-8963-1b3c8abb130b", + "resourceId": "selfmeasurements-2020-01-patient-kwalificatie2", + "familyName": "XXX_Bergzoon", + "bsn": "999911259", + "qualificationScript": "MedMij Zelfmetingen 2020.01" + }, + { + "accessToken": "Bearer 14bc6cc6-7b7b-4c29-b662-c5284d76cf3c", + "resourceId": "laboratoryresults-patient-kwalificatie1", + "familyName": "XXX_Aantrekker", + "bsn": "999910450", + "qualificationScript": "MedMij Lab" + }, + { + "accessToken": "Bearer 0aed465d-aab0-4417-9b3c-e6f635892fea", + "resourceId": "gpdata-patient-kwalificatie1", + "familyName": "XXX_Cevat", + "bsn": "999911132", + "qualificationScript": "MedMij Huisarts" + }, + { + "accessToken": "Bearer 5d0d5475-9609-4e91-bbca-c466ed704952", + "resourceId": "XXX-Yong", + "familyName": "XXX_Yong", + "bsn": "999911776", + "qualificationScript": "MedMij AllergyIntolerance" + }, + { + "accessToken": "Bearer 327aea20-12b8-11ea-aaef-0800200c9a66", + "resourceId": "YYY-Yong20", + "familyName": "YYY_Yong20", + "bsn": "999988402", + "qualificationScript": "MedMij AllergyIntolerance" + }, + { + "accessToken": "Bearer 3daef240-ee84-11e9-aaef-0800200c9a66", + "resourceId": "XXX-Stalewska", + "familyName": "XXX_Stalewska", + "bsn": "999911235", + "qualificationScript": "MedMij AllergyIntolerance" + }, + { + "accessToken": "Bearer 473b7ca0-f0f7-11e9-aaef-0800200c9a66", + "resourceId": "XXX-Smits", + "familyName": "XXX_Smits", + "bsn": "999911223", + "qualificationScript": "MedMij AllergyIntolerance" + }, + { + "accessToken": "Bearer 8c6e2d90-f0f7-11e9-aaef-0800200c9a66", + "resourceId": "XXX-Daalen", + "familyName": "XXX_Daalen", + "bsn": "999911247", + "qualificationScript": "MedMij AllergyIntolerance" + }, + { + "accessToken": "Bearer c980c4c9-a6d7-41d2-b541-5284f33b2f75", + "resourceId": "XXX-BOURGONJE", + "familyName": "XXX_Bourgonje", + "bsn": "999911296", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 31d4a33c-75a7-44a0-ba5c-2722971a0b85", + "resourceId": "XXX-GOBEE", + "familyName": "XXX_Gobee", + "bsn": "999911314", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer e2696872-f855-4283-a01b-c0db9c50bde2", + "resourceId": "XXX-DIRKSZ", + "familyName": "XXX_Dirksz", + "bsn": "999911326", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer b086604e-af06-48ae-bb7a-d099b4ebbf89", + "resourceId": "XXX-STRENGERSZ", + "familyName": "XXX_Strengersz", + "bsn": "999911338", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 72538476-32d0-4f7f-80c7-bb12a1872d8e", + "resourceId": "XXX-RUYS", + "familyName": "XXX_Ruys", + "bsn": "999911351", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 56fddbdf-cf49-41e1-b261-5ff7466c54a5", + "resourceId": "XXX-CNOSSEN", + "familyName": "XXX_Cnossen", + "bsn": "999911740", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 9981f7ad-f22b-4a99-be31-68145536f9de", + "resourceId": "XXX-KILKENNY", + "familyName": "XXX_Kilkenny", + "bsn": "999911752", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer d30f66ca-288d-44ea-aae0-659400d3ff42", + "resourceId": "XXX-AMAYA", + "familyName": "XXX_Amaya", + "bsn": "999911764", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 453863d0-0aa1-42e4-9201-7ca7e061520c", + "resourceId": "ADELAAR", + "familyName": "Adelaar", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer b373ae26-3452-4c19-8865-806aa503b9d0", + "resourceId": "BERKEN", + "familyName": "van der Berken", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 3c5c5d2d-587a-4aa0-9aa0-a4ec0641531f", + "resourceId": "CREIENS", + "familyName": "Creiens", + "bsn": "999999060", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 088c319c-e22d-4d8b-b65c-c3f2d76b7ec6", + "resourceId": "DIREN", + "familyName": "Direnç", + "bsn": "555555914", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 2ecfcf66-af45-4290-ab7c-6b7c3d10a452", + "resourceId": "HENEGOUWEN", + "familyName": "van Henegouwen", + "bsn": "555555112", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer acc0c081-ece5-4760-bfd9-ce61d1450406", + "resourceId": "SLUIS", + "familyName": "van der Sluis", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer dcdfe220-0fb9-470c-8721-08fd966fbea1", + "resourceId": "VEENOORD", + "familyName": "Veenoord", + "bsn": "555555021", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer acd68d8c-9394-4aee-8aa7-f7f81183e0d3", + "resourceId": "XXX-BEKKER", + "familyName": "XXX_BEKKER", + "bsn": "999911715", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer bde481d0-311a-4ca4-9cd6-334db51b7f54", + "resourceId": "XXX-JANKIE", + "familyName": "XXX_Jankie", + "bsn": "999910437", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 99b14b9a-a112-49d4-934b-10145cd353ba", + "resourceId": "XXX-ZUTPHEN", + "familyName": "van XXX_Zutphen", + "bsn": "999910498", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 13ac391e-e9f2-40b8-a15c-bb8d896009b9", + "resourceId": "XXX-MOLENAARS", + "familyName": "XXX_Molenaars", + "bsn": "999910449", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 7cac059d-47e7-4026-9f69-b826921305ae", + "resourceId": "XXX-BOSCHMAN", + "familyName": "van de XXX_Boschman", + "bsn": "999912100", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 29fe6dc3-deb8-4d5a-b7f1-a5e407e962d3", + "resourceId": "XXX-VONKER", + "familyName": "XXX_Vonker", + "bsn": "999910401", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer b289543a-03e0-4d2a-90c1-6edc3e53a314", + "resourceId": "XXX-INCIDENT-A", + "familyName": "XXX-Incident-A", + "bsn": "999990159", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer af8c760b-ce0b-4b8b-a5b0-bdd973439d12", + "resourceId": "XXX-MAASZ", + "familyName": "XXX_Maasz", + "bsn": "999910747", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 461b4db0-73fa-4ee8-a807-7d24fe8d139c", + "resourceId": "XXX-Kester", + "familyName": "van XXX_Kester", + "bsn": "999911557", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 828138a3-a871-4657-99a4-6a72b07038c7", + "resourceId": "XXX-TEST-E", + "familyName": "XXX_TEST_E", + "bsn": "999990196", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 761549f5-112d-49be-a20d-3874783b4ca7", + "resourceId": "C-XXX-CSC-SMOKETEST-A", + "familyName": "XXX-CSC-Smoketest-A", + "bsn": "999990020", + "qualificationScript": "MedMij Medication Test" + }, + { + "accessToken": "Bearer 883f6750-6058-47fa-ab49-7390e65f5098", + "resourceId": "D-XXX-CSC-SMOKETEST-B", + "familyName": "XXX-CSC-Smoketest-B", + "bsn": "999990032", + "qualificationScript": "MedMij Medication Test" + }, + { + "accessToken": "Bearer 893d8122-6490-4d65-9621-6dda1abd1966", + "resourceId": "E-XXX-GBZ-SMOKETEST-A", + "familyName": "XXX-GBZ-Smoketest-A", + "bsn": "999990044", + "qualificationScript": "MedMij Medication Test" + }, + { + "accessToken": "Bearer 90bf84c3-1e1e-407d-94da-9e62d7ae7614", + "resourceId": "F-XXX-GBZ-SMOKETEST-B", + "familyName": "XXX-GBZ-Smoketest-B", + "bsn": "999990056", + "qualificationScript": "MedMij Medication Test" + }, + { + "accessToken": "Bearer 30f59e35-3210-4590-96c2-9b4ed43b6969", + "resourceId": "G-XXX-GBZ-SMOKETEST-C", + "familyName": "XXX-GBZ-Smoketest-C", + "bsn": "999990068", + "qualificationScript": "MedMij Medication Test" + }, + { + "accessToken": "Bearer 12c3813c-b72a-4928-98a6-5fe03467b470", + "resourceId": "nl-core-Patient-mp9-C-XXX-Dongen", + "familyName": "XXX_Dongen", + "bsn": "999900493", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer e2ff0738-c96f-4122-92db-5bd0bf0e5515", + "resourceId": "nl-core-Patient-mp9-D-XXX-Dijks", + "familyName": "XXX_Dijks", + "bsn": "999900468", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer 108df91b-1fd8-4430-8bef-a31450be3cee", + "resourceId": "nl-core-Patient-mp9-D-XXX-Dixhoorn", + "familyName": "XXX_Dixhoorn", + "bsn": "999900481", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer b568572b-e7bc-4b50-bedf-b05f2b08853d", + "resourceId": "nl-core-Patient-mp9-J-XXX-Bree", + "familyName": "XXX_Bree", + "bsn": "999901588", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer 82d0f2b8-14c3-4811-9ba5-ce14bfd6362d", + "resourceId": "nl-core-Patient-mp9-M-vandeXXX-RambaranMishre", + "familyName": "van de XXX_Rambaran Mishre", + "bsn": "999900948", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer db377ac5-180b-450b-be42-3bc681604b9f", + "resourceId": "nl-core-Patient-mp9-M-vandeXXX-Roelofs", + "familyName": "van de XXX_Roelofs", + "bsn": "999900973", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer 5dc971e7-78eb-401b-8f94-97d9df821979", + "resourceId": "nl-core-Patient-mp9-M-vandeXXX-Tewarie", + "familyName": "van de XXX_Tewarie", + "bsn": "999900961", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer ceaacc9c-7d53-4cee-a86f-895ff07551a5", + "resourceId": "nl-core-Patient-mp9-MXXX-Rambaldo", + "familyName": "XXX_Rambaldo", + "bsn": "999900936", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer c1a6704f-c57b-4b34-84b9-fd03914900c0", + "resourceId": "nl-core-Patient-mp9-N-XXX-Rozendal", + "familyName": "XXX_Rozendal", + "bsn": "999900985", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer ebb49739-aa96-4c74-b460-6cde1d1cf2ad", + "resourceId": "nl-core-Patient-mp9-R-vanXXX-Sonnenberg", + "familyName": "van XXX_Sonnenberg", + "bsn": "999901084", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer 79eaebe9-e18c-4169-b592-ce2f7cba3bd3", + "resourceId": "nl-core-Patient-mp9-R-XXX-Smitsz", + "familyName": "XXX_Smitsz", + "bsn": "999901072", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer a627ebfc-101c-11ee-be56-0242ac120002", + "resourceId": "nl-core-Patient-mp9-S-XXX-Tewariem", + "familyName": "XXX_Tewariem", + "bsn": "999901126", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer f3cb77e1-e2e8-4017-af3d-3627929f98c6", + "resourceId": "nl-core-Patient-mp9-C-XXX-Dijk", + "familyName": "XXX_Dijk", + "bsn": "999900456", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer 6fc70c51-bdda-422e-9eaa-899fe24c4ef9", + "resourceId": "XXX-Bals", + "familyName": "XXX_Bals", + "bsn": "999911478", + "qualificationScript": "MedMij GGZ" + }, + { + "accessToken": "Bearer 55180ef6-52b9-4ce2-954f-7f623b568bef", + "resourceId": "XXX-Walsen", + "familyName": "XXX_Walsen", + "bsn": "999911491", + "qualificationScript": "MedMij GGZ" + }, + { + "accessToken": "Bearer 25337a23-71e8-4e5a-93c0-1c92d517924c", + "resourceId": "XXX-Camp", + "familyName": "XXX_Camp", + "bsn": "999911788", + "qualificationScript": "MedMij AllergyIntolerance" + }, + { + "accessToken": "Bearer d8a50530-12b7-11ea-aaef-0800200c9a66", + "resourceId": "YYY-Camp20", + "familyName": "YYY_Camp20", + "bsn": "999988293", + "qualificationScript": "MedMij AllergyIntolerance" + }, + { + "accessToken": "Bearer ce28d649-a3ba-4d9c-99e6-d31f6a70476f", + "resourceId": "XXX-Mutter", + "familyName": "XXX_Mutter", + "bsn": "999911673", + "qualificationScript": "MedMij BGLZ" + }, + { + "accessToken": "Bearer e097ff15-c3a7-43a7-a190-70750e0be2c7", + "resourceId": "XXX-Valk", + "familyName": "XXX_Valk", + "bsn": "999911697", + "qualificationScript": "MedMij BGLZ" + }, + { + "accessToken": "Bearer c380d9d0-5567-4658-9c9e-94414a0d9ed9", + "resourceId": "nl-core-patient-eov-cert-1-1b-01", + "familyName": "XXX_Molog", + "bsn": "999900080", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer 4777580a-690e-44ce-8a3c-1e29d420ab40", + "resourceId": "nl-core-patient-eov-test-1-1b-01", + "familyName": "XXX_Altenborg", + "bsn": "999911612", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer 97294e63-092d-4554-a18a-9d60de7a726d", + "resourceId": "nl-core-patient-eov-test-1-1-01", + "familyName": "XXX_Altenborg", + "bsn": "999911612", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer afc1cfc0-6848-4ccb-a0a1-f87838301c31", + "resourceId": "nl-core-patient-eov-test-1-2b-01", + "familyName": "van_Clinteren-van_de_Put", + "bsn": "999999072", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer 7da0de73-a3ad-41af-9272-1a5e8f1113f2", + "resourceId": "nl-core-patient-eov-test-1-3b-01", + "familyName": "XXX_Ven", + "bsn": "999900018", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer ac282097-fffa-4edb-83db-3aaff8effc01", + "resourceId": "nl-core-patient-eov-test-1-4b-01", + "familyName": "XXX_Birkholz", + "bsn": "999900031", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer 90d9027e-8535-439d-a14b-ee4a1309bf56", + "resourceId": "XXX-Hondius", + "familyName": "van XXX_Hondius", + "bsn": "999900079", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer 6fa204d2-9d4d-4dba-9fd3-b40da5203d4a", + "resourceId": "nl-core-patient-eov-test-1-5-01", + "familyName": "van_de_XXX_Quigleys", + "bsn": "999900912", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer 80dd21a2-4a38-4de1-a4cb-e4def6007301", + "resourceId": "nl-core-patient-eov-test-1-6-01", + "familyName": "XXX_Arcken", + "bsn": "999900043", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer 44ef3c25-6a05-4668-ac1b-16beb0f7a82f", + "resourceId": "nl-core-patient-eov-test-1-7-01", + "familyName": "XXX_Schouten-Baak", + "bsn": "999900055", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer 8650115c-b5b4-40ea-82c9-dd2e8566ef2c", + "resourceId": "nl-core-patient-eov-test-1-8-01", + "familyName": "XXX_Koutrik", + "bsn": "999900067", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer 32c63064-7953-4f11-bf85-1ae7f23a8091", + "resourceId": "XXX-Sauter", + "familyName": "XXX_Sauter", + "bsn": "999911636", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer bcabe321-ef23-44f0-9a14-3fe10b622d64", + "resourceId": "XXX-Buckle", + "familyName": "XXX_Buckle", + "bsn": "999911454", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer ff7467f5-0f40-4c88-826c-f5bf4ecbd411", + "resourceId": "Sandbox-Driggers", + "familyName": "Sandbox-Driggers", + "bsn": "942768218", + "qualificationScript": "Sandbox Zelfmetingen" + }, + { + "accessToken": "Bearer b8a9596a-1301-4666-bc39-f5077bf5738d", + "resourceId": "Sandbox-Bramhall", + "familyName": "Sandbox-Bramhall", + "bsn": "857220226", + "qualificationScript": "Sandbox Zelfmetingen" + }, + { + "accessToken": "Bearer 1f5b4282-544e-4832-b370-eeb69eb758d4", + "resourceId": "XXX-testpatient", + "familyName": "XXX_testpatient", + "bsn": "00000000", + "qualificationScript": "Geboortezorg" + }, + { + "accessToken": "Bearer 9e5ad1fa-3461-4f55-a033-55eb961b290a", + "resourceId": "XXXVINK", + "familyName": "XXX_Vink", + "qualificationScript": "MedMij Questionnaires" + }, + { + "accessToken": "Bearer 0dd9618f-ac1f-4ecf-a5a1-440174706ddd", + "resourceId": "XXXBOUMANN", + "familyName": "XXX_Boumann", + "qualificationScript": "MedMij Questionnaires" + }, + { + "accessToken": "Bearer f9e46b63-c2cb-433c-a84e-2c02e0921c06", + "resourceId": "XXXREPSCHER", + "familyName": "XXX_Repscher", + "qualificationScript": "MedMij Questionnaires" + }, + { + "accessToken": "Bearer 21bb7b80-9f4b-11ea-ab12-0800200c9a66", + "resourceId": "XXX-TEST-D", + "familyName": "XXX-TEST-D", + "bsn": "999990238", + "qualificationScript": "MedMij AllergyIntolerance" + }, + { + "accessToken": "Bearer 2ede36e0-9f4b-11ea-ab12-0800200c9a66", + "resourceId": "XXX-TEST-F", + "familyName": "XXX-TEST-F", + "bsn": "999990251", + "qualificationScript": "MedMij AllergyIntolerance" + }, + { + "accessToken": "Bearer 76a3e3e0-c06a-11ea-8b6e-0800200c9a66", + "resourceId": "H-XXX-ARCHANGEL", + "familyName": "XXX_Archangel", + "bsn": "999910899", + "qualificationScript": "MP 907 POC Praktijktest" + }, + { + "accessToken": "Bearer 7f817b80-c06a-11ea-8b6e-0800200c9a66", + "resourceId": "D-XXX-FRANSSEN", + "familyName": "XXX_Franssen", + "bsn": "999910887", + "qualificationScript": "MP 907 POC Praktijktest" + }, + { + "accessToken": "Bearer 9d0084c7-332a-4ee9-81fb-4994e74e4c10", + "resourceId": "JAMILAJXXX-KWEE", + "familyName": "XXX_Kwee", + "bsn": "999900730", + "qualificationScript": "MedMij Geboortezorg" + }, + { + "accessToken": "Bearer 9d0084c7-332a-4ee9-81fb-4994e74e4c10", + "resourceId": "JAMALJXXX-KWEE", + "familyName": "XXX_Kwee", + "bsn": "999900730", + "qualificationScript": "MedMij Geboortezorg" + }, + { + "accessToken": "Bearer 9d0084c7-332a-4ee9-81fb-4994e74e4c10", + "resourceId": "JUSEFJXXX-KWEE", + "familyName": "XXX_Kwee", + "bsn": "999900730", + "qualificationScript": "MedMij Geboortezorg" + }, + { + "accessToken": "Bearer 53a606f4-3664-4fd6-bcfd-7559231821aa", + "resourceId": "HANNAHXXX-KOOIJ", + "familyName": "XXX_KOOIJ", + "bsn": "999900717", + "qualificationScript": "MedMij Geboortezorg" + }, + { + "accessToken": "Bearer 53a606f4-3664-4fd6-bcfd-7559231821aa", + "resourceId": "HELENXXX-KOOIJ", + "familyName": "XXX_KOOIJ", + "bsn": "999900717", + "qualificationScript": "MedMij Geboortezorg" + }, + { + "accessToken": "Bearer 0fccbba4-6740-11ed-9022-0242ac120002", + "resourceId": "JULIAJXXX-LAARHOVEN", + "familyName": "XXX-LAARHOVEN", + "bsn": "999900754", + "qualificationScript": "MedMij Geboortezorg" + }, + { + "accessToken": "Bearer 52d1157f-08fc-4519-8458-82427de17fb7", + "resourceId": "nl-core-Patient-1285290", + "familyName": "XXX_Helleman", + "bsn": "999911120", + "qualificationScript": "MedMij Dossierwijzigingsverzoek", + "txOutcomeAck": "true", + "txOutcomeAckText": "Je wijzigingsverzoek is ontvangen, neem voor meer informatie contact op met Test Medisch Centrum. Is de situatie levensbedreigend bel dan 112." + }, + { + "accessToken": "Bearer 7c0f1645-2ebb-44b6-a77d-88e18a88ea66", + "resourceId": "selfmeasurements-Patient-XXX-Smorenburg", + "familyName": "XXX_Smorenburg", + "bsn": "999901369", + "qualificationScript": "MedMij 2020.01 Test SelfMeasurements Retrieve/Serve" + }, + { + "accessToken": "Bearer 805b20d7-09e7-4e03-a08e-7e8c19e9f9df", + "resourceId": "selfmeasurements-Patient-XXX-Herder", + "familyName": "XXX_Herder", + "bsn": "999901370", + "qualificationScript": "MedMij 2020.01 Test SelfMeasurements Send/Receive" + }, + { + "accessToken": "Bearer aa474a5b-25b4-4bc9-a730-27a91776d91a", + "resourceId": "imm-Patient-03", + "familyName": "Bakker", + "bsn": "990003516", + "qualificationScript": "MedMij Immunisatie" + }, + { + "accessToken": "Bearer e7de2d44-22f2-11ed-861d-0242ac120002", + "resourceId": "imm-Patient-01", + "familyName": "van Putten", + "qualificationScript": "MedMij Immunisatie" + }, + { + "accessToken": "Bearer 60e3bbbe-3e2d-4ef3-a0da-d9bc1f3a3576", + "resourceId": "imm-Patient-02", + "familyName": "Pieterse", + "qualificationScript": "MedMij Immunisatie" + }, + { + "accessToken": "Bearer 4b9f7015-2f36-4c57-a69d-986f853ffcd5", + "resourceId": "imm-Patient-04", + "familyName": "Lucasz", + "bsn": "990003838", + "qualificationScript": "MedMij Immunisatie" + }, + { + "accessToken": "Bearer 7066cb09-a06b-45c0-84ac-e14368964bb1", + "resourceId": "imm-Patient-05", + "familyName": "van der Voorden-der Teeuwen", + "bsn": "990003863", + "qualificationScript": "MedMij Immunisatie" + }, + { + "accessToken": "Bearer b4917a9e-462f-11ed-b878-0242ac120002", + "resourceId": "DENNIS-D--DENNIS-JANSE", + "familyName": "Janse", + "bsn": "999999151", + "qualificationScript": "BgZ voor medisch-specialistische zorg" + }, + { + "accessToken": "Bearer c2035300-462f-11ed-b878-0242ac120002", + "resourceId": "MARIA-FRANCISCA-M-F--MARIA-VAN-T-HOEN-VERHEUL", + "familyName": "van 't Hoen-Verheul", + "bsn": "999999092", + "qualificationScript": "BgZ voor medisch-specialistische zorg" + }, + { + "accessToken": "Bearer 7ce7c666-6f96-40a7-a8fa-922056cb18b4", + "resourceId": "medmij-bgz-test-patA", + "familyName": "XXX_Rijn", + "bsn": "999901382", + "qualificationScript": "MedMij BgZ Test" + }, + { + "accessToken": "Bearer 1ddbc5c4-9309-436d-b4c7-8416610c215c", + "resourceId": "medmij-bgz-test-patB", + "familyName": "XXX_Hoff", + "bsn": "999901394", + "qualificationScript": "MedMij BgZ Test" + }, + { + "accessToken": "Bearer 5d43166e-0d05-4ce5-8860-e4151ce44566", + "resourceId": "patient-van-de-XXX-Broekmeulen", + "familyName": "van de XXX_Broekmeulen", + "bsn": "999900134", + "qualificationScript": "CiO Test" + }, + { + "accessToken": "Bearer a00e10e0-0bee-4f0f-9974-1e92f02e6d92", + "resourceId": "patient-van-XXX-Lonkhuijsen", + "familyName": "van XXX_Lonkhuijsen", + "bsn": "999900171", + "qualificationScript": "CiO Test" + }, + { + "accessToken": "Bearer 2cabfc9e-6d89-4551-9183-6569699ce58f", + "resourceId": "patient-van-XXX-Verbeek", + "familyName": "van XXX_Verbeek", + "bsn": "999900110", + "qualificationScript": "CiO Test" + }, + { + "accessToken": "Bearer 09d40afb-c56f-4b68-80f8-c7b605786431", + "resourceId": "patient-XXX-Gerrits", + "familyName": "XXX_Gerrits", + "bsn": "999900158", + "qualificationScript": "CiO Test" + }, + { + "accessToken": "Bearer 1af5a4f1-2d8f-45dd-9b7c-669ba6daced0", + "resourceId": "patient-XXX-Habiboellah", + "familyName": "XXX_Habiboellah", + "bsn": "999900122", + "qualificationScript": "CiO Test" + }, + { + "accessToken": "Bearer 9cab5c29-c383-4bcf-b0a7-878f818611a4", + "resourceId": "patient-XXX-Roelfsema", + "familyName": "XXX_Roelfsema", + "bsn": "999900146", + "qualificationScript": "CiO Test" + }, + { + "accessToken": "Bearer 36c93d00-6e6e-11ee-807c-0800200c9a66", + "resourceId": "nl-core-Patient-mp9-G-XXX-Groot", + "familyName": "XXX_Groot", + "bsn": "999900596", + "qualificationScript": "MP9 Cert" + }, + { + "accessToken": "Bearer 80fb12e0-6e6e-11ee-807c-0800200c9a66", + "resourceId": "nl-core-Patient-mp9-HdeXXX-Huyser", + "familyName": "XXX_Huyser", + "bsn": "999900663", + "qualificationScript": "MP9 Cert" + }, + { + "accessToken": "Bearer a9cce720-6e6e-11ee-807c-0800200c9a66", + "resourceId": "nl-core-Patient-mp9-HvandeXXX-Kamphuis", + "familyName": "XXX_Kamphuis", + "bsn": "999900675", + "qualificationScript": "MP9 Cert" + }, + { + "accessToken": "Bearer d62ff870-6e6e-11ee-807c-0800200c9a66", + "resourceId": "nl-core-Patient-mp9-IXXX-Klerk", + "familyName": "XXX_Klerk", + "bsn": "999900699", + "qualificationScript": "MP9 Cert" + }, + { + "accessToken": "Bearer f4d287c0-6e6e-11ee-807c-0800200c9a66", + "resourceId": "nl-core-Patient-mp9-MXXX-Oorschot", + "familyName": "XXX_Oorschot", + "bsn": "999900869", + "qualificationScript": "MP9 Cert" + }, + { + "accessToken": "Bearer 0e8693f0-6e6f-11ee-807c-0800200c9a66", + "resourceId": "nl-core-Patient-mp9-TThemanagerXXX-Braak", + "familyName": "XXX_Braak", + "bsn": "999900651", + "qualificationScript": "MP9 Cert" + }, + { + "accessToken": "Bearer 6e76f8e0-6e6f-11ee-807c-0800200c9a66", + "resourceId": "nl-core-Patient-mp9-W-XXX-Verwijmeren", + "familyName": "XXX_Verwijmeren", + "bsn": "999901175", + "qualificationScript": "MP9 Cert" + }, + { + "accessToken": "Bearer 9we86dg8-aab0-4417-9b3c-e6f635892fea", + "resourceId": "patient-XXX-Andrioli", + "familyName": "XXX_Andrioli", + "bsn": "999900262", + "qualificationScript": "ELZ Test (beta)" + }, + { + "accessToken": "Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea", + "resourceId": "patient-van-XXX-Sanderink-de-Kok", + "familyName": "van XXX_Sanderink", + "bsn": "999900250", + "qualificationScript": "ELZ Test (beta)" + }, + { + "accessToken": "Bearer 848561e6-1ef9-11ee-be56-0242ac120002", + "resourceId": "Nictiz-internal-patient", + "qualificationScript": "Test patient for internal purposes" + } +] \ No newline at end of file diff --git a/Configuration/QualificationTokensStaging.json b/Configuration/QualificationTokensStaging.json index d33ffb68e0..481e7d89ed 100644 --- a/Configuration/QualificationTokensStaging.json +++ b/Configuration/QualificationTokensStaging.json @@ -1,745 +1,820 @@ [ - { - "accessToken": "Bearer 2588b52d-c5ef-4cfa-84d4-acf8419a72e9", - "resourceId": "eAfspraak-Patient-kwalificatie1", - "familyName": "XXX_Verweij", - "bsn": "999911533", - "qualificationScript": "MedMij eAfspraken" - }, - { - "accessToken": "Bearer 48a1fb8a-82e5-4e72-b560-4924279bb57e", - "resourceId": "eAfspraak-Patient-kwalificatie2", - "familyName": "XXX_Zalentein", - "bsn": "999911582", - "qualificationScript": "MedMij eAfspraken" - }, - { - "accessToken": "Bearer ed772f1e-5c86-4a0b-af36-4a05a2059191", - "resourceId": "eAfspraak-Patient-kwalificatie3", - "familyName": "XXX_Egmond", - "bsn": "999911594", - "qualificationScript": "MedMij eAfspraken" - }, - { - "accessToken": "Bearer f92b6141-55db-46d5-a3ae-874b69907d22", - "resourceId": "example-pdfa-kwalificatie1", - "familyName": "XXX_Baltus", - "bsn": "999910796", - "qualificationScript": "MedMij PDF/A" - }, - { - "accessToken": "Bearer aae7b5aa-d796-4fba-b4d3-852d9043ee66", - "resourceId": "example-pdfa-kwalificatie2", - "familyName": "XXX_Schulte", - "bsn": "999910784", - "qualificationScript": "MedMij PDF/A" - }, - { - "accessToken": "Bearer 84b0da5a-3816-49ba-9df4-88bc089dd401", - "resourceId": "example-pdfa-kwalificatie3", - "familyName": "XXX_Ellens", - "bsn": "999910863", - "qualificationScript": "MedMij PDF/A" - }, - { - "accessToken": "Bearer 93cde269-ce35-4077-a39d-19296670e949", - "resourceId": "medmij-bgz-patient-ts-01", - "familyName": "XXX_Helleman", - "bsn": "999911120", - "qualificationScript": "MedMij BGZ" - }, - { - "accessToken": "Bearer 6056a9eb-da6a-45dc-b557-e854e138af8f", - "resourceId": "medmij-bgz-patient-ts-02", - "familyName": "XXX_Mesker", - "bsn": "999911284", - "qualificationScript": "MedMij BGZ" - }, - { - "accessToken": "Bearer d9f8d61b-c236-489f-aba5-b3bebd312c30", - "resourceId": "selfmeasurement-patient-kwalificatie1", - "familyName": "XXX_Bourgonjee", - "bsn": "999911302", - "qualificationScript": "MedMij Zelfmetingen" - }, - { - "accessToken": "Bearer 06bbe01d-b3cb-4028-8b1c-f731d0241b57", - "resourceId": "selfmeasurement-patient-kwalificatie2", - "familyName": "XXX_Bergzoon", - "bsn": "999911259", - "qualificationScript": "MedMij Zelfmetingen" - }, - { - "accessToken": "Bearer f5a06257-2498-4442-96e7-98bf5708d6ae", - "resourceId": "selfmeasurements-2020-01-patient-kwalificatie1", - "familyName": "XXX_Bourgonjee", - "bsn": "999911302", - "qualificationScript": "MedMij Zelfmetingen 2020.01" - }, - { - "accessToken": "Bearer 2405ec76-1fc0-4c5a-8963-1b3c8abb130b", - "resourceId": "selfmeasurements-2020-01-patient-kwalificatie2", - "familyName": "XXX_Bergzoon", - "bsn": "999911259", - "qualificationScript": "MedMij Zelfmetingen 2020.01" - }, - { - "accessToken": "Bearer 14bc6cc6-7b7b-4c29-b662-c5284d76cf3c", - "resourceId": "laboratoryresults-patient-kwalificatie1", - "familyName": "XXX_Aantrekker", - "bsn": "999910450", - "qualificationScript": "MedMij Lab" - }, - { - "accessToken": "Bearer 0aed465d-aab0-4417-9b3c-e6f635892fea", - "resourceId": "gpdata-patient-kwalificatie1", - "familyName": "XXX_Cevat", - "bsn": "999911132", - "qualificationScript": "MedMij Huisarts" - }, - { - "accessToken": "Bearer 5d0d5475-9609-4e91-bbca-c466ed704952", - "resourceId": "XXX-Yong", - "familyName": "XXX_Yong", - "bsn": "999911776", - "qualificationScript": "MedMij AllergyIntolerance" - }, - { - "accessToken": "Bearer 327aea20-12b8-11ea-aaef-0800200c9a66", - "resourceId": "YYY-Yong20", - "familyName": "YYY_Yong20", - "bsn": "999988402", - "qualificationScript": "MedMij AllergyIntolerance" - }, - { - "accessToken": "Bearer 3daef240-ee84-11e9-aaef-0800200c9a66", - "resourceId": "XXX-Stalewska", - "familyName": "XXX_Stalewska", - "bsn": "999911235", - "qualificationScript": "MedMij AllergyIntolerance" - }, - { - "accessToken": "Bearer 473b7ca0-f0f7-11e9-aaef-0800200c9a66", - "resourceId": "XXX-Smits", - "familyName": "XXX_Smits", - "bsn": "999911223", - "qualificationScript": "MedMij AllergyIntolerance" - }, - { - "accessToken": "Bearer 8c6e2d90-f0f7-11e9-aaef-0800200c9a66", - "resourceId": "XXX-Daalen", - "familyName": "XXX_Daalen", - "bsn": "999911247", - "qualificationScript": "MedMij AllergyIntolerance" - }, - { - "accessToken": "Bearer c980c4c9-a6d7-41d2-b541-5284f33b2f75", - "resourceId": "XXX-BOURGONJE", - "familyName": "XXX_Bourgonje", - "bsn": "999911296", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 31d4a33c-75a7-44a0-ba5c-2722971a0b85", - "resourceId": "XXX-GOBEE", - "familyName": "XXX_Gobee", - "bsn": "999911314", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer e2696872-f855-4283-a01b-c0db9c50bde2", - "resourceId": "XXX-DIRKSZ", - "familyName": "XXX_Dirksz", - "bsn": "999911326", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer b086604e-af06-48ae-bb7a-d099b4ebbf89", - "resourceId": "XXX-STRENGERSZ", - "familyName": "XXX_Strengersz", - "bsn": "999911338", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 72538476-32d0-4f7f-80c7-bb12a1872d8e", - "resourceId": "XXX-RUYS", - "familyName": "XXX_Ruys", - "bsn": "999911351", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 56fddbdf-cf49-41e1-b261-5ff7466c54a5", - "resourceId": "XXX-CNOSSEN", - "familyName": "XXX_Cnossen", - "bsn": "999911740", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 9981f7ad-f22b-4a99-be31-68145536f9de", - "resourceId": "XXX-KILKENNY", - "familyName": "XXX_Kilkenny", - "bsn": "999911752", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer d30f66ca-288d-44ea-aae0-659400d3ff42", - "resourceId": "XXX-AMAYA", - "familyName": "XXX_Amaya", - "bsn": "999911764", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 453863d0-0aa1-42e4-9201-7ca7e061520c", - "resourceId": "ADELAAR", - "familyName": "Adelaar", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer b373ae26-3452-4c19-8865-806aa503b9d0", - "resourceId": "BERKEN", - "familyName": "van der Berken", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 3c5c5d2d-587a-4aa0-9aa0-a4ec0641531f", - "resourceId": "CREIENS", - "familyName": "Creiens", - "bsn": "999999060", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 088c319c-e22d-4d8b-b65c-c3f2d76b7ec6", - "resourceId": "DIREN", - "familyName": "Direnç", - "bsn": "555555914", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 2ecfcf66-af45-4290-ab7c-6b7c3d10a452", - "resourceId": "HENEGOUWEN", - "familyName": "van Henegouwen", - "bsn": "555555112", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer acc0c081-ece5-4760-bfd9-ce61d1450406", - "resourceId": "SLUIS", - "familyName": "van der Sluis", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer dcdfe220-0fb9-470c-8721-08fd966fbea1", - "resourceId": "VEENOORD", - "familyName": "Veenoord", - "bsn": "555555021", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer acd68d8c-9394-4aee-8aa7-f7f81183e0d3", - "resourceId": "XXX-BEKKER", - "familyName": "XXX_BEKKER", - "bsn": "999911715", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer bde481d0-311a-4ca4-9cd6-334db51b7f54", - "resourceId": "XXX-JANKIE", - "familyName": "XXX_Jankie", - "bsn": "999910437", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 99b14b9a-a112-49d4-934b-10145cd353ba", - "resourceId": "XXX-ZUTPHEN", - "familyName": "van XXX_Zutphen", - "bsn": "999910498", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 13ac391e-e9f2-40b8-a15c-bb8d896009b9", - "resourceId": "XXX-MOLENAARS", - "familyName": "XXX_Molenaars", - "bsn": "999910449", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 7cac059d-47e7-4026-9f69-b826921305ae", - "resourceId": "XXX-BOSCHMAN", - "familyName": "van de XXX_Boschman", - "bsn": "999912100", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 29fe6dc3-deb8-4d5a-b7f1-a5e407e962d3", - "resourceId": "XXX-VONKER", - "familyName": "XXX_Vonker", - "bsn": "999910401", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer b289543a-03e0-4d2a-90c1-6edc3e53a314", - "resourceId": "XXX-INCIDENT-A", - "familyName": "XXX-Incident-A", - "bsn": "999990159", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer af8c760b-ce0b-4b8b-a5b0-bdd973439d12", - "resourceId": "XXX-MAASZ", - "familyName": "XXX_Maasz", - "bsn": "999910747", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 461b4db0-73fa-4ee8-a807-7d24fe8d139c", - "resourceId": "XXX-Kester", - "familyName": "van XXX_Kester", - "bsn": "999911557", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 828138a3-a871-4657-99a4-6a72b07038c7", - "resourceId": "XXX-TEST-E", - "familyName": "XXX_TEST_E", - "bsn": "999990196", - "qualificationScript": "MedMij Medication" - }, - { - "accessToken": "Bearer 761549f5-112d-49be-a20d-3874783b4ca7", - "resourceId": "C-XXX-CSC-SMOKETEST-A", - "familyName": "XXX-CSC-Smoketest-A", - "bsn": "999990020", - "qualificationScript": "MedMij Medication Test" - }, - { - "accessToken": "Bearer 883f6750-6058-47fa-ab49-7390e65f5098", - "resourceId": "D-XXX-CSC-SMOKETEST-B", - "familyName": "XXX-CSC-Smoketest-B", - "bsn": "999990032", - "qualificationScript": "MedMij Medication Test" - }, - { - "accessToken": "Bearer 893d8122-6490-4d65-9621-6dda1abd1966", - "resourceId": "E-XXX-GBZ-SMOKETEST-A", - "familyName": "XXX-GBZ-Smoketest-A", - "bsn": "999990044", - "qualificationScript": "MedMij Medication Test" - }, - { - "accessToken": "Bearer 90bf84c3-1e1e-407d-94da-9e62d7ae7614", - "resourceId": "F-XXX-GBZ-SMOKETEST-B", - "familyName": "XXX-GBZ-Smoketest-B", - "bsn": "999990056", - "qualificationScript": "MedMij Medication Test" - }, - { - "accessToken": "Bearer 30f59e35-3210-4590-96c2-9b4ed43b6969", - "resourceId": "G-XXX-GBZ-SMOKETEST-C", - "familyName": "XXX-GBZ-Smoketest-C", - "bsn": "999990068", - "qualificationScript": "MedMij Medication Test" - }, - { - "accessToken": "Bearer 12c3813c-b72a-4928-98a6-5fe03467b470", - "resourceId": "nl-core-Patient-mp9-C-XXX-Dongen", - "familyName": "XXX_Dongen", - "bsn": "999900493", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer e2ff0738-c96f-4122-92db-5bd0bf0e5515", - "resourceId": "nl-core-Patient-mp9-D-XXX-Dijks", - "familyName": "XXX_Dijks", - "bsn": "999900468", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer 108df91b-1fd8-4430-8bef-a31450be3cee", - "resourceId": "nl-core-Patient-mp9-D-XXX-Dixhoorn", - "familyName": "XXX_Dixhoorn", - "bsn": "999900481", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer b568572b-e7bc-4b50-bedf-b05f2b08853d", - "resourceId": "nl-core-Patient-mp9-J-XXX-Bree", - "familyName": "XXX_Bree", - "bsn": "999901588", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer 82d0f2b8-14c3-4811-9ba5-ce14bfd6362d", - "resourceId": "nl-core-Patient-mp9-M-vandeXXX-RambaranMishre", - "familyName": "van de XXX_Rambaran Mishre", - "bsn": "999900948", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer db377ac5-180b-450b-be42-3bc681604b9f", - "resourceId": "nl-core-Patient-mp9-M-vandeXXX-Roelofs", - "familyName": "van de XXX_Roelofs", - "bsn": "999900973", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer 5dc971e7-78eb-401b-8f94-97d9df821979", - "resourceId": "nl-core-Patient-mp9-M-vandeXXX-Tewarie", - "familyName": "van de XXX_Tewarie", - "bsn": "999900961", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer ceaacc9c-7d53-4cee-a86f-895ff07551a5", - "resourceId": "nl-core-Patient-mp9-MXXX-Rambaldo", - "familyName": "XXX_Rambaldo", - "bsn": "999900936", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer c1a6704f-c57b-4b34-84b9-fd03914900c0", - "resourceId": "nl-core-Patient-mp9-N-XXX-Rozendal", - "familyName": "XXX_Rozendal", - "bsn": "999900985", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer ebb49739-aa96-4c74-b460-6cde1d1cf2ad", - "resourceId": "nl-core-Patient-mp9-R-vanXXX-Sonnenberg", - "familyName": "van XXX_Sonnenberg", - "bsn": "999901084", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer 79eaebe9-e18c-4169-b592-ce2f7cba3bd3", - "resourceId": "nl-core-Patient-mp9-R-XXX-Smitsz", - "familyName": "XXX_Smitsz", - "bsn": "999901072", - "qualificationScript": "MP9" - }, - { - "accessToken": "Bearer 6fc70c51-bdda-422e-9eaa-899fe24c4ef9", - "resourceId": "XXX-Bals", - "familyName": "XXX_Bals", - "bsn": "999911478", - "qualificationScript": "MedMij GGZ" - }, - { - "accessToken": "Bearer 55180ef6-52b9-4ce2-954f-7f623b568bef", - "resourceId": "XXX-Walsen", - "familyName": "XXX_Walsen", - "bsn": "999911491", - "qualificationScript": "MedMij GGZ" - }, - { - "accessToken": "Bearer 25337a23-71e8-4e5a-93c0-1c92d517924c", - "resourceId": "XXX-Camp", - "familyName": "XXX_Camp", - "bsn": "999911788", - "qualificationScript": "MedMij AllergyIntolerance" - }, - { - "accessToken": "Bearer d8a50530-12b7-11ea-aaef-0800200c9a66", - "resourceId": "YYY-Camp20", - "familyName": "YYY_Camp20", - "bsn": "999988293", - "qualificationScript": "MedMij AllergyIntolerance" - }, - { - "accessToken": "Bearer ce28d649-a3ba-4d9c-99e6-d31f6a70476f", - "resourceId": "XXX-Mutter", - "familyName": "XXX_Mutter", - "bsn": "999911673", - "qualificationScript": "MedMij BGLZ" - }, - { - "accessToken": "Bearer e097ff15-c3a7-43a7-a190-70750e0be2c7", - "resourceId": "XXX-Valk", - "familyName": "XXX_Valk", - "bsn": "999911697", - "qualificationScript": "MedMij BGLZ" - }, - { - "accessToken": "Bearer c380d9d0-5567-4658-9c9e-94414a0d9ed9", - "resourceId": "nl-core-patient-eov-cert-1-1b-01", - "familyName": "XXX_Molog", - "bsn": "999900080", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer 4777580a-690e-44ce-8a3c-1e29d420ab40", - "resourceId": "nl-core-patient-eov-test-1-1b-01", - "familyName": "XXX_Altenborg", - "bsn": "999911612", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer 97294e63-092d-4554-a18a-9d60de7a726d", - "resourceId": "nl-core-patient-eov-test-1-1-01", - "familyName": "XXX_Altenborg", - "bsn": "999911612", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer afc1cfc0-6848-4ccb-a0a1-f87838301c31", - "resourceId": "nl-core-patient-eov-test-1-2b-01", - "familyName": "van_Clinteren-van_de_Put", - "bsn": "999999072", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer 7da0de73-a3ad-41af-9272-1a5e8f1113f2", - "resourceId": "nl-core-patient-eov-test-1-3b-01", - "familyName": "XXX_Ven", - "bsn": "999900018", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer ac282097-fffa-4edb-83db-3aaff8effc01", - "resourceId": "nl-core-patient-eov-test-1-4b-01", - "familyName": "XXX_Birkholz", - "bsn": "999900031", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer 90d9027e-8535-439d-a14b-ee4a1309bf56", - "resourceId": "XXX-Hondius", - "familyName": "van XXX_Hondius", - "bsn": "999900079", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer 6fa204d2-9d4d-4dba-9fd3-b40da5203d4a", - "resourceId": "nl-core-patient-eov-test-1-5-01", - "familyName": "van_de_XXX_Quigleys", - "bsn": "999900912", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer 80dd21a2-4a38-4de1-a4cb-e4def6007301", - "resourceId": "nl-core-patient-eov-test-1-6-01", - "familyName": "XXX_Arcken", - "bsn": "999900043", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer 44ef3c25-6a05-4668-ac1b-16beb0f7a82f", - "resourceId": "nl-core-patient-eov-test-1-7-01", - "familyName": "XXX_Schouten-Baak", - "bsn": "999900055", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer 8650115c-b5b4-40ea-82c9-dd2e8566ef2c", - "resourceId": "nl-core-patient-eov-test-1-8-01", - "familyName": "XXX_Koutrik", - "bsn": "999900067", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer 32c63064-7953-4f11-bf85-1ae7f23a8091", - "resourceId": "XXX-Sauter", - "familyName": "XXX_Sauter", - "bsn": "999911636", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer bcabe321-ef23-44f0-9a14-3fe10b622d64", - "resourceId": "XXX-Buckle", - "familyName": "XXX_Buckle", - "bsn": "999911454", - "qualificationScript": "eOverdracht 4.0" - }, - { - "accessToken": "Bearer ff7467f5-0f40-4c88-826c-f5bf4ecbd411", - "resourceId": "Sandbox-Driggers", - "familyName": "Sandbox-Driggers", - "bsn": "942768218", - "qualificationScript": "Sandbox Zelfmetingen" - }, - { - "accessToken": "Bearer b8a9596a-1301-4666-bc39-f5077bf5738d", - "resourceId": "Sandbox-Bramhall", - "familyName": "Sandbox-Bramhall", - "bsn": "857220226", - "qualificationScript": "Sandbox Zelfmetingen" - }, - { - "accessToken": "Bearer 1f5b4282-544e-4832-b370-eeb69eb758d4", - "resourceId": "XXX-testpatient", - "familyName": "XXX_testpatient", - "bsn": "00000000", - "qualificationScript": "Geboortezorg" - }, - { - "accessToken": "Bearer 9e5ad1fa-3461-4f55-a033-55eb961b290a", - "resourceId": "XXXVINK", - "familyName": "XXX_Vink", - "qualificationScript": "MedMij Questionnaires" - }, - { - "accessToken": "Bearer 0dd9618f-ac1f-4ecf-a5a1-440174706ddd", - "resourceId": "XXXBOUMANN", - "familyName": "XXX_Boumann", - "qualificationScript": "MedMij Questionnaires" - }, - { - "accessToken": "Bearer f9e46b63-c2cb-433c-a84e-2c02e0921c06", - "resourceId": "XXXREPSCHER", - "familyName": "XXX_Repscher", - "qualificationScript": "MedMij Questionnaires" - }, - { - "accessToken": "Bearer 21bb7b80-9f4b-11ea-ab12-0800200c9a66", - "resourceId": "XXX-TEST-D", - "familyName": "XXX-TEST-D", - "bsn": "999990238", - "qualificationScript": "MedMij AllergyIntolerance" - }, - { - "accessToken": "Bearer 2ede36e0-9f4b-11ea-ab12-0800200c9a66", - "resourceId": "XXX-TEST-F", - "familyName": "XXX-TEST-F", - "bsn": "999990251", - "qualificationScript": "MedMij AllergyIntolerance" - }, - { - "accessToken": "Bearer 76a3e3e0-c06a-11ea-8b6e-0800200c9a66", - "resourceId": "H-XXX-ARCHANGEL", - "familyName": "XXX_Archangel", - "bsn": "999910899", - "qualificationScript": "MP 907 POC Praktijktest" - }, - { - "accessToken": "Bearer 7f817b80-c06a-11ea-8b6e-0800200c9a66", - "resourceId": "D-XXX-FRANSSEN", - "familyName": "XXX_Franssen", - "bsn": "999910887", - "qualificationScript": "MP 907 POC Praktijktest" - }, - { - "accessToken": "Bearer 9d0084c7-332a-4ee9-81fb-4994e74e4c10", - "resourceId": "JAMILAJXXX-KWEE", - "familyName": "XXX_Kwee", - "bsn": "999900730", - "qualificationScript": "MedMij Geboortezorg" - }, - { - "accessToken": "Bearer 9d0084c7-332a-4ee9-81fb-4994e74e4c10", - "resourceId": "JAMALJXXX-KWEE", - "familyName": "XXX_Kwee", - "bsn": "999900730", - "qualificationScript": "MedMij Geboortezorg" - }, - { - "accessToken": "Bearer 9d0084c7-332a-4ee9-81fb-4994e74e4c10", - "resourceId": "JUSEFJXXX-KWEE", - "familyName": "XXX_Kwee", - "bsn": "999900730", - "qualificationScript": "MedMij Geboortezorg" - }, - { - "accessToken": "Bearer 53a606f4-3664-4fd6-bcfd-7559231821aa", - "resourceId": "HANNAHXXX-KOOIJ", - "familyName": "XXX_KOOIJ", - "bsn": "999900717", - "qualificationScript": "MedMij Geboortezorg" - }, - { - "accessToken": "Bearer 53a606f4-3664-4fd6-bcfd-7559231821aa", - "resourceId": "HELENXXX-KOOIJ", - "familyName": "XXX_KOOIJ", - "bsn": "999900717", - "qualificationScript": "MedMij Geboortezorg" - }, - { - "accessToken": "Bearer 0fccbba4-6740-11ed-9022-0242ac120002", - "resourceId": "JULIAJXXX-LAARHOVEN", - "familyName": "XXX-LAARHOVEN", - "bsn": "999900754", - "qualificationScript": "MedMij Geboortezorg" - }, - { - "accessToken": "Bearer 52d1157f-08fc-4519-8458-82427de17fb7", - "resourceId": "nl-core-Patient-1285290", - "familyName": "XXX_Helleman", - "bsn": "999911120", - "qualificationScript": "MedMij Dossierwijzigingsverzoek", - "txOutcomeAck": "true", - "txOutcomeAckText": "Je wijzigingsverzoek is ontvangen, neem voor meer informatie contact op met Test Medisch Centrum. Is de situatie levensbedreigend bel dan 112." - }, - { - "accessToken": "Bearer 7c0f1645-2ebb-44b6-a77d-88e18a88ea66", - "resourceId": "selfmeasurements-Patient-XXX-Smorenburg", - "familyName": "XXX_Smorenburg", - "bsn": "999901369", - "qualificationScript": "MedMij 2020.01 Test SelfMeasurements Retrieve/Serve" - }, - { - "accessToken": "Bearer 805b20d7-09e7-4e03-a08e-7e8c19e9f9df", - "resourceId": "selfmeasurements-Patient-XXX-Herder", - "familyName": "XXX_Herder", - "bsn": "999901370", - "qualificationScript": "MedMij 2020.01 Test SelfMeasurements Send/Receive" - }, - { - "accessToken": "Bearer aa474a5b-25b4-4bc9-a730-27a91776d91a", - "resourceId": "imm-Patient-03", - "familyName": "Bakker", - "bsn": "990003516", - "qualificationScript": "MedMij Immunisatie" - }, - { - "accessToken": "Bearer e7de2d44-22f2-11ed-861d-0242ac120002", - "resourceId": "imm-Patient-01", - "familyName": "van Putten", - "qualificationScript": "MedMij Immunisatie" - }, - { - "accessToken": "Bearer 60e3bbbe-3e2d-4ef3-a0da-d9bc1f3a3576", - "resourceId": "imm-Patient-02", - "familyName": "Pieterse", - "qualificationScript": "MedMij Immunisatie" - }, - { - "accessToken": "Bearer 4b9f7015-2f36-4c57-a69d-986f853ffcd5", - "resourceId": "imm-Patient-04", - "familyName": "Lucasz", - "bsn": "990003838", - "qualificationScript": "MedMij Immunisatie" - }, - { - "accessToken": "Bearer 7066cb09-a06b-45c0-84ac-e14368964bb1", - "resourceId": "imm-Patient-05", - "familyName": "van der Voorden-der Teeuwen", - "bsn": "990003863", - "qualificationScript": "MedMij Immunisatie" - }, - { - "accessToken": "Bearer b4917a9e-462f-11ed-b878-0242ac120002", - "resourceId": "DENNIS-D-DENNIS-JANSE", - "familyName": "Janse", - "bsn": "999999151", - "qualificationScript": "BgZ voor medisch-specialistische zorg" - }, - { - "accessToken": "Bearer c2035300-462f-11ed-b878-0242ac120002", - "resourceId": "MARIA-FRANCISCA-MF-MARIA-VAN-T-HOEN-VERHEUL", - "familyName": "van 't Hoen-Verheul", - "bsn": "999999092", - "qualificationScript": "BgZ voor medisch-specialistische zorg" - }, - { - "accessToken": "Bearer 7ce7c666-6f96-40a7-a8fa-922056cb18b4", - "resourceId": "medmij-bgz-test-patA", - "familyName": "XXX_Rijn", - "bsn": "999901382", - "qualificationScript": "MedMij BgZ Test" - }, - { - "accessToken": "Bearer 1ddbc5c4-9309-436d-b4c7-8416610c215c", - "resourceId": "medmij-bgz-test-patB", - "familyName": "XXX_Hoff", - "bsn": "999901394", - "qualificationScript": "MedMij BgZ Test" - } -] + { + "accessToken": "Bearer 2588b52d-c5ef-4cfa-84d4-acf8419a72e9", + "resourceId": "eAfspraak-Patient-kwalificatie1", + "familyName": "XXX_Verweij", + "bsn": "999911533", + "qualificationScript": "MedMij eAfspraken" + }, + { + "accessToken": "Bearer 48a1fb8a-82e5-4e72-b560-4924279bb57e", + "resourceId": "eAfspraak-Patient-kwalificatie2", + "familyName": "XXX_Zalentein", + "bsn": "999911582", + "qualificationScript": "MedMij eAfspraken" + }, + { + "accessToken": "Bearer ed772f1e-5c86-4a0b-af36-4a05a2059191", + "resourceId": "eAfspraak-Patient-kwalificatie3", + "familyName": "XXX_Egmond", + "bsn": "999911594", + "qualificationScript": "MedMij eAfspraken" + }, + { + "accessToken": "Bearer f92b6141-55db-46d5-a3ae-874b69907d22", + "resourceId": "example-pdfa-kwalificatie1", + "familyName": "XXX_Baltus", + "bsn": "999910796", + "qualificationScript": "MedMij PDF/A" + }, + { + "accessToken": "Bearer aae7b5aa-d796-4fba-b4d3-852d9043ee66", + "resourceId": "example-pdfa-kwalificatie2", + "familyName": "XXX_Schulte", + "bsn": "999910784", + "qualificationScript": "MedMij PDF/A" + }, + { + "accessToken": "Bearer 84b0da5a-3816-49ba-9df4-88bc089dd401", + "resourceId": "example-pdfa-kwalificatie3", + "familyName": "XXX_Ellens", + "bsn": "999910863", + "qualificationScript": "MedMij PDF/A" + }, + { + "accessToken": "Bearer 93cde269-ce35-4077-a39d-19296670e949", + "resourceId": "medmij-bgz-patient-ts-01", + "familyName": "XXX_Helleman", + "bsn": "999911120", + "qualificationScript": "MedMij BGZ" + }, + { + "accessToken": "Bearer 6056a9eb-da6a-45dc-b557-e854e138af8f", + "resourceId": "medmij-bgz-patient-ts-02", + "familyName": "XXX_Mesker", + "bsn": "999911284", + "qualificationScript": "MedMij BGZ" + }, + { + "accessToken": "Bearer d9f8d61b-c236-489f-aba5-b3bebd312c30", + "resourceId": "selfmeasurement-patient-kwalificatie1", + "familyName": "XXX_Bourgonjee", + "bsn": "999911302", + "qualificationScript": "MedMij Zelfmetingen" + }, + { + "accessToken": "Bearer 06bbe01d-b3cb-4028-8b1c-f731d0241b57", + "resourceId": "selfmeasurement-patient-kwalificatie2", + "familyName": "XXX_Bergzoon", + "bsn": "999911259", + "qualificationScript": "MedMij Zelfmetingen" + }, + { + "accessToken": "Bearer f5a06257-2498-4442-96e7-98bf5708d6ae", + "resourceId": "selfmeasurements-2020-01-patient-kwalificatie1", + "familyName": "XXX_Bourgonjee", + "bsn": "999911302", + "qualificationScript": "MedMij Zelfmetingen 2020.01" + }, + { + "accessToken": "Bearer 2405ec76-1fc0-4c5a-8963-1b3c8abb130b", + "resourceId": "selfmeasurements-2020-01-patient-kwalificatie2", + "familyName": "XXX_Bergzoon", + "bsn": "999911259", + "qualificationScript": "MedMij Zelfmetingen 2020.01" + }, + { + "accessToken": "Bearer 14bc6cc6-7b7b-4c29-b662-c5284d76cf3c", + "resourceId": "laboratoryresults-patient-kwalificatie1", + "familyName": "XXX_Aantrekker", + "bsn": "999910450", + "qualificationScript": "MedMij Lab" + }, + { + "accessToken": "Bearer 0aed465d-aab0-4417-9b3c-e6f635892fea", + "resourceId": "gpdata-patient-kwalificatie1", + "familyName": "XXX_Cevat", + "bsn": "999911132", + "qualificationScript": "MedMij Huisarts" + }, + { + "accessToken": "Bearer 5d0d5475-9609-4e91-bbca-c466ed704952", + "resourceId": "XXX-Yong", + "familyName": "XXX_Yong", + "bsn": "999911776", + "qualificationScript": "MedMij AllergyIntolerance" + }, + { + "accessToken": "Bearer 327aea20-12b8-11ea-aaef-0800200c9a66", + "resourceId": "YYY-Yong20", + "familyName": "YYY_Yong20", + "bsn": "999988402", + "qualificationScript": "MedMij AllergyIntolerance" + }, + { + "accessToken": "Bearer 3daef240-ee84-11e9-aaef-0800200c9a66", + "resourceId": "XXX-Stalewska", + "familyName": "XXX_Stalewska", + "bsn": "999911235", + "qualificationScript": "MedMij AllergyIntolerance" + }, + { + "accessToken": "Bearer 473b7ca0-f0f7-11e9-aaef-0800200c9a66", + "resourceId": "XXX-Smits", + "familyName": "XXX_Smits", + "bsn": "999911223", + "qualificationScript": "MedMij AllergyIntolerance" + }, + { + "accessToken": "Bearer 8c6e2d90-f0f7-11e9-aaef-0800200c9a66", + "resourceId": "XXX-Daalen", + "familyName": "XXX_Daalen", + "bsn": "999911247", + "qualificationScript": "MedMij AllergyIntolerance" + }, + { + "accessToken": "Bearer c980c4c9-a6d7-41d2-b541-5284f33b2f75", + "resourceId": "XXX-BOURGONJE", + "familyName": "XXX_Bourgonje", + "bsn": "999911296", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 31d4a33c-75a7-44a0-ba5c-2722971a0b85", + "resourceId": "XXX-GOBEE", + "familyName": "XXX_Gobee", + "bsn": "999911314", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer e2696872-f855-4283-a01b-c0db9c50bde2", + "resourceId": "XXX-DIRKSZ", + "familyName": "XXX_Dirksz", + "bsn": "999911326", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer b086604e-af06-48ae-bb7a-d099b4ebbf89", + "resourceId": "XXX-STRENGERSZ", + "familyName": "XXX_Strengersz", + "bsn": "999911338", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 72538476-32d0-4f7f-80c7-bb12a1872d8e", + "resourceId": "XXX-RUYS", + "familyName": "XXX_Ruys", + "bsn": "999911351", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 56fddbdf-cf49-41e1-b261-5ff7466c54a5", + "resourceId": "XXX-CNOSSEN", + "familyName": "XXX_Cnossen", + "bsn": "999911740", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 9981f7ad-f22b-4a99-be31-68145536f9de", + "resourceId": "XXX-KILKENNY", + "familyName": "XXX_Kilkenny", + "bsn": "999911752", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer d30f66ca-288d-44ea-aae0-659400d3ff42", + "resourceId": "XXX-AMAYA", + "familyName": "XXX_Amaya", + "bsn": "999911764", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 453863d0-0aa1-42e4-9201-7ca7e061520c", + "resourceId": "ADELAAR", + "familyName": "Adelaar", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer b373ae26-3452-4c19-8865-806aa503b9d0", + "resourceId": "BERKEN", + "familyName": "van der Berken", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 3c5c5d2d-587a-4aa0-9aa0-a4ec0641531f", + "resourceId": "CREIENS", + "familyName": "Creiens", + "bsn": "999999060", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 088c319c-e22d-4d8b-b65c-c3f2d76b7ec6", + "resourceId": "DIREN", + "familyName": "Direnç", + "bsn": "555555914", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 2ecfcf66-af45-4290-ab7c-6b7c3d10a452", + "resourceId": "HENEGOUWEN", + "familyName": "van Henegouwen", + "bsn": "555555112", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer acc0c081-ece5-4760-bfd9-ce61d1450406", + "resourceId": "SLUIS", + "familyName": "van der Sluis", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer dcdfe220-0fb9-470c-8721-08fd966fbea1", + "resourceId": "VEENOORD", + "familyName": "Veenoord", + "bsn": "555555021", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer acd68d8c-9394-4aee-8aa7-f7f81183e0d3", + "resourceId": "XXX-BEKKER", + "familyName": "XXX_BEKKER", + "bsn": "999911715", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer bde481d0-311a-4ca4-9cd6-334db51b7f54", + "resourceId": "XXX-JANKIE", + "familyName": "XXX_Jankie", + "bsn": "999910437", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 99b14b9a-a112-49d4-934b-10145cd353ba", + "resourceId": "XXX-ZUTPHEN", + "familyName": "van XXX_Zutphen", + "bsn": "999910498", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 13ac391e-e9f2-40b8-a15c-bb8d896009b9", + "resourceId": "XXX-MOLENAARS", + "familyName": "XXX_Molenaars", + "bsn": "999910449", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 7cac059d-47e7-4026-9f69-b826921305ae", + "resourceId": "XXX-BOSCHMAN", + "familyName": "van de XXX_Boschman", + "bsn": "999912100", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 29fe6dc3-deb8-4d5a-b7f1-a5e407e962d3", + "resourceId": "XXX-VONKER", + "familyName": "XXX_Vonker", + "bsn": "999910401", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer b289543a-03e0-4d2a-90c1-6edc3e53a314", + "resourceId": "XXX-INCIDENT-A", + "familyName": "XXX-Incident-A", + "bsn": "999990159", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer af8c760b-ce0b-4b8b-a5b0-bdd973439d12", + "resourceId": "XXX-MAASZ", + "familyName": "XXX_Maasz", + "bsn": "999910747", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 461b4db0-73fa-4ee8-a807-7d24fe8d139c", + "resourceId": "XXX-Kester", + "familyName": "van XXX_Kester", + "bsn": "999911557", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 828138a3-a871-4657-99a4-6a72b07038c7", + "resourceId": "XXX-TEST-E", + "familyName": "XXX_TEST_E", + "bsn": "999990196", + "qualificationScript": "MedMij Medication" + }, + { + "accessToken": "Bearer 761549f5-112d-49be-a20d-3874783b4ca7", + "resourceId": "C-XXX-CSC-SMOKETEST-A", + "familyName": "XXX-CSC-Smoketest-A", + "bsn": "999990020", + "qualificationScript": "MedMij Medication Test" + }, + { + "accessToken": "Bearer 883f6750-6058-47fa-ab49-7390e65f5098", + "resourceId": "D-XXX-CSC-SMOKETEST-B", + "familyName": "XXX-CSC-Smoketest-B", + "bsn": "999990032", + "qualificationScript": "MedMij Medication Test" + }, + { + "accessToken": "Bearer 893d8122-6490-4d65-9621-6dda1abd1966", + "resourceId": "E-XXX-GBZ-SMOKETEST-A", + "familyName": "XXX-GBZ-Smoketest-A", + "bsn": "999990044", + "qualificationScript": "MedMij Medication Test" + }, + { + "accessToken": "Bearer 90bf84c3-1e1e-407d-94da-9e62d7ae7614", + "resourceId": "F-XXX-GBZ-SMOKETEST-B", + "familyName": "XXX-GBZ-Smoketest-B", + "bsn": "999990056", + "qualificationScript": "MedMij Medication Test" + }, + { + "accessToken": "Bearer 30f59e35-3210-4590-96c2-9b4ed43b6969", + "resourceId": "G-XXX-GBZ-SMOKETEST-C", + "familyName": "XXX-GBZ-Smoketest-C", + "bsn": "999990068", + "qualificationScript": "MedMij Medication Test" + }, + { + "accessToken": "Bearer 12c3813c-b72a-4928-98a6-5fe03467b470", + "resourceId": "nl-core-Patient-mp9-C-XXX-Dongen", + "familyName": "XXX_Dongen", + "bsn": "999900493", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer e2ff0738-c96f-4122-92db-5bd0bf0e5515", + "resourceId": "nl-core-Patient-mp9-D-XXX-Dijks", + "familyName": "XXX_Dijks", + "bsn": "999900468", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer 108df91b-1fd8-4430-8bef-a31450be3cee", + "resourceId": "nl-core-Patient-mp9-D-XXX-Dixhoorn", + "familyName": "XXX_Dixhoorn", + "bsn": "999900481", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer b568572b-e7bc-4b50-bedf-b05f2b08853d", + "resourceId": "nl-core-Patient-mp9-J-XXX-Bree", + "familyName": "XXX_Bree", + "bsn": "999901588", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer 82d0f2b8-14c3-4811-9ba5-ce14bfd6362d", + "resourceId": "nl-core-Patient-mp9-M-vandeXXX-RambaranMishre", + "familyName": "van de XXX_Rambaran Mishre", + "bsn": "999900948", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer db377ac5-180b-450b-be42-3bc681604b9f", + "resourceId": "nl-core-Patient-mp9-M-vandeXXX-Roelofs", + "familyName": "van de XXX_Roelofs", + "bsn": "999900973", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer 5dc971e7-78eb-401b-8f94-97d9df821979", + "resourceId": "nl-core-Patient-mp9-M-vandeXXX-Tewarie", + "familyName": "van de XXX_Tewarie", + "bsn": "999900961", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer ceaacc9c-7d53-4cee-a86f-895ff07551a5", + "resourceId": "nl-core-Patient-mp9-MXXX-Rambaldo", + "familyName": "XXX_Rambaldo", + "bsn": "999900936", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer c1a6704f-c57b-4b34-84b9-fd03914900c0", + "resourceId": "nl-core-Patient-mp9-N-XXX-Rozendal", + "familyName": "XXX_Rozendal", + "bsn": "999900985", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer ebb49739-aa96-4c74-b460-6cde1d1cf2ad", + "resourceId": "nl-core-Patient-mp9-R-vanXXX-Sonnenberg", + "familyName": "van XXX_Sonnenberg", + "bsn": "999901084", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer 79eaebe9-e18c-4169-b592-ce2f7cba3bd3", + "resourceId": "nl-core-Patient-mp9-R-XXX-Smitsz", + "familyName": "XXX_Smitsz", + "bsn": "999901072", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer a627ebfc-101c-11ee-be56-0242ac120002", + "resourceId": "nl-core-Patient-mp9-S-XXX-Tewariem", + "familyName": "XXX_Tewariem", + "bsn": "999901126", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer f3cb77e1-e2e8-4017-af3d-3627929f98c6", + "resourceId": "nl-core-Patient-mp9-C-XXX-Dijk", + "familyName": "XXX_Dijk", + "bsn": "999900456", + "qualificationScript": "MP9 3-beta" + }, + { + "accessToken": "Bearer 6fc70c51-bdda-422e-9eaa-899fe24c4ef9", + "resourceId": "XXX-Bals", + "familyName": "XXX_Bals", + "bsn": "999911478", + "qualificationScript": "MedMij GGZ" + }, + { + "accessToken": "Bearer 55180ef6-52b9-4ce2-954f-7f623b568bef", + "resourceId": "XXX-Walsen", + "familyName": "XXX_Walsen", + "bsn": "999911491", + "qualificationScript": "MedMij GGZ" + }, + { + "accessToken": "Bearer 25337a23-71e8-4e5a-93c0-1c92d517924c", + "resourceId": "XXX-Camp", + "familyName": "XXX_Camp", + "bsn": "999911788", + "qualificationScript": "MedMij AllergyIntolerance" + }, + { + "accessToken": "Bearer d8a50530-12b7-11ea-aaef-0800200c9a66", + "resourceId": "YYY-Camp20", + "familyName": "YYY_Camp20", + "bsn": "999988293", + "qualificationScript": "MedMij AllergyIntolerance" + }, + { + "accessToken": "Bearer ce28d649-a3ba-4d9c-99e6-d31f6a70476f", + "resourceId": "XXX-Mutter", + "familyName": "XXX_Mutter", + "bsn": "999911673", + "qualificationScript": "MedMij BGLZ" + }, + { + "accessToken": "Bearer e097ff15-c3a7-43a7-a190-70750e0be2c7", + "resourceId": "XXX-Valk", + "familyName": "XXX_Valk", + "bsn": "999911697", + "qualificationScript": "MedMij BGLZ" + }, + { + "accessToken": "Bearer c380d9d0-5567-4658-9c9e-94414a0d9ed9", + "resourceId": "nl-core-patient-eov-cert-1-1b-01", + "familyName": "XXX_Molog", + "bsn": "999900080", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer 4777580a-690e-44ce-8a3c-1e29d420ab40", + "resourceId": "nl-core-patient-eov-test-1-1b-01", + "familyName": "XXX_Altenborg", + "bsn": "999911612", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer 97294e63-092d-4554-a18a-9d60de7a726d", + "resourceId": "nl-core-patient-eov-test-1-1-01", + "familyName": "XXX_Altenborg", + "bsn": "999911612", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer afc1cfc0-6848-4ccb-a0a1-f87838301c31", + "resourceId": "nl-core-patient-eov-test-1-2b-01", + "familyName": "van_Clinteren-van_de_Put", + "bsn": "999999072", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer 7da0de73-a3ad-41af-9272-1a5e8f1113f2", + "resourceId": "nl-core-patient-eov-test-1-3b-01", + "familyName": "XXX_Ven", + "bsn": "999900018", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer ac282097-fffa-4edb-83db-3aaff8effc01", + "resourceId": "nl-core-patient-eov-test-1-4b-01", + "familyName": "XXX_Birkholz", + "bsn": "999900031", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer 90d9027e-8535-439d-a14b-ee4a1309bf56", + "resourceId": "XXX-Hondius", + "familyName": "van XXX_Hondius", + "bsn": "999900079", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer 6fa204d2-9d4d-4dba-9fd3-b40da5203d4a", + "resourceId": "nl-core-patient-eov-test-1-5-01", + "familyName": "van_de_XXX_Quigleys", + "bsn": "999900912", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer 80dd21a2-4a38-4de1-a4cb-e4def6007301", + "resourceId": "nl-core-patient-eov-test-1-6-01", + "familyName": "XXX_Arcken", + "bsn": "999900043", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer 44ef3c25-6a05-4668-ac1b-16beb0f7a82f", + "resourceId": "nl-core-patient-eov-test-1-7-01", + "familyName": "XXX_Schouten-Baak", + "bsn": "999900055", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer 8650115c-b5b4-40ea-82c9-dd2e8566ef2c", + "resourceId": "nl-core-patient-eov-test-1-8-01", + "familyName": "XXX_Koutrik", + "bsn": "999900067", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer 32c63064-7953-4f11-bf85-1ae7f23a8091", + "resourceId": "XXX-Sauter", + "familyName": "XXX_Sauter", + "bsn": "999911636", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer bcabe321-ef23-44f0-9a14-3fe10b622d64", + "resourceId": "XXX-Buckle", + "familyName": "XXX_Buckle", + "bsn": "999911454", + "qualificationScript": "eOverdracht 4.0" + }, + { + "accessToken": "Bearer ff7467f5-0f40-4c88-826c-f5bf4ecbd411", + "resourceId": "Sandbox-Driggers", + "familyName": "Sandbox-Driggers", + "bsn": "942768218", + "qualificationScript": "Sandbox Zelfmetingen" + }, + { + "accessToken": "Bearer b8a9596a-1301-4666-bc39-f5077bf5738d", + "resourceId": "Sandbox-Bramhall", + "familyName": "Sandbox-Bramhall", + "bsn": "857220226", + "qualificationScript": "Sandbox Zelfmetingen" + }, + { + "accessToken": "Bearer 1f5b4282-544e-4832-b370-eeb69eb758d4", + "resourceId": "XXX-testpatient", + "familyName": "XXX_testpatient", + "bsn": "00000000", + "qualificationScript": "Geboortezorg" + }, + { + "accessToken": "Bearer 9e5ad1fa-3461-4f55-a033-55eb961b290a", + "resourceId": "XXXVINK", + "familyName": "XXX_Vink", + "qualificationScript": "MedMij Questionnaires" + }, + { + "accessToken": "Bearer 0dd9618f-ac1f-4ecf-a5a1-440174706ddd", + "resourceId": "XXXBOUMANN", + "familyName": "XXX_Boumann", + "qualificationScript": "MedMij Questionnaires" + }, + { + "accessToken": "Bearer f9e46b63-c2cb-433c-a84e-2c02e0921c06", + "resourceId": "XXXREPSCHER", + "familyName": "XXX_Repscher", + "qualificationScript": "MedMij Questionnaires" + }, + { + "accessToken": "Bearer 21bb7b80-9f4b-11ea-ab12-0800200c9a66", + "resourceId": "XXX-TEST-D", + "familyName": "XXX-TEST-D", + "bsn": "999990238", + "qualificationScript": "MedMij AllergyIntolerance" + }, + { + "accessToken": "Bearer 2ede36e0-9f4b-11ea-ab12-0800200c9a66", + "resourceId": "XXX-TEST-F", + "familyName": "XXX-TEST-F", + "bsn": "999990251", + "qualificationScript": "MedMij AllergyIntolerance" + }, + { + "accessToken": "Bearer 76a3e3e0-c06a-11ea-8b6e-0800200c9a66", + "resourceId": "H-XXX-ARCHANGEL", + "familyName": "XXX_Archangel", + "bsn": "999910899", + "qualificationScript": "MP 907 POC Praktijktest" + }, + { + "accessToken": "Bearer 7f817b80-c06a-11ea-8b6e-0800200c9a66", + "resourceId": "D-XXX-FRANSSEN", + "familyName": "XXX_Franssen", + "bsn": "999910887", + "qualificationScript": "MP 907 POC Praktijktest" + }, + { + "accessToken": "Bearer 9d0084c7-332a-4ee9-81fb-4994e74e4c10", + "resourceId": "JAMILAJXXX-KWEE", + "familyName": "XXX_Kwee", + "bsn": "999900730", + "qualificationScript": "MedMij Geboortezorg" + }, + { + "accessToken": "Bearer 9d0084c7-332a-4ee9-81fb-4994e74e4c10", + "resourceId": "JAMALJXXX-KWEE", + "familyName": "XXX_Kwee", + "bsn": "999900730", + "qualificationScript": "MedMij Geboortezorg" + }, + { + "accessToken": "Bearer 9d0084c7-332a-4ee9-81fb-4994e74e4c10", + "resourceId": "JUSEFJXXX-KWEE", + "familyName": "XXX_Kwee", + "bsn": "999900730", + "qualificationScript": "MedMij Geboortezorg" + }, + { + "accessToken": "Bearer 53a606f4-3664-4fd6-bcfd-7559231821aa", + "resourceId": "HANNAHXXX-KOOIJ", + "familyName": "XXX_KOOIJ", + "bsn": "999900717", + "qualificationScript": "MedMij Geboortezorg" + }, + { + "accessToken": "Bearer 53a606f4-3664-4fd6-bcfd-7559231821aa", + "resourceId": "HELENXXX-KOOIJ", + "familyName": "XXX_KOOIJ", + "bsn": "999900717", + "qualificationScript": "MedMij Geboortezorg" + }, + { + "accessToken": "Bearer 0fccbba4-6740-11ed-9022-0242ac120002", + "resourceId": "JULIAJXXX-LAARHOVEN", + "familyName": "XXX-LAARHOVEN", + "bsn": "999900754", + "qualificationScript": "MedMij Geboortezorg" + }, + { + "accessToken": "Bearer 52d1157f-08fc-4519-8458-82427de17fb7", + "resourceId": "nl-core-Patient-1285290", + "familyName": "XXX_Helleman", + "bsn": "999911120", + "qualificationScript": "MedMij Dossierwijzigingsverzoek", + "txOutcomeAck": "true", + "txOutcomeAckText": "Je wijzigingsverzoek is ontvangen, neem voor meer informatie contact op met Test Medisch Centrum. Is de situatie levensbedreigend bel dan 112." + }, + { + "accessToken": "Bearer 7c0f1645-2ebb-44b6-a77d-88e18a88ea66", + "resourceId": "selfmeasurements-Patient-XXX-Smorenburg", + "familyName": "XXX_Smorenburg", + "bsn": "999901369", + "qualificationScript": "MedMij 2020.01 Test SelfMeasurements Retrieve/Serve" + }, + { + "accessToken": "Bearer 805b20d7-09e7-4e03-a08e-7e8c19e9f9df", + "resourceId": "selfmeasurements-Patient-XXX-Herder", + "familyName": "XXX_Herder", + "bsn": "999901370", + "qualificationScript": "MedMij 2020.01 Test SelfMeasurements Send/Receive" + }, + { + "accessToken": "Bearer aa474a5b-25b4-4bc9-a730-27a91776d91a", + "resourceId": "imm-Patient-03", + "familyName": "Bakker", + "bsn": "990003516", + "qualificationScript": "MedMij Immunisatie" + }, + { + "accessToken": "Bearer e7de2d44-22f2-11ed-861d-0242ac120002", + "resourceId": "imm-Patient-01", + "familyName": "van Putten", + "qualificationScript": "MedMij Immunisatie" + }, + { + "accessToken": "Bearer 60e3bbbe-3e2d-4ef3-a0da-d9bc1f3a3576", + "resourceId": "imm-Patient-02", + "familyName": "Pieterse", + "qualificationScript": "MedMij Immunisatie" + }, + { + "accessToken": "Bearer 4b9f7015-2f36-4c57-a69d-986f853ffcd5", + "resourceId": "imm-Patient-04", + "familyName": "Lucasz", + "bsn": "990003838", + "qualificationScript": "MedMij Immunisatie" + }, + { + "accessToken": "Bearer 7066cb09-a06b-45c0-84ac-e14368964bb1", + "resourceId": "imm-Patient-05", + "familyName": "van der Voorden-der Teeuwen", + "bsn": "990003863", + "qualificationScript": "MedMij Immunisatie" + }, + { + "accessToken": "Bearer b4917a9e-462f-11ed-b878-0242ac120002", + "resourceId": "DENNIS-D--DENNIS-JANSE", + "familyName": "Janse", + "bsn": "999999151", + "qualificationScript": "BgZ voor medisch-specialistische zorg" + }, + { + "accessToken": "Bearer c2035300-462f-11ed-b878-0242ac120002", + "resourceId": "MARIA-FRANCISCA-M-F--MARIA-VAN-T-HOEN-VERHEUL", + "familyName": "van 't Hoen-Verheul", + "bsn": "999999092", + "qualificationScript": "BgZ voor medisch-specialistische zorg" + }, + { + "accessToken": "Bearer 7ce7c666-6f96-40a7-a8fa-922056cb18b4", + "resourceId": "medmij-bgz-test-patA", + "familyName": "XXX_Rijn", + "bsn": "999901382", + "qualificationScript": "MedMij BgZ Test" + }, + { + "accessToken": "Bearer 1ddbc5c4-9309-436d-b4c7-8416610c215c", + "resourceId": "medmij-bgz-test-patB", + "familyName": "XXX_Hoff", + "bsn": "999901394", + "qualificationScript": "MedMij BgZ Test" + }, + { + "accessToken": "Bearer 5d43166e-0d05-4ce5-8860-e4151ce44566", + "resourceId": "patient-van-de-XXX-Broekmeulen", + "familyName": "van de XXX_Broekmeulen", + "bsn": "999900134", + "qualificationScript": "CiO Test" + }, + { + "accessToken": "Bearer a00e10e0-0bee-4f0f-9974-1e92f02e6d92", + "resourceId": "patient-van-XXX-Lonkhuijsen", + "familyName": "van XXX_Lonkhuijsen", + "bsn": "999900171", + "qualificationScript": "CiO Test" + }, + { + "accessToken": "Bearer 2cabfc9e-6d89-4551-9183-6569699ce58f", + "resourceId": "patient-van-XXX-Verbeek", + "familyName": "van XXX_Verbeek", + "bsn": "999900110", + "qualificationScript": "CiO Test" + }, + { + "accessToken": "Bearer 09d40afb-c56f-4b68-80f8-c7b605786431", + "resourceId": "patient-XXX-Gerrits", + "familyName": "XXX_Gerrits", + "bsn": "999900158", + "qualificationScript": "CiO Test" + }, + { + "accessToken": "Bearer 1af5a4f1-2d8f-45dd-9b7c-669ba6daced0", + "resourceId": "patient-XXX-Habiboellah", + "familyName": "XXX_Habiboellah", + "bsn": "999900122", + "qualificationScript": "CiO Test" + }, + { + "accessToken": "Bearer 9cab5c29-c383-4bcf-b0a7-878f818611a4", + "resourceId": "patient-XXX-Roelfsema", + "familyName": "XXX_Roelfsema", + "bsn": "999900146", + "qualificationScript": "CiO Test" + }, + { + "accessToken": "Bearer 9we86dg8-aab0-4417-9b3c-e6f635892fea", + "resourceId": "patient-XXX-Andrioli", + "familyName": "XXX_Andrioli", + "bsn": "999900262", + "qualificationScript": "ELZ Test (beta)" + }, + { + "accessToken": "Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea", + "resourceId": "patient-van-XXX-Sanderink-de-Kok", + "familyName": "van XXX_Sanderink", + "bsn": "999900250", + "qualificationScript": "ELZ Test (beta)" + }, + { + "accessToken": "Bearer 848561e6-1ef9-11ee-be56-0242ac120002", + "resourceId": "Nictiz-internal-patient", + "qualificationScript": "Test patient for internal purposes" + } +] \ No newline at end of file diff --git a/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml index e7a2144921..76fe0fcd0f 100644 --- a/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml +++ b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml @@ -1,43 +1,43 @@ <?xml version="1.0" encoding="UTF-8"?> -<?xml-model href="../../general/schematron/NictizTestScript.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"> - +<?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="XIS"> <id value="elz-receiving-xis-scenario-1-minimal"/> <version value="R4"/> - <name value="ELZ-Receiving-XIS-scenario-1-minimal"/> - <description value="Scenario 1 minimal (beta) for Eerstelijnszorg receiving systems. In a normal scenario, the test for the negotiation phase ('aanmeldfase') has been completed before running this test, although it may be performed in isolation."/> - - <nts:authToken patientResourceId="nl-core-patient-eov-test-1-1b-01"/> - - <setup> - <nts:fixture - id="initial-task-fixture" - href="resources/resources-specific/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-REQUESTED.xml"/> - <nts:include value="setup.general.initializeTask" - task-fixture-id="initial-task-fixture" - description="At the sending XIS, the Task resulting from the negotiation phase is updated with a reference to the Servicerequest on Task.input."/> - </setup> + <name value="ELZ - Receiving XIS - Scenario 1.1 - Retrieve ELZ resources of XXX-Andrioli"/> + <description value="Scenario 1.1 - Retrieve ELZ resources of XXX-Andrioli"/> + <nts:authToken patientResourceId="patient-XXX-Andrioli"/> - <nts:include value="action.receivingxis.awaitNotification" - name="Await addition notification" - description="The sending XIS sends a notification to the receiving XIS because the Task has been updated with a reference to the Servicerequest."/> - - <test> - <name value="Read Task"/> - <description value="The receiving XIS should perform a read on the Task after receiving a notification that the Task has been updated."/> - - <nts:include value="test.receivingxis.readTask" - taskStatus="in-progress" - responseId="in-progress-task-response"/> + <test id="01-retrieve-Task"> + <name value="Scenario 1.1 - Task"/> + <description + value="Query Task resource"/> + <nts:include value="test.client.search" scope="common" + resource="Task" + params="?_id=task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <nts:include value="canary-assert.response.successfulSearch" scope="common"/> + <nts:include value="assert.response.numResources" scope="common" + resource="Task" count="1"/> </test> - - <test> - <name value="Read Servicerequest"/> - <description value="After reading the Task, the receiving XIS should detect that a reference to the Servicerequest has been added and subsequently perform a read to retrieve this Servicerequest."/> - - <nts:include value="test.receivingxis.readServicerequest" - taskFixtureId="in-progress-task-response" - sliceSystem="http://snomed.info/sct" sliceCode="3457005"/> + + <test id="02-retrieve-ServiceRequest"> + <name value="Scenario 1.1 - ServiceRequest"/> + <description value="Query ServiceRequest resource"/> + <nts:include value="test.client.search" scope="common" resource="ServiceRequest" + params="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <nts:include value="canary-assert.response.successfulSearch" scope="common"/> + <nts:include value="assert.response.numResources" scope="common" + resource="ServiceRequest" count="1"/> + </test> + + <test id="03-retrieve-Composition"> + <name value="Scenario 1.1 - Composition"/> + <description value="Query Composition resource and bundle all the references"/> + <nts:include value="test.client.search" scope="common" resource="Composition" + params="_id=composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <nts:include value="canary-assert.response.successfulSearch" scope="common"/> + <nts:include value="assert.response.numResources" scope="common" + resource="Composition" count="1"/> </test> </TestScript> diff --git a/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml similarity index 99% rename from src/ELZ-0-2-0-beta/_reference/resources/resources-generic/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml rename to src/ELZ-0-2-0-beta/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml index df68557d76..f04bbe42eb 100644 --- a/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml +++ b/src/ELZ-0-2-0-beta/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml @@ -20,7 +20,7 @@ <type value="Patient"/> <display value="Patient, Sandra Janine (Sandra) van XXX_Sanderink"/> </subject> - <date value="T"/> + <date value="${DATE}"/> <author> <reference value="PractitionerRole/practitionerrole-000001111"/> <type value="PractitionerRole"/> diff --git a/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml similarity index 98% rename from src/ELZ-0-2-0-beta/_reference/resources/resources-generic/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml rename to src/ELZ-0-2-0-beta/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml index 07d1a6720e..d76c656ab9 100644 --- a/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml +++ b/src/ELZ-0-2-0-beta/Test/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml @@ -20,7 +20,7 @@ <type value="Patient"/> <display value="Patient, XXX_Andrioli"/> </subject> - <date value="T"/> + <date value="${DATE}"/> <author> <reference value="PractitionerRole/practitionerrole-000001111"/> <type value="PractitionerRole"/> diff --git a/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/contactperson-de-Kok.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/contactperson-de-Kok.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/resources-generic/contactperson-de-Kok.xml rename to src/ELZ-0-2-0-beta/Test/_reference/resources/contactperson-de-Kok.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/organization-04016056-0400.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/organization-04016056-0400.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/resources-generic/organization-04016056-0400.xml rename to src/ELZ-0-2-0-beta/Test/_reference/resources/organization-04016056-0400.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/organization-04086949.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/organization-04086949.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/resources-generic/organization-04086949.xml rename to src/ELZ-0-2-0-beta/Test/_reference/resources/organization-04086949.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/patient-XXX-Andrioli.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/patient-XXX-Andrioli.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/resources-generic/patient-XXX-Andrioli.xml rename to src/ELZ-0-2-0-beta/Test/_reference/resources/patient-XXX-Andrioli.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/patient-van-XXX-Sanderink-de-Kok.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/patient-van-XXX-Sanderink-de-Kok.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/resources-generic/patient-van-XXX-Sanderink-de-Kok.xml rename to src/ELZ-0-2-0-beta/Test/_reference/resources/patient-van-XXX-Sanderink-de-Kok.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/practitioner-000001111.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/practitioner-000001111.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/resources-generic/practitioner-000001111.xml rename to src/ELZ-0-2-0-beta/Test/_reference/resources/practitioner-000001111.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/practitioner-04115923.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/practitioner-04115923.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/resources-generic/practitioner-04115923.xml rename to src/ELZ-0-2-0-beta/Test/_reference/resources/practitioner-04115923.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/practitionerrole-000001111.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/practitionerrole-000001111.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/resources-generic/practitionerrole-000001111.xml rename to src/ELZ-0-2-0-beta/Test/_reference/resources/practitionerrole-000001111.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/resources-generic/practitionerrole-04115923.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/practitionerrole-04115923.xml similarity index 100% rename from src/ELZ-0-2-0-beta/_reference/resources/resources-generic/practitionerrole-04115923.xml rename to src/ELZ-0-2-0-beta/Test/_reference/resources/practitionerrole-04115923.xml diff --git a/src/ELZ-0-2-0-beta/_reference/resources/resources-specific/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml similarity index 98% rename from src/ELZ-0-2-0-beta/_reference/resources/resources-specific/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml rename to src/ELZ-0-2-0-beta/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml index 840d3edb26..71d516837b 100644 --- a/src/ELZ-0-2-0-beta/_reference/resources/resources-specific/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml +++ b/src/ELZ-0-2-0-beta/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml @@ -22,7 +22,7 @@ <type value="Patient"/> <display value="Patient, Sandra Janine (Sandra) van XXX_Sanderink"/> </subject> - <authoredOn value="T"/> + <authoredOn value="${DATE}"/> <requester> <reference value="PractitionerRole/practitionerrole-000001111"/> <type value="PractitionerRole"/> diff --git a/src/ELZ-0-2-0-beta/_reference/resources/resources-specific/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml similarity index 97% rename from src/ELZ-0-2-0-beta/_reference/resources/resources-specific/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml rename to src/ELZ-0-2-0-beta/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml index 299266272b..371ff6d120 100644 --- a/src/ELZ-0-2-0-beta/_reference/resources/resources-specific/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml +++ b/src/ELZ-0-2-0-beta/Test/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml @@ -21,7 +21,7 @@ <type value="Patient"/> <display value="Patient, XXX_Andrioli"/> </subject> - <authoredOn value="T"/> + <authoredOn value="${DATE}"/> <requester> <reference value="PractitionerRole/practitionerrole-000001111"/> <type value="PractitionerRole"/> diff --git a/src/ELZ-0-2-0-beta/_reference/resources/resources-specific/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-REQUESTED.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml similarity index 95% rename from src/ELZ-0-2-0-beta/_reference/resources/resources-specific/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-REQUESTED.xml rename to src/ELZ-0-2-0-beta/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml index 894ec1473e..91f3f620de 100644 --- a/src/ELZ-0-2-0-beta/_reference/resources/resources-specific/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-REQUESTED.xml +++ b/src/ELZ-0-2-0-beta/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml @@ -7,7 +7,7 @@ <identifier> <value value="hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> </identifier> - <status value="requested"/> + <status value="in-progress"/> <intent value="order"/> <code> <coding> @@ -26,7 +26,7 @@ <type value="Patient"/> <display value="Patient, Sandra Janine (Sandra) van XXX_Sanderink"/> </for> - <authoredOn value="T"/> + <authoredOn value="${DATE}"/> <requester> <reference value="PractitionerRole/practitionerrole-000001111"/> <type value="PractitionerRole"/> diff --git a/src/ELZ-0-2-0-beta/_reference/resources/resources-specific/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-REQUESTED.xml b/src/ELZ-0-2-0-beta/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml similarity index 95% rename from src/ELZ-0-2-0-beta/_reference/resources/resources-specific/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-REQUESTED.xml rename to src/ELZ-0-2-0-beta/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml index 996e90f468..7135bdaedc 100644 --- a/src/ELZ-0-2-0-beta/_reference/resources/resources-specific/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-REQUESTED.xml +++ b/src/ELZ-0-2-0-beta/Test/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml @@ -7,7 +7,7 @@ <identifier> <value value="hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> </identifier> - <status value="requested"/> + <status value="in-progress"/> <intent value="order"/> <code> <coding> @@ -26,7 +26,7 @@ <type value="Patient"/> <display value="Patient, XXX_Andrioli"/> </for> - <authoredOn value="T"/> + <authoredOn value="${DATE}"/> <requester> <reference value="PractitionerRole/practitionerrole-000001111"/> <type value="PractitionerRole"/> diff --git a/src/ELZ-0-2-0-beta/_components/action.receivingxis.awaitNotification.xml b/src/ELZ-0-2-0-beta/_components/action.receivingxis.awaitNotification.xml deleted file mode 100644 index 49068292ff..0000000000 --- a/src/ELZ-0-2-0-beta/_components/action.receivingxis.awaitNotification.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Send a notification to the notification endpoint defined during setup. This will be an isolated "test" in the TestScript. - This mechanism (ab)uses the TestScript create operation by using the `url` element to define the URL to send the POST to. - @param name - A unique name for this notification sending instance. - @param [description] - An optional description for thit step. ---> -<nts:component xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> - <test> - <name value="{$name}"/> - <description value="{$description}"/> - - <variable> - <name value="notificationEndpoint"/> - <hint value="The notification endpoint that the sending XIS can use to notify the receiving XIS, _without_ the trailing slash."/> - </variable> - - <variable> - <name value="authorization-token-id"/> - <hint value="The payload of the authorization header that Touchstone should use when sending the notification to the notification endpoint."/> - </variable> - - <action> - <operation> - <type> - <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> - <code value="create"/> - </type> - <resource value="Resource"/> - <label value="Notify receiving XIS"/> - <description value="The sending XIS sends a notification to the specified endpoint of the receiving XIS."/> - <requestHeader> - <field value="Authorization"/> - <value value="${authorization-token-id}"/> - </requestHeader> - <url value="${notificationEndpoint}/${task-id}"/> - </operation> - </action> - <action> - <assert nts:stopTestOnFail="false"> - <label value="Check that the response code is 202 Accepted."/> - <description value="It is advised that the receiving XIS responds to the notification with '202 Accepted'."/> - <responseCode value="202"/> - <warningOnly value="true"/> - </assert> - </action> - </test> -</nts:component> diff --git a/src/ELZ-0-2-0-beta/_components/action.sendingxis.sendNotification.xml b/src/ELZ-0-2-0-beta/_components/action.sendingxis.sendNotification.xml deleted file mode 100644 index 44c0ada43b..0000000000 --- a/src/ELZ-0-2-0-beta/_components/action.sendingxis.sendNotification.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Await a notification from the sending XIS before continuing. ---> -<nts:component xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> - <variable nts:in-targets="#default"> - <name value="task-id"/> - <hint value="Please provide the Resource.id of the Task that will be used. The notification endpoint will be shown when executing the test, based on the variable filled out here (it is dynamically determined by Touchstone)."/> - </variable> - - <test nts:in-targets="#default"> - <name value="{$name}"/> - <description value="Await notification to the endpoint specified below."/> - - <action> - <operation> - <type> - <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> - <code value="create"/> - </type> - <resource value="Resource"/> - <label value="Await notification from sending XIS"/> - <description value="The sending XIS should notify the receiving XIS by POSTing and empty body on the endpoint specified here."/> - <destination value="2"/> - <origin value="2"/> - <params value="/${task-id}"/> - </operation> - </action> - </test> -</nts:component> diff --git a/src/ELZ-0-2-0-beta/_components/setup.general.initializeTask.xml b/src/ELZ-0-2-0-beta/_components/setup.general.initializeTask.xml deleted file mode 100644 index 40ec3b908b..0000000000 --- a/src/ELZ-0-2-0-beta/_components/setup.general.initializeTask.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Initialize the eOverdracht Task: create/update the Task on WildFHIR to its initial for the test and set the - following variables: - * setup-task-response: The result of the Task create/update operation - * task-id: The id of the Task - @param task-fixture-id: The id of the fixture that contains the Task in its initial state. - @param description: The description of the operation. ---> -<nts:component xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> - <variable> - <name value="task-id" /> - <expression value="Task.id"/> - <sourceId value="{$task-fixture-id}"/> - </variable> - - <nts:include value="action.general.updateTaskBySendingXis" - responseId="setup-task-response" /> -</nts:component> diff --git a/src/ELZ-0-2-0-beta/_components/test.receivingxis.readServicerequest.xml b/src/ELZ-0-2-0-beta/_components/test.receivingxis.readServicerequest.xml deleted file mode 100644 index 8df77ae2e7..0000000000 --- a/src/ELZ-0-2-0-beta/_components/test.receivingxis.readServicerequest.xml +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - The step in the ELZ flow where the receiving XIS reads a Compostion which is referred to using the .input - of a previously retrieved Task. - @param taskFixtureId - The fixture id of the Task that refers the Servicerequest. - @param sliceSystem - The system used for the Taks.input slice that refers to the Servicerequest. - @param sliceCode - The code used for the Taks.input slice that refers to the Servicerequest. ---> -<nts:component xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> - <variable> - <name value="{$taskFixtureId}-servicerequest-{$sliceCode}-id"/> - <expression value="Task.input.where(type.coding.system = '{$sliceSystem}' and type.coding.code = '{$sliceCode}').value.reference.replace('Servicerequest/', '')"/> - <sourceId value="{$taskFixtureId}"/> - </variable> - - <nts:include nts:in-targets="#default" value="test.client.read" scope="common" - resource="Servicerequest" - params="/${{$taskFixtureId}-servicerequest-{$sliceCode}-id}/$document" - useToken="true"/> - <nts:include nts:in-targets="#default" value="assert.response.success" scope="common"/> - <action nts:in-targets="#default"> - <assert> - <description value="Make sure that the test server (WildFHIR) returns a Bundle."/> - <direction value="response"/> - <resource value="Bundle"/> - </assert> - </action> - <nts:include nts:in-targets="NoDocument" value="test.client.successfulRead" scope="common" - resource="Servicerequest" - params="/${{$taskFixtureId}-servicerequest-{$sliceCode}-id}" - useToken="true"/> -</nts:component> \ No newline at end of file diff --git a/src/ELZ-0-2-0-beta/_components/test.receivingxis.readTask.xml b/src/ELZ-0-2-0-beta/_components/test.receivingxis.readTask.xml deleted file mode 100644 index 5154c81da0..0000000000 --- a/src/ELZ-0-2-0-beta/_components/test.receivingxis.readTask.xml +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Test a receiving XIS to read the ELZ Task after getting a notification with the Task.id. - @param taskStatus - The expected status of the Task. This is needed for the sanity check that a Task with the - specified status is returned at this time in the process. ---> -<nts:component xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> - <action> - <operation> - <type> - <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes" /> - <code value="read" /> - </type> - <resource value="Task"/> - <label value="Get Task resource for ELZ"/> - <accept value="xml" /> - <destination value="1"/> - <origin value="1"/> - <params value="/${task-id}"/> - <nts:include value="header.request.PatientToken" scope="common"/> - <responseId nts:ifset="responseId" value="{$responseId}"/> - </operation> - </action> - - <nts:include value="assert.response.success" scope="common"/> - <action> - <assert> - <label value="Sanity check to see if the result is a Task."/> - <resource value="Task"/> - </assert> - </action> - <action> - <assert> - <label value="Sanity check to see if the Task has status={$taskStatus}."/> - <expression value="Task.status = '{$taskStatus}'"/> - </assert> - </action> -</nts:component> - diff --git a/src/ELZ-0-2-0-beta/_components/test.sendingxis.serveServicerequest.xml b/src/ELZ-0-2-0-beta/_components/test.sendingxis.serveServicerequest.xml deleted file mode 100644 index 7aa863a01f..0000000000 --- a/src/ELZ-0-2-0-beta/_components/test.sendingxis.serveServicerequest.xml +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - The step in the ELZ where the receiving XIS reads a Servicerequest which is referred to using the .input - of a previously retrieved Task. - @param taskFixtureId - The fixture id of the Task that refers the Servicerequest. - @param sliceSystem - The system used for the Task.input slice that refers to the Servicerequest. - @param sliceCode - The code used for the Task.input slice that refers to the Servicerequest. ---> -<nts:component xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> - <variable> - <name value="{$taskFixtureId}-servicerequest-{$sliceCode}-id"/> - <expression value="Task.input.where(type.where(coding.where(system = '{$sliceSystem}' and code = '{$sliceCode}'))).value.reference.replace('Servicerequest/', '')"/> - <sourceId value="{$taskFixtureId}"/> - </variable> - - <nts:include value="test.server.successfulRead" scope="common" - resource="Servicerequest" - params="/${{$taskFixtureId}-servicerequest-{$sliceCode}-id}/$document" - useToken="true"/> - - <nts:include value="assert.response.bundleContent" scope="common" bundleType="document"/> -</nts:component> \ No newline at end of file diff --git a/src/ELZ-0-2-0-beta/_components/test.sendingxis.serveTask.xml b/src/ELZ-0-2-0-beta/_components/test.sendingxis.serveTask.xml deleted file mode 100644 index 8f86c1ac41..0000000000 --- a/src/ELZ-0-2-0-beta/_components/test.sendingxis.serveTask.xml +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Test a sending XIS to serve new or updated ELZ Tasks. - @param taskStatus - The expected status of the Task. - @param [responseId] - An optional id to cache the server response to. ---> - -<nts:component xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> - <nts:include value="test.server.read" scope="common" - resource="Task" - params="${task-id}" - useToken="yes"/> - <nts:include value="assert.response.success" scope="common"/> - <action> - <assert> - <label value="Make sure that a Task is returned."/> - <resource value="Task"/> - </assert> - </action> - - <profile id="ELZ-Task"> - <reference value="http://nictiz.nl/fhir/StructureDefinition/hg-ReferralTask"/> - </profile> - <action> - <assert> - <label value="Validate the returned Task to the ELZ Task profile"/> - <validateProfileId value="ELZ-Task"/> - </assert> - </action> - - <action> - <assert> - <label value="Make sure that the Task has status={$taskStatus}."/> - <expression value="Task.status = '{$taskStatus}'"/> - </assert> - </action> -</nts:component> - From 5138ab3e08185776efeda202eb63bc0a319c065f Mon Sep 17 00:00:00 2001 From: Eduard <rijcke@nictiz.nl> Date: Mon, 6 Nov 2023 16:27:56 +0100 Subject: [PATCH 06/16] HZP-192 Testmaterial for ELZ --- .../elz-receiving-xis-scenario-1-minimal.xml | 200 ++++++ .../elz-receiving-xis-scenario-2-maximaal.xml | 200 ++++++ .../load-resources-purgecreateupdate-xml.xml | 648 ++++++++++++++++++ ...zingHuisartsParamedicusMaximaalbericht.xml | 173 +++++ ...zingHuisartsParamedicusMinimaalbericht.xml | 95 +++ .../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 | 40 ++ ...zingHuisartsParamedicusMinimaalbericht.xml | 39 ++ ...zingHuisartsParamedicusMaximaalbericht.xml | 80 +++ ...zingHuisartsParamedicusMinimaalbericht.xml | 80 +++ .../elz-receiving-xis-scenario-1-minimal.xml | 21 +- .../elz-receiving-xis-scenario-2-maximaal.xml | 46 ++ 20 files changed, 2190 insertions(+), 9 deletions(-) create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-maximaal.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_LoadResources/load-resources-purgecreateupdate-xml.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/contactperson-de-Kok.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/organization-04016056-0400.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/organization-04086949.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/patient-XXX-Andrioli.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/patient-van-XXX-Sanderink-de-Kok.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/practitioner-000001111.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/practitioner-04115923.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/practitionerrole-000001111.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/practitionerrole-04115923.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml create mode 100644 src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-2-maximaal.xml diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml new file mode 100644 index 0000000000..cfafc4541a --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml @@ -0,0 +1,200 @@ +<?xml version="1.0" encoding="UTF-8"?> +<TestScript xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> + <id value="elz-receiving-xis-scenario-1-minimal"/> + <meta> + <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> + </meta> + <url value="http://nictiz.nl/fhir/TestScript/elz-receiving-xis-scenario-1-minimal"/> + <version value="R4-patchlevel 2023-10"/> + <name value="ELZ - Receiving XIS - Scenario 1 - Retrieve ELZ resources of XXX-Andrioli"/> + <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 - Retrieve ELZ resources of XXX-Andrioli"/> + <origin> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-origin-types"/> + <code value="FHIR-Client"/> + </profile> + </origin> + <destination> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-destination-types"/> + <code value="FHIR-Server"/> + </profile> + </destination> + <test id="01-retrieve-Task"> + <name value="Scenario 1.1 - Task"/> + <description value="Query Task resource"/> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="search"/> + </type> + <resource value="Task"/> + <description value="Test Client to retrieve Task resources."/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="?_id=task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 9we86dg8-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Make sure that the test server (WildFHIR) gives a success response."/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the test server (WildFHIR) returns a Bundle."/> + <direction value="response"/> + <resource value="Bundle"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the response Bundle contains 1 Task resource(s). "/> + <direction value="response"/> + <expression value="Bundle.entry.where(resource.is(Task)).count() = 1"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test id="02-retrieve-ServiceRequest"> + <name value="Scenario 1.2 - ServiceRequest"/> + <description value="Query ServiceRequest resource"/> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="search"/> + </type> + <resource value="ServiceRequest"/> + <description value="Test Client to retrieve ServiceRequest resources."/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 9we86dg8-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Make sure that the test server (WildFHIR) gives a success response."/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the test server (WildFHIR) returns a Bundle."/> + <direction value="response"/> + <resource value="Bundle"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the response Bundle contains 1 ServiceRequest resource(s). "/> + <direction value="response"/> + <expression value="Bundle.entry.where(resource.is(ServiceRequest)).count() = 1"/> + <warningOnly value="false"/> + </assert> + </action> + </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"/> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="search"/> + </type> + <resource value="Composition"/> + <description value="Test Client to retrieve Composition resources."/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="$document?id=composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 9we86dg8-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Make sure that the test server (WildFHIR) gives a success response."/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the test server (WildFHIR) returns a Bundle."/> + <direction value="response"/> + <resource value="Bundle"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the response Bundle contains 1 Composition resource(s). "/> + <direction value="response"/> + <expression value="Bundle.entry.where(resource.is(Composition)).count() = 1"/> + <warningOnly value="false"/> + </assert> + </action> + </test> +</TestScript> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-maximaal.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-maximaal.xml new file mode 100644 index 0000000000..f13fc925b6 --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-maximaal.xml @@ -0,0 +1,200 @@ +<?xml version="1.0" encoding="UTF-8"?> +<TestScript xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> + <id value="elz-receiving-xis-scenario-2-maximaal"/> + <meta> + <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> + </meta> + <url value="http://nictiz.nl/fhir/TestScript/elz-receiving-xis-scenario-2-maximaal"/> + <version value="R4-patchlevel 2023-10"/> + <name value="ELZ - Receiving XIS - Scenario 2 - Retrieve ELZ resources of van-XXX-Sanderink-de-Kok"/> + <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 - Retrieve ELZ resources of van-XXX-Sanderink-de-Kok"/> + <origin> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-origin-types"/> + <code value="FHIR-Client"/> + </profile> + </origin> + <destination> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-destination-types"/> + <code value="FHIR-Server"/> + </profile> + </destination> + <test id="01-retrieve-Task"> + <name value="Scenario 2.1 - Task"/> + <description value="Query Task resource"/> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="search"/> + </type> + <resource value="Task"/> + <description value="Test Client to retrieve Task resources."/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="?_id=task-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Make sure that the test server (WildFHIR) gives a success response."/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the test server (WildFHIR) returns a Bundle."/> + <direction value="response"/> + <resource value="Bundle"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the response Bundle contains 1 Task resource(s). "/> + <direction value="response"/> + <expression value="Bundle.entry.where(resource.is(Task)).count() = 1"/> + <warningOnly value="false"/> + </assert> + </action> + </test> + <test id="02-retrieve-ServiceRequest"> + <name value="Scenario 2.2 - ServiceRequest"/> + <description value="Query ServiceRequest resource"/> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="search"/> + </type> + <resource value="ServiceRequest"/> + <description value="Test Client to retrieve ServiceRequest resources."/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Make sure that the test server (WildFHIR) gives a success response."/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the test server (WildFHIR) returns a Bundle."/> + <direction value="response"/> + <resource value="Bundle"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the response Bundle contains 1 ServiceRequest resource(s). "/> + <direction value="response"/> + <expression value="Bundle.entry.where(resource.is(ServiceRequest)).count() = 1"/> + <warningOnly value="false"/> + </assert> + </action> + </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"/> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="search"/> + </type> + <resource value="Composition"/> + <description value="Test Client to retrieve Composition resources."/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="$document?id=composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Make sure that the test server (WildFHIR) gives a success response."/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the test server (WildFHIR) returns a Bundle."/> + <direction value="response"/> + <resource value="Bundle"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the response Bundle contains 1 Composition resource(s). "/> + <direction value="response"/> + <expression value="Bundle.entry.where(resource.is(Composition)).count() = 1"/> + <warningOnly value="false"/> + </assert> + </action> + </test> +</TestScript> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_LoadResources/load-resources-purgecreateupdate-xml.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_LoadResources/load-resources-purgecreateupdate-xml.xml new file mode 100644 index 0000000000..7594a32318 --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_LoadResources/load-resources-purgecreateupdate-xml.xml @@ -0,0 +1,648 @@ +<TestScript xmlns="http://hl7.org/fhir"> + <id value="resources-purgecreateupdate-xml"/> + <url value="http://nictiz.nl/fhir/TestScript/load-resources-purgecreateupdate-xml"/> + <name value="Load Test Resources - Purge Create Update - XML"/> + <status value="active"/> + <publisher value="Nictiz"/> + <contact> + <name value="MedMij"/> + <telecom> + <system value="email"/> + <value value="kwalificatie@nictiz.nl"/> + <use value="work"/> + </telecom> + </contact> + <description value="Load test resources using the update (PUT) operation of the target FHIR server for use in testing. All resource ids are pre-defined. The target XIS FHIR server is expected to support resource create via the update (PUT) operation for client assigned ids. "/> + <copyright value="© Nictiz 2020"/> + <fixture id="Composition-d3e1-composition-hg-VerwijzingHuisartsParamedicusMax"> + <autocreate value="false"/> + <autodelete value="false"/> + <resource> + <reference value="../_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml"/> + </resource> + </fixture> + <fixture id="Composition-d4e1-composition-hg-VerwijzingHuisartsParamedicusMin"> + <autocreate value="false"/> + <autodelete value="false"/> + <resource> + <reference value="../_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml"/> + </resource> + </fixture> + <fixture id="Organization-organization-04016056-0400"> + <autocreate value="false"/> + <autodelete value="false"/> + <resource> + <reference value="../_reference/resources/organization-04016056-0400.xml"/> + </resource> + </fixture> + <fixture id="Organization-organization-04086949"> + <autocreate value="false"/> + <autodelete value="false"/> + <resource> + <reference value="../_reference/resources/organization-04086949.xml"/> + </resource> + </fixture> + <fixture id="Patient-patient-van-XXX-Sanderink-de-Kok"> + <autocreate value="false"/> + <autodelete value="false"/> + <resource> + <reference value="../_reference/resources/patient-van-XXX-Sanderink-de-Kok.xml"/> + </resource> + </fixture> + <fixture id="Patient-patient-XXX-Andrioli"> + <autocreate value="false"/> + <autodelete value="false"/> + <resource> + <reference value="../_reference/resources/patient-XXX-Andrioli.xml"/> + </resource> + </fixture> + <fixture id="Practitioner-practitioner-000001111"> + <autocreate value="false"/> + <autodelete value="false"/> + <resource> + <reference value="../_reference/resources/practitioner-000001111.xml"/> + </resource> + </fixture> + <fixture id="Practitioner-practitioner-04115923"> + <autocreate value="false"/> + <autodelete value="false"/> + <resource> + <reference value="../_reference/resources/practitioner-04115923.xml"/> + </resource> + </fixture> + <fixture id="PractitionerRole-practitionerrole-000001111"> + <autocreate value="false"/> + <autodelete value="false"/> + <resource> + <reference value="../_reference/resources/practitionerrole-000001111.xml"/> + </resource> + </fixture> + <fixture id="PractitionerRole-practitionerrole-04115923"> + <autocreate value="false"/> + <autodelete value="false"/> + <resource> + <reference value="../_reference/resources/practitionerrole-04115923.xml"/> + </resource> + </fixture> + <fixture id="RelatedPerson-contactperson-de-Kok"> + <autocreate value="false"/> + <autodelete value="false"/> + <resource> + <reference value="../_reference/resources/contactperson-de-Kok.xml"/> + </resource> + </fixture> + <fixture id="ServiceRequest-d14e1-servicerequest-hg-VerwijzingHuisartsParamed"> + <autocreate value="false"/> + <autodelete value="false"/> + <resource> + <reference value="../_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml"/> + </resource> + </fixture> + <fixture id="ServiceRequest-d15e1-servicerequest-hg-VerwijzingHuisartsParamed"> + <autocreate value="false"/> + <autodelete value="false"/> + <resource> + <reference value="../_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml"/> + </resource> + </fixture> + <fixture id="Task-task-hg-VerwijzingHuisartsParamedicusMaximaalbericht"> + <autocreate value="false"/> + <autodelete value="false"/> + <resource> + <reference value="../_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml"/> + </resource> + </fixture> + <fixture id="Task-task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"> + <autocreate value="false"/> + <autodelete value="false"/> + <resource> + <reference value="../_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml"/> + </resource> + </fixture> + <variable> + <name value="Composition-d3e1-composition-hg-VerwijzingHuisartsParamedicusMax-id"/> + <expression value="Composition.id"/> + <sourceId value="Composition-d3e1-composition-hg-VerwijzingHuisartsParamedicusMax"/> + </variable> + <variable> + <name value="Composition-d4e1-composition-hg-VerwijzingHuisartsParamedicusMin-id"/> + <expression value="Composition.id"/> + <sourceId value="Composition-d4e1-composition-hg-VerwijzingHuisartsParamedicusMin"/> + </variable> + <variable> + <name value="Organization-organization-04016056-0400-id"/> + <expression value="Organization.id"/> + <sourceId value="Organization-organization-04016056-0400"/> + </variable> + <variable> + <name value="Organization-organization-04086949-id"/> + <expression value="Organization.id"/> + <sourceId value="Organization-organization-04086949"/> + </variable> + <variable> + <name value="Patient-patient-van-XXX-Sanderink-de-Kok-id"/> + <expression value="Patient.id"/> + <sourceId value="Patient-patient-van-XXX-Sanderink-de-Kok"/> + </variable> + <variable> + <name value="Patient-patient-XXX-Andrioli-id"/> + <expression value="Patient.id"/> + <sourceId value="Patient-patient-XXX-Andrioli"/> + </variable> + <variable> + <name value="Practitioner-practitioner-000001111-id"/> + <expression value="Practitioner.id"/> + <sourceId value="Practitioner-practitioner-000001111"/> + </variable> + <variable> + <name value="Practitioner-practitioner-04115923-id"/> + <expression value="Practitioner.id"/> + <sourceId value="Practitioner-practitioner-04115923"/> + </variable> + <variable> + <name value="PractitionerRole-practitionerrole-000001111-id"/> + <expression value="PractitionerRole.id"/> + <sourceId value="PractitionerRole-practitionerrole-000001111"/> + </variable> + <variable> + <name value="PractitionerRole-practitionerrole-04115923-id"/> + <expression value="PractitionerRole.id"/> + <sourceId value="PractitionerRole-practitionerrole-04115923"/> + </variable> + <variable> + <name value="RelatedPerson-contactperson-de-Kok-id"/> + <expression value="RelatedPerson.id"/> + <sourceId value="RelatedPerson-contactperson-de-Kok"/> + </variable> + <variable> + <name value="ServiceRequest-d14e1-servicerequest-hg-VerwijzingHuisartsParamed-id"/> + <expression value="ServiceRequest.id"/> + <sourceId value="ServiceRequest-d14e1-servicerequest-hg-VerwijzingHuisartsParamed"/> + </variable> + <variable> + <name value="ServiceRequest-d15e1-servicerequest-hg-VerwijzingHuisartsParamed-id"/> + <expression value="ServiceRequest.id"/> + <sourceId value="ServiceRequest-d15e1-servicerequest-hg-VerwijzingHuisartsParamed"/> + </variable> + <variable> + <name value="Task-task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id"/> + <expression value="Task.id"/> + <sourceId value="Task-task-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + </variable> + <variable> + <name value="Task-task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id"/> + <expression value="Task.id"/> + <sourceId value="Task-task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + </variable> + <variable> + <name value="T"/> + <defaultValue value="${CURRENTDATE}"/> + <description value="Date that data and queries are expected to be relative to."/> + </variable> + <setup> + <action> + <operation> + <type> + <system value="http://touchstone.com/fhir/extended-operation-codes"/> + <code value="purge"/> + </type> + <resource value="Patient"/> + <accept value="xml"/> + <contentType value="xml"/> + <encodeRequestUrl value="true"/> + <params value="patient-van-XXX-Sanderink-de-Kok/$purge"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the returned HTTP status is 200(OK) or 204(No Content)"/> + <operator value="in"/> + <responseCode value="200,204"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <operation> + <type> + <system value="http://touchstone.com/fhir/extended-operation-codes"/> + <code value="purge"/> + </type> + <resource value="Patient"/> + <accept value="xml"/> + <contentType value="xml"/> + <encodeRequestUrl value="true"/> + <params value="patient-XXX-Andrioli/$purge"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 9we86dg8-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the returned HTTP status is 200(OK) or 204(No Content)"/> + <operator value="in"/> + <responseCode value="200,204"/> + <warningOnly value="false"/> + </assert> + </action> + </setup> + <test id="Step1-LoadTestResourceCreate"> + <name value="Step1-LoadTestResourceCreate"/> + <description value="Load test resources using the update (PUT) operation of the target FHIR server for use in testing. All resource ids are pre-defined. The target XIS FHIR server is expected to support resource create via the update (PUT) operation for client assigned ids. "/> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="updateCreate"/> + </type> + <resource value="Patient"/> + <accept value="xml"/> + <contentType value="xml"/> + <encodeRequestUrl value="true"/> + <params value="/${Patient-patient-van-XXX-Sanderink-de-Kok-id}"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + <sourceId value="Patient-patient-van-XXX-Sanderink-de-Kok"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the returned HTTP status is 200(OK) or 201(Created)."/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="updateCreate"/> + </type> + <resource value="Patient"/> + <accept value="xml"/> + <contentType value="xml"/> + <encodeRequestUrl value="true"/> + <params value="/${Patient-patient-XXX-Andrioli-id}"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 9we86dg8-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + <sourceId value="Patient-patient-XXX-Andrioli"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the returned HTTP status is 200(OK) or 201(Created)."/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="updateCreate"/> + </type> + <resource value="Composition"/> + <accept value="xml"/> + <contentType value="xml"/> + <encodeRequestUrl value="true"/> + <params value="/${Composition-d3e1-composition-hg-VerwijzingHuisartsParamedicusMax-id}"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + <sourceId value="Composition-d3e1-composition-hg-VerwijzingHuisartsParamedicusMax"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the returned HTTP status is 200(OK) or 201(Created)."/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="updateCreate"/> + </type> + <resource value="Composition"/> + <accept value="xml"/> + <contentType value="xml"/> + <encodeRequestUrl value="true"/> + <params value="/${Composition-d4e1-composition-hg-VerwijzingHuisartsParamedicusMin-id}"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + <sourceId value="Composition-d4e1-composition-hg-VerwijzingHuisartsParamedicusMin"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the returned HTTP status is 200(OK) or 201(Created)."/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="updateCreate"/> + </type> + <resource value="Organization"/> + <accept value="xml"/> + <contentType value="xml"/> + <encodeRequestUrl value="true"/> + <params value="/${Organization-organization-04016056-0400-id}"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + <sourceId value="Organization-organization-04016056-0400"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the returned HTTP status is 200(OK) or 201(Created)."/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="updateCreate"/> + </type> + <resource value="Organization"/> + <accept value="xml"/> + <contentType value="xml"/> + <encodeRequestUrl value="true"/> + <params value="/${Organization-organization-04086949-id}"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + <sourceId value="Organization-organization-04086949"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the returned HTTP status is 200(OK) or 201(Created)."/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="updateCreate"/> + </type> + <resource value="Practitioner"/> + <accept value="xml"/> + <contentType value="xml"/> + <encodeRequestUrl value="true"/> + <params value="/${Practitioner-practitioner-000001111-id}"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + <sourceId value="Practitioner-practitioner-000001111"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the returned HTTP status is 200(OK) or 201(Created)."/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="updateCreate"/> + </type> + <resource value="Practitioner"/> + <accept value="xml"/> + <contentType value="xml"/> + <encodeRequestUrl value="true"/> + <params value="/${Practitioner-practitioner-04115923-id}"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + <sourceId value="Practitioner-practitioner-04115923"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the returned HTTP status is 200(OK) or 201(Created)."/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="updateCreate"/> + </type> + <resource value="PractitionerRole"/> + <accept value="xml"/> + <contentType value="xml"/> + <encodeRequestUrl value="true"/> + <params value="/${PractitionerRole-practitionerrole-000001111-id}"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + <sourceId value="PractitionerRole-practitionerrole-000001111"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the returned HTTP status is 200(OK) or 201(Created)."/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="updateCreate"/> + </type> + <resource value="PractitionerRole"/> + <accept value="xml"/> + <contentType value="xml"/> + <encodeRequestUrl value="true"/> + <params value="/${PractitionerRole-practitionerrole-04115923-id}"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + <sourceId value="PractitionerRole-practitionerrole-04115923"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the returned HTTP status is 200(OK) or 201(Created)."/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="updateCreate"/> + </type> + <resource value="RelatedPerson"/> + <accept value="xml"/> + <contentType value="xml"/> + <encodeRequestUrl value="true"/> + <params value="/${RelatedPerson-contactperson-de-Kok-id}"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + <sourceId value="RelatedPerson-contactperson-de-Kok"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the returned HTTP status is 200(OK) or 201(Created)."/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="updateCreate"/> + </type> + <resource value="ServiceRequest"/> + <accept value="xml"/> + <contentType value="xml"/> + <encodeRequestUrl value="true"/> + <params value="/${ServiceRequest-d14e1-servicerequest-hg-VerwijzingHuisartsParamed-id}"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + <sourceId value="ServiceRequest-d14e1-servicerequest-hg-VerwijzingHuisartsParamed"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the returned HTTP status is 200(OK) or 201(Created)."/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="updateCreate"/> + </type> + <resource value="ServiceRequest"/> + <accept value="xml"/> + <contentType value="xml"/> + <encodeRequestUrl value="true"/> + <params value="/${ServiceRequest-d15e1-servicerequest-hg-VerwijzingHuisartsParamed-id}"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + <sourceId value="ServiceRequest-d15e1-servicerequest-hg-VerwijzingHuisartsParamed"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the returned HTTP status is 200(OK) or 201(Created)."/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="updateCreate"/> + </type> + <resource value="Task"/> + <accept value="xml"/> + <contentType value="xml"/> + <encodeRequestUrl value="true"/> + <params value="/${Task-task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + <sourceId value="Task-task-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the returned HTTP status is 200(OK) or 201(Created)."/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="updateCreate"/> + </type> + <resource value="Task"/> + <accept value="xml"/> + <contentType value="xml"/> + <encodeRequestUrl value="true"/> + <params value="/${Task-task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}"/> + <requestHeader> + <field value="Authorization"/> + <value value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + </requestHeader> + <sourceId value="Task-task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + </operation> + </action> + <action> + <assert> + <description value="Confirm that the returned HTTP status is 200(OK) or 201(Created)."/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + </test> +</TestScript> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml new file mode 100644 index 0000000000..a76321e554 --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml @@ -0,0 +1,173 @@ +<Composition xmlns="http://hl7.org/fhir"> + <id value="composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <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, Sandra Janine (Sandra) van XXX_Sanderink. Id: hg-VerwijzingHuisartsParamedicusMaximaalbericht, Status: definitief<span style="display: block;">Auteur: Healthcare professional (role), Huisartsen, niet nader gespecificeerd, Gezondheidscentrum de Brug</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>${DATE}</td> + </tr> + </tbody> + </table> + </div> + </text> + <identifier> + <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="${DATE}"/> + <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/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml new file mode 100644 index 0000000000..ebbede009a --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml @@ -0,0 +1,95 @@ +<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, 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>${DATE}</td> + </tr> + </tbody> + </table> + </div> + </text> + <identifier> + <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="${DATE}"/> + <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/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/contactperson-de-Kok.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/contactperson-de-Kok.xml new file mode 100644 index 0000000000..26cb136ba1 --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_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 - http://terminology.hl7.org/CodeSystem/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/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/organization-04016056-0400.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/organization-04016056-0400.xml new file mode 100644 index 0000000000..b80148104b --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_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/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/organization-04086949.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/organization-04086949.xml new file mode 100644 index 0000000000..b8fc7f522c --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_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/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/patient-XXX-Andrioli.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/patient-XXX-Andrioli.xml new file mode 100644 index 0000000000..5562997ebc --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_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/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/patient-van-XXX-Sanderink-de-Kok.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/patient-van-XXX-Sanderink-de-Kok.xml new file mode 100644 index 0000000000..3d518d83fe --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_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/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/practitioner-000001111.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/practitioner-000001111.xml new file mode 100644 index 0000000000..e7dbb5de53 --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_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/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/practitioner-04115923.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/practitioner-04115923.xml new file mode 100644 index 0000000000..55996da9c9 --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_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/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/practitionerrole-000001111.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/practitionerrole-000001111.xml new file mode 100644 index 0000000000..e2bf409616 --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_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/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/practitionerrole-04115923.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/practitionerrole-04115923.xml new file mode 100644 index 0000000000..61d11be5f9 --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_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/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml new file mode 100644 index 0000000000..bf848e74bd --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml @@ -0,0 +1,40 @@ +<ServiceRequest xmlns="http://hl7.org/fhir"> + <id value="servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/hg-ReferralServiceRequest"/> + </meta> + <identifier> + <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="${DATE}"/> + <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/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml new file mode 100644 index 0000000000..553ee222f8 --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml @@ -0,0 +1,39 @@ +<ServiceRequest xmlns="http://hl7.org/fhir"> + <id value="servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <meta> + <profile value="http://nictiz.nl/fhir/StructureDefinition/hg-ReferralServiceRequest"/> + </meta> + <identifier> + <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="${DATE}"/> + <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/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml new file mode 100644 index 0000000000..484e2f2376 --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml @@ -0,0 +1,80 @@ +<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, 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>${DATE}</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> + <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="${DATE}"/> + <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/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml new file mode 100644 index 0000000000..dcc81865f0 --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml @@ -0,0 +1,80 @@ +<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, 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>${DATE}</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> + <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="${DATE}"/> + <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-minimal.xml b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml index 76fe0fcd0f..7f4aa637de 100644 --- a/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml +++ b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml @@ -1,11 +1,11 @@ <?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="XIS"> + nts:scenario="client"> <id value="elz-receiving-xis-scenario-1-minimal"/> <version value="R4"/> - <name value="ELZ - Receiving XIS - Scenario 1.1 - Retrieve ELZ resources of XXX-Andrioli"/> - <description value="Scenario 1.1 - Retrieve ELZ resources of XXX-Andrioli"/> + <name value="ELZ - Receiving XIS - Scenario 1 - Retrieve ELZ resources of XXX-Andrioli"/> + <description value="Scenario 1 - Retrieve ELZ resources of XXX-Andrioli"/> <nts:authToken patientResourceId="patient-XXX-Andrioli"/> <test id="01-retrieve-Task"> @@ -14,27 +14,30 @@ value="Query Task resource"/> <nts:include value="test.client.search" scope="common" resource="Task" - params="?_id=task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + params="?_id=task-hg-VerwijzingHuisartsParamedicusMinimaalbericht" + useToken="true"/> <nts:include value="canary-assert.response.successfulSearch" scope="common"/> <nts:include value="assert.response.numResources" scope="common" resource="Task" count="1"/> </test> <test id="02-retrieve-ServiceRequest"> - <name value="Scenario 1.1 - ServiceRequest"/> + <name value="Scenario 1.2 - ServiceRequest"/> <description value="Query ServiceRequest resource"/> <nts:include value="test.client.search" scope="common" resource="ServiceRequest" - params="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + params="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht" + useToken="true"/> <nts:include value="canary-assert.response.successfulSearch" scope="common"/> <nts:include value="assert.response.numResources" scope="common" resource="ServiceRequest" count="1"/> </test> <test id="03-retrieve-Composition"> - <name value="Scenario 1.1 - Composition"/> - <description value="Query Composition resource and bundle all the references"/> + <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.search" scope="common" resource="Composition" - params="_id=composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + params="$document?id=composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht" + useToken="true"/> <nts:include value="canary-assert.response.successfulSearch" scope="common"/> <nts:include value="assert.response.numResources" scope="common" resource="Composition" count="1"/> diff --git a/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-2-maximaal.xml b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-2-maximaal.xml new file mode 100644 index 0000000000..88d3a6193f --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-2-maximaal.xml @@ -0,0 +1,46 @@ +<?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-maximaal"/> + <version value="R4"/> + <name value="ELZ - Receiving XIS - Scenario 2 - Retrieve ELZ resources of van-XXX-Sanderink-de-Kok"/> + <description value="Scenario 2 - 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 2.1 - Task"/> + <description + value="Query Task resource"/> + <nts:include value="test.client.search" scope="common" + resource="Task" + params="?_id=task-hg-VerwijzingHuisartsParamedicusMaximaalbericht" + useToken="true"/> + <nts:include value="canary-assert.response.successfulSearch" scope="common"/> + <nts:include value="assert.response.numResources" scope="common" + resource="Task" count="1"/> + </test> + + <test id="02-retrieve-ServiceRequest"> + <name value="Scenario 2.2 - ServiceRequest"/> + <description value="Query ServiceRequest resource"/> + <nts:include value="test.client.search" scope="common" resource="ServiceRequest" + params="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht" + useToken="true"/> + <nts:include value="canary-assert.response.successfulSearch" scope="common"/> + <nts:include value="assert.response.numResources" scope="common" + resource="ServiceRequest" count="1"/> + </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.search" scope="common" resource="Composition" + params="$document?id=composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht" + useToken="true"/> + <nts:include value="canary-assert.response.successfulSearch" scope="common"/> + <nts:include value="assert.response.numResources" scope="common" + resource="Composition" count="1"/> + </test> + +</TestScript> From 2376b585a8255bb620f9e9dd874c30f1797506fe Mon Sep 17 00:00:00 2001 From: Eduard <rijcke@nictiz.nl> Date: Fri, 10 Nov 2023 16:46:11 +0100 Subject: [PATCH 07/16] HZP-192 Changed the scenarios --- ...l => elz-receiving-xis-scenario-1-maximaal.xml} | 14 +++++++------- ...ml => elz-receiving-xis-scenario-2-minimal.xml} | 14 +++++++------- ...l => elz-receiving-xis-scenario-1-maximaal.xml} | 12 ++++++------ ...ml => elz-receiving-xis-scenario-2-minimal.xml} | 12 ++++++------ 4 files changed, 26 insertions(+), 26 deletions(-) rename dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/{elz-receiving-xis-scenario-2-maximaal.xml => elz-receiving-xis-scenario-1-maximaal.xml} (95%) rename dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/{elz-receiving-xis-scenario-1-minimal.xml => elz-receiving-xis-scenario-2-minimal.xml} (95%) rename src/ELZ-0-2-0-beta/Test/Receiving-XIS/{elz-receiving-xis-scenario-2-maximaal.xml => elz-receiving-xis-scenario-1-maximaal.xml} (86%) rename src/ELZ-0-2-0-beta/Test/Receiving-XIS/{elz-receiving-xis-scenario-1-minimal.xml => elz-receiving-xis-scenario-2-minimal.xml} (86%) diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-maximaal.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximaal.xml similarity index 95% rename from dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-maximaal.xml rename to dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximaal.xml index f13fc925b6..08bd8902c0 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-maximaal.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximaal.xml @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="UTF-8"?> <TestScript xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> - <id value="elz-receiving-xis-scenario-2-maximaal"/> + <id value="elz-receiving-xis-scenario-1-maximaal"/> <meta> <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> - <url value="http://nictiz.nl/fhir/TestScript/elz-receiving-xis-scenario-2-maximaal"/> + <url value="http://nictiz.nl/fhir/TestScript/elz-receiving-xis-scenario-1-maximaal"/> <version value="R4-patchlevel 2023-10"/> - <name value="ELZ - Receiving XIS - Scenario 2 - Retrieve ELZ resources of van-XXX-Sanderink-de-Kok"/> + <name value="ELZ - Receiving XIS - Scenario 1 - Retrieve ELZ resources of van-XXX-Sanderink-de-Kok"/> <status value="active"/> <publisher value="Nictiz"/> <contact> @@ -17,7 +17,7 @@ <use value="work"/> </telecom> </contact> - <description value="Scenario 2 - Retrieve ELZ resources of van-XXX-Sanderink-de-Kok"/> + <description value="Scenario 1 - Retrieve ELZ resources of van-XXX-Sanderink-de-Kok"/> <origin> <index value="1"/> <profile> @@ -33,7 +33,7 @@ </profile> </destination> <test id="01-retrieve-Task"> - <name value="Scenario 2.1 - Task"/> + <name value="Scenario 1.1 - Task"/> <description value="Query Task resource"/> <action> <operation> @@ -88,7 +88,7 @@ </action> </test> <test id="02-retrieve-ServiceRequest"> - <name value="Scenario 2.2 - ServiceRequest"/> + <name value="Scenario 1.2 - ServiceRequest"/> <description value="Query ServiceRequest resource"/> <action> <operation> @@ -143,7 +143,7 @@ </action> </test> <test id="03-retrieve-Composition"> - <name value="Scenario 2.3 - Composition"/> + <name value="Scenario 1.3 - Composition"/> <description value="Query Composition resource with all the references by using the Document operation"/> <action> <operation> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml similarity index 95% rename from dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml rename to dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml index cfafc4541a..123dd61710 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="UTF-8"?> <TestScript xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> - <id value="elz-receiving-xis-scenario-1-minimal"/> + <id value="elz-receiving-xis-scenario-2-minimal"/> <meta> <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> - <url value="http://nictiz.nl/fhir/TestScript/elz-receiving-xis-scenario-1-minimal"/> + <url value="http://nictiz.nl/fhir/TestScript/elz-receiving-xis-scenario-2-minimal"/> <version value="R4-patchlevel 2023-10"/> - <name value="ELZ - Receiving XIS - Scenario 1 - Retrieve ELZ resources of XXX-Andrioli"/> + <name value="ELZ - Receiving XIS - Scenario 2 - Retrieve ELZ resources of XXX-Andrioli"/> <status value="active"/> <publisher value="Nictiz"/> <contact> @@ -17,7 +17,7 @@ <use value="work"/> </telecom> </contact> - <description value="Scenario 1 - Retrieve ELZ resources of XXX-Andrioli"/> + <description value="Scenario 2 - Retrieve ELZ resources of XXX-Andrioli"/> <origin> <index value="1"/> <profile> @@ -33,7 +33,7 @@ </profile> </destination> <test id="01-retrieve-Task"> - <name value="Scenario 1.1 - Task"/> + <name value="Scenario 2.1 - Task"/> <description value="Query Task resource"/> <action> <operation> @@ -88,7 +88,7 @@ </action> </test> <test id="02-retrieve-ServiceRequest"> - <name value="Scenario 1.2 - ServiceRequest"/> + <name value="Scenario 2.2 - ServiceRequest"/> <description value="Query ServiceRequest resource"/> <action> <operation> @@ -143,7 +143,7 @@ </action> </test> <test id="03-retrieve-Composition"> - <name value="Scenario 1.3 - Composition"/> + <name value="Scenario 2.3 - Composition"/> <description value="Query Composition resource with all the references by using the Document operation"/> <action> <operation> diff --git a/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-2-maximaal.xml b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-maximaal.xml similarity index 86% rename from src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-2-maximaal.xml rename to src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-maximaal.xml index 88d3a6193f..458cd779c6 100644 --- a/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-2-maximaal.xml +++ b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-maximaal.xml @@ -2,14 +2,14 @@ <?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-maximaal"/> + <id value="elz-receiving-xis-scenario-1-maximaal"/> <version value="R4"/> - <name value="ELZ - Receiving XIS - Scenario 2 - Retrieve ELZ resources of van-XXX-Sanderink-de-Kok"/> - <description value="Scenario 2 - Retrieve ELZ resources of van-XXX-Sanderink-de-Kok"/> + <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 2.1 - Task"/> + <name value="Scenario 1.1 - Task"/> <description value="Query Task resource"/> <nts:include value="test.client.search" scope="common" @@ -22,7 +22,7 @@ </test> <test id="02-retrieve-ServiceRequest"> - <name value="Scenario 2.2 - ServiceRequest"/> + <name value="Scenario 1.2 - ServiceRequest"/> <description value="Query ServiceRequest resource"/> <nts:include value="test.client.search" scope="common" resource="ServiceRequest" params="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht" @@ -33,7 +33,7 @@ </test> <test id="03-retrieve-Composition"> - <name value="Scenario 2.3 - 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.search" scope="common" resource="Composition" params="$document?id=composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht" diff --git a/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml similarity index 86% rename from src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml rename to src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml index 7f4aa637de..197cabf4ad 100644 --- a/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-minimal.xml +++ b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml @@ -2,14 +2,14 @@ <?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-minimal"/> + <id value="elz-receiving-xis-scenario-2-minimal"/> <version value="R4"/> - <name value="ELZ - Receiving XIS - Scenario 1 - Retrieve ELZ resources of XXX-Andrioli"/> - <description value="Scenario 1 - Retrieve ELZ resources of XXX-Andrioli"/> + <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 1.1 - Task"/> + <name value="Scenario 2.1 - Task"/> <description value="Query Task resource"/> <nts:include value="test.client.search" scope="common" @@ -22,7 +22,7 @@ </test> <test id="02-retrieve-ServiceRequest"> - <name value="Scenario 1.2 - ServiceRequest"/> + <name value="Scenario 2.2 - ServiceRequest"/> <description value="Query ServiceRequest resource"/> <nts:include value="test.client.search" scope="common" resource="ServiceRequest" params="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht" @@ -33,7 +33,7 @@ </test> <test id="03-retrieve-Composition"> - <name value="Scenario 1.3 - 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.search" scope="common" resource="Composition" params="$document?id=composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht" From 8caa47805d1a629c59303d12c2f26ccfc1abc71b Mon Sep 17 00:00:00 2001 From: Eduard <rijcke@nictiz.nl> Date: Fri, 26 Jan 2024 16:25:27 +0100 Subject: [PATCH 08/16] ELZ-109 Added the Test material for Serving XIS of ELZ --- ... elz-receiving-xis-scenario-1-maximal.xml} | 4 +- ...lz-serving-xis-scenario-1-maximal-json.xml | 693 ++++++++++++++++++ ...elz-serving-xis-scenario-1-maximal-xml.xml | 693 ++++++++++++++++++ ...lz-serving-xis-scenario-2-minimal-json.xml | 693 ++++++++++++++++++ ...elz-serving-xis-scenario-2-minimal-xml.xml | 693 ++++++++++++++++++ ...sert_response_queryParamsInSelfLink.groovy | 39 + ... elz-receiving-xis-scenario-1-maximal.xml} | 2 +- .../elz-serving-xis-scenario-1-maximal.xml | 43 ++ .../elz-serving-xis-scenario-2-minimal.xml | 43 ++ 9 files changed, 2900 insertions(+), 3 deletions(-) rename dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/{elz-receiving-xis-scenario-1-maximaal.xml => elz-receiving-xis-scenario-1-maximal.xml} (99%) create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/rules/assert_response_queryParamsInSelfLink.groovy rename src/ELZ-0-2-0-beta/Test/Receiving-XIS/{elz-receiving-xis-scenario-1-maximaal.xml => elz-receiving-xis-scenario-1-maximal.xml} (97%) 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 diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximaal.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml similarity index 99% rename from dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximaal.xml rename to dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml index 08bd8902c0..f4b399a4c3 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximaal.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> <TestScript xmlns="http://hl7.org/fhir" xmlns:nts="http://nictiz.nl/xsl/testscript"> - <id value="elz-receiving-xis-scenario-1-maximaal"/> + <id value="elz-receiving-xis-scenario-1-maximal"/> <meta> <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> - <url value="http://nictiz.nl/fhir/TestScript/elz-receiving-xis-scenario-1-maximaal"/> + <url value="http://nictiz.nl/fhir/TestScript/elz-receiving-xis-scenario-1-maximal"/> <version value="R4-patchlevel 2023-10"/> <name value="ELZ - Receiving XIS - Scenario 1 - Retrieve ELZ resources of van-XXX-Sanderink-de-Kok"/> <status value="active"/> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml new file mode 100644 index 0000000000..d9b8c5f96e --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml @@ -0,0 +1,693 @@ +<?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-json"/> + <meta> + <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> + </meta> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule"> + <extension url="ruleId"> + <valueId value="assert-response-queryParamsInSelfLink"/> + </extension> + <extension url="path"> + <valueString value="../_reference/rules/assert_response_queryParamsInSelfLink.groovy"/> + </extension> + </extension> + <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-1-maximal-json"/> + <version value="R4-patchlevel 2023-10"/> + <name value="ELZ - Serving XIS - Scenario 1 - Serving ELZ resources of van-XXX-Sanderink-de-Kok - 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> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-origin-types"/> + <code value="FHIR-Client"/> + </profile> + </origin> + <destination> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-destination-types"/> + <code value="FHIR-Server"/> + </profile> + </destination> + <profile id="Bundle-profile"> + <reference value="http://hl7.org/fhir/StructureDefinition/Bundle"/> + </profile> + <variable> + <name value="patient-token-id"/> + <defaultValue value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + <description value="OAuth Token for current patient"/> + </variable> + <test id="01-serve-Task"> + <name value="Scenario 1.1 - Task"/> + <description value="Serve Task resource"/> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="search"/> + </type> + <resource value="Task"/> + <description value="Test Server to serve Task resources."/> + <accept value="json"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="?_id=task-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned resource type is Bundle."/> + <direction value="response"/> + <resource value="Bundle"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle type is searchset."/> + <direction value="response"/> + <expression value="Bundle.type"/> + <operator value="equals"/> + <value value="searchset"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> + <direction value="response"/> + <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> + <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> + <direction value="response"/> + <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> + <direction value="response"/> + <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> + <direction value="response"/> + <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> + <direction value="response"/> + <validateProfileId value="Bundle-profile"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.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> + <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.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> + <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="Bundle.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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> + <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> + <direction value="response"/> + <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle contains a self link."/> + <direction value="response"/> + <expression value="Bundle.link.where(relation = 'self' and url.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> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> + <extension url="ruleId"> + <valueId value="assert-response-queryParamsInSelfLink"/> + </extension> + </extension> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the response Bundle contains 1 Task resource(s). "/> + <direction value="response"/> + <expression value="Bundle.entry.where(resource.is(Task)).count() = 1"/> + <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://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="search"/> + </type> + <resource value="ServiceRequest"/> + <description value="Test Server to serve ServiceRequest resources."/> + <accept value="json"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned resource type is Bundle."/> + <direction value="response"/> + <resource value="Bundle"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle type is searchset."/> + <direction value="response"/> + <expression value="Bundle.type"/> + <operator value="equals"/> + <value value="searchset"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> + <direction value="response"/> + <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> + <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> + <direction value="response"/> + <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> + <direction value="response"/> + <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> + <direction value="response"/> + <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> + <direction value="response"/> + <validateProfileId value="Bundle-profile"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.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> + <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.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> + <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="Bundle.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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> + <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> + <direction value="response"/> + <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle contains a self link."/> + <direction value="response"/> + <expression value="Bundle.link.where(relation = 'self' and url.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> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> + <extension url="ruleId"> + <valueId value="assert-response-queryParamsInSelfLink"/> + </extension> + </extension> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the response Bundle contains 1 ServiceRequest resource(s). "/> + <direction value="response"/> + <expression value="Bundle.entry.where(resource.is(ServiceRequest)).count() = 1"/> + <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://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="search"/> + </type> + <resource value="Composition"/> + <description value="Test Server to serve Composition resources."/> + <accept value="json"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="$document?id=composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned resource type is Bundle."/> + <direction value="response"/> + <resource value="Bundle"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle type is searchset."/> + <direction value="response"/> + <expression value="Bundle.type"/> + <operator value="equals"/> + <value value="searchset"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> + <direction value="response"/> + <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> + <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> + <direction value="response"/> + <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> + <direction value="response"/> + <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> + <direction value="response"/> + <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> + <direction value="response"/> + <validateProfileId value="Bundle-profile"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.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> + <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.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> + <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="Bundle.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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> + <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> + <direction value="response"/> + <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle contains a self link."/> + <direction value="response"/> + <expression value="Bundle.link.where(relation = 'self' and url.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> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> + <extension url="ruleId"> + <valueId value="assert-response-queryParamsInSelfLink"/> + </extension> + </extension> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the response Bundle contains 1 Composition resource(s). "/> + <direction value="response"/> + <expression value="Bundle.entry.where(resource.is(Composition)).count() = 1"/> + <warningOnly value="false"/> + </assert> + </action> + </test> +</TestScript> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml new file mode 100644 index 0000000000..ee5ff5a2c9 --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml @@ -0,0 +1,693 @@ +<?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-xml"/> + <meta> + <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> + </meta> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule"> + <extension url="ruleId"> + <valueId value="assert-response-queryParamsInSelfLink"/> + </extension> + <extension url="path"> + <valueString value="../_reference/rules/assert_response_queryParamsInSelfLink.groovy"/> + </extension> + </extension> + <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-1-maximal-xml"/> + <version value="R4-patchlevel 2023-10"/> + <name value="ELZ - Serving XIS - Scenario 1 - Serving ELZ resources of van-XXX-Sanderink-de-Kok - 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> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-origin-types"/> + <code value="FHIR-Client"/> + </profile> + </origin> + <destination> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-destination-types"/> + <code value="FHIR-Server"/> + </profile> + </destination> + <profile id="Bundle-profile"> + <reference value="http://hl7.org/fhir/StructureDefinition/Bundle"/> + </profile> + <variable> + <name value="patient-token-id"/> + <defaultValue value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + <description value="OAuth Token for current patient"/> + </variable> + <test id="01-serve-Task"> + <name value="Scenario 1.1 - Task"/> + <description value="Serve Task resource"/> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="search"/> + </type> + <resource value="Task"/> + <description value="Test Server to serve Task resources."/> + <accept value="xml"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="?_id=task-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned resource type is Bundle."/> + <direction value="response"/> + <resource value="Bundle"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle type is searchset."/> + <direction value="response"/> + <expression value="Bundle.type"/> + <operator value="equals"/> + <value value="searchset"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> + <direction value="response"/> + <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> + <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> + <direction value="response"/> + <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> + <direction value="response"/> + <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> + <direction value="response"/> + <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> + <direction value="response"/> + <validateProfileId value="Bundle-profile"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.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> + <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.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> + <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="Bundle.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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> + <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> + <direction value="response"/> + <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle contains a self link."/> + <direction value="response"/> + <expression value="Bundle.link.where(relation = 'self' and url.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> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> + <extension url="ruleId"> + <valueId value="assert-response-queryParamsInSelfLink"/> + </extension> + </extension> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the response Bundle contains 1 Task resource(s). "/> + <direction value="response"/> + <expression value="Bundle.entry.where(resource.is(Task)).count() = 1"/> + <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://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="search"/> + </type> + <resource value="ServiceRequest"/> + <description value="Test Server to serve ServiceRequest resources."/> + <accept value="xml"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned resource type is Bundle."/> + <direction value="response"/> + <resource value="Bundle"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle type is searchset."/> + <direction value="response"/> + <expression value="Bundle.type"/> + <operator value="equals"/> + <value value="searchset"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> + <direction value="response"/> + <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> + <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> + <direction value="response"/> + <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> + <direction value="response"/> + <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> + <direction value="response"/> + <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> + <direction value="response"/> + <validateProfileId value="Bundle-profile"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.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> + <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.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> + <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="Bundle.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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> + <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> + <direction value="response"/> + <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle contains a self link."/> + <direction value="response"/> + <expression value="Bundle.link.where(relation = 'self' and url.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> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> + <extension url="ruleId"> + <valueId value="assert-response-queryParamsInSelfLink"/> + </extension> + </extension> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the response Bundle contains 1 ServiceRequest resource(s). "/> + <direction value="response"/> + <expression value="Bundle.entry.where(resource.is(ServiceRequest)).count() = 1"/> + <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://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="search"/> + </type> + <resource value="Composition"/> + <description value="Test Server to serve Composition resources."/> + <accept value="xml"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="$document?id=composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned resource type is Bundle."/> + <direction value="response"/> + <resource value="Bundle"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle type is searchset."/> + <direction value="response"/> + <expression value="Bundle.type"/> + <operator value="equals"/> + <value value="searchset"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> + <direction value="response"/> + <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> + <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> + <direction value="response"/> + <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> + <direction value="response"/> + <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> + <direction value="response"/> + <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> + <direction value="response"/> + <validateProfileId value="Bundle-profile"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.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> + <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.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> + <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="Bundle.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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> + <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> + <direction value="response"/> + <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle contains a self link."/> + <direction value="response"/> + <expression value="Bundle.link.where(relation = 'self' and url.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> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> + <extension url="ruleId"> + <valueId value="assert-response-queryParamsInSelfLink"/> + </extension> + </extension> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the response Bundle contains 1 Composition resource(s). "/> + <direction value="response"/> + <expression value="Bundle.entry.where(resource.is(Composition)).count() = 1"/> + <warningOnly value="false"/> + </assert> + </action> + </test> +</TestScript> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml new file mode 100644 index 0000000000..ffb68b81c8 --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml @@ -0,0 +1,693 @@ +<?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-json"/> + <meta> + <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> + </meta> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule"> + <extension url="ruleId"> + <valueId value="assert-response-queryParamsInSelfLink"/> + </extension> + <extension url="path"> + <valueString value="../_reference/rules/assert_response_queryParamsInSelfLink.groovy"/> + </extension> + </extension> + <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-2-minimal-json"/> + <version value="R4-patchlevel 2023-10"/> + <name value="ELZ - Serving XIS - Scenario 2 - Serving ELZ resources of XXX-Andrioli - 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> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-origin-types"/> + <code value="FHIR-Client"/> + </profile> + </origin> + <destination> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-destination-types"/> + <code value="FHIR-Server"/> + </profile> + </destination> + <profile id="Bundle-profile"> + <reference value="http://hl7.org/fhir/StructureDefinition/Bundle"/> + </profile> + <variable> + <name value="patient-token-id"/> + <defaultValue value="Bearer 9we86dg8-aab0-4417-9b3c-e6f635892fea"/> + <description value="OAuth Token for current patient"/> + </variable> + <test id="01-serve-Task"> + <name value="Scenario 2.1 - Task"/> + <description value="Serve Task resource"/> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="search"/> + </type> + <resource value="Task"/> + <description value="Test Server to serve Task resources."/> + <accept value="json"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="?_id=task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned resource type is Bundle."/> + <direction value="response"/> + <resource value="Bundle"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle type is searchset."/> + <direction value="response"/> + <expression value="Bundle.type"/> + <operator value="equals"/> + <value value="searchset"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> + <direction value="response"/> + <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> + <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> + <direction value="response"/> + <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> + <direction value="response"/> + <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> + <direction value="response"/> + <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> + <direction value="response"/> + <validateProfileId value="Bundle-profile"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.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> + <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.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> + <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="Bundle.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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> + <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> + <direction value="response"/> + <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle contains a self link."/> + <direction value="response"/> + <expression value="Bundle.link.where(relation = 'self' and url.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> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> + <extension url="ruleId"> + <valueId value="assert-response-queryParamsInSelfLink"/> + </extension> + </extension> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the response Bundle contains 1 Task resource(s). "/> + <direction value="response"/> + <expression value="Bundle.entry.where(resource.is(Task)).count() = 1"/> + <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://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="search"/> + </type> + <resource value="ServiceRequest"/> + <description value="Test Server to serve ServiceRequest resources."/> + <accept value="json"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned resource type is Bundle."/> + <direction value="response"/> + <resource value="Bundle"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle type is searchset."/> + <direction value="response"/> + <expression value="Bundle.type"/> + <operator value="equals"/> + <value value="searchset"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> + <direction value="response"/> + <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> + <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> + <direction value="response"/> + <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> + <direction value="response"/> + <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> + <direction value="response"/> + <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> + <direction value="response"/> + <validateProfileId value="Bundle-profile"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.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> + <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.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> + <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="Bundle.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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> + <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> + <direction value="response"/> + <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle contains a self link."/> + <direction value="response"/> + <expression value="Bundle.link.where(relation = 'self' and url.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> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> + <extension url="ruleId"> + <valueId value="assert-response-queryParamsInSelfLink"/> + </extension> + </extension> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the response Bundle contains 1 ServiceRequest resource(s). "/> + <direction value="response"/> + <expression value="Bundle.entry.where(resource.is(ServiceRequest)).count() = 1"/> + <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://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="search"/> + </type> + <resource value="Composition"/> + <description value="Test Server to serve Composition resources."/> + <accept value="json"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="$document?id=composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned resource type is Bundle."/> + <direction value="response"/> + <resource value="Bundle"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle type is searchset."/> + <direction value="response"/> + <expression value="Bundle.type"/> + <operator value="equals"/> + <value value="searchset"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> + <direction value="response"/> + <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> + <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> + <direction value="response"/> + <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> + <direction value="response"/> + <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> + <direction value="response"/> + <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> + <direction value="response"/> + <validateProfileId value="Bundle-profile"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.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> + <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.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> + <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="Bundle.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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> + <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> + <direction value="response"/> + <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle contains a self link."/> + <direction value="response"/> + <expression value="Bundle.link.where(relation = 'self' and url.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> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> + <extension url="ruleId"> + <valueId value="assert-response-queryParamsInSelfLink"/> + </extension> + </extension> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the response Bundle contains 1 Composition resource(s). "/> + <direction value="response"/> + <expression value="Bundle.entry.where(resource.is(Composition)).count() = 1"/> + <warningOnly value="false"/> + </assert> + </action> + </test> +</TestScript> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml new file mode 100644 index 0000000000..92a7fb8f8d --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml @@ -0,0 +1,693 @@ +<?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-xml"/> + <meta> + <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> + </meta> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule"> + <extension url="ruleId"> + <valueId value="assert-response-queryParamsInSelfLink"/> + </extension> + <extension url="path"> + <valueString value="../_reference/rules/assert_response_queryParamsInSelfLink.groovy"/> + </extension> + </extension> + <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-2-minimal-xml"/> + <version value="R4-patchlevel 2023-10"/> + <name value="ELZ - Serving XIS - Scenario 2 - Serving ELZ resources of XXX-Andrioli - 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> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-origin-types"/> + <code value="FHIR-Client"/> + </profile> + </origin> + <destination> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-destination-types"/> + <code value="FHIR-Server"/> + </profile> + </destination> + <profile id="Bundle-profile"> + <reference value="http://hl7.org/fhir/StructureDefinition/Bundle"/> + </profile> + <variable> + <name value="patient-token-id"/> + <defaultValue value="Bearer 9we86dg8-aab0-4417-9b3c-e6f635892fea"/> + <description value="OAuth Token for current patient"/> + </variable> + <test id="01-serve-Task"> + <name value="Scenario 2.1 - Task"/> + <description value="Serve Task resource"/> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="search"/> + </type> + <resource value="Task"/> + <description value="Test Server to serve Task resources."/> + <accept value="xml"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="?_id=task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned resource type is Bundle."/> + <direction value="response"/> + <resource value="Bundle"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle type is searchset."/> + <direction value="response"/> + <expression value="Bundle.type"/> + <operator value="equals"/> + <value value="searchset"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> + <direction value="response"/> + <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> + <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> + <direction value="response"/> + <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> + <direction value="response"/> + <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> + <direction value="response"/> + <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> + <direction value="response"/> + <validateProfileId value="Bundle-profile"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.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> + <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.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> + <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="Bundle.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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> + <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> + <direction value="response"/> + <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle contains a self link."/> + <direction value="response"/> + <expression value="Bundle.link.where(relation = 'self' and url.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> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> + <extension url="ruleId"> + <valueId value="assert-response-queryParamsInSelfLink"/> + </extension> + </extension> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the response Bundle contains 1 Task resource(s). "/> + <direction value="response"/> + <expression value="Bundle.entry.where(resource.is(Task)).count() = 1"/> + <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://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="search"/> + </type> + <resource value="ServiceRequest"/> + <description value="Test Server to serve ServiceRequest resources."/> + <accept value="xml"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned resource type is Bundle."/> + <direction value="response"/> + <resource value="Bundle"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle type is searchset."/> + <direction value="response"/> + <expression value="Bundle.type"/> + <operator value="equals"/> + <value value="searchset"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> + <direction value="response"/> + <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> + <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> + <direction value="response"/> + <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> + <direction value="response"/> + <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> + <direction value="response"/> + <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> + <direction value="response"/> + <validateProfileId value="Bundle-profile"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.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> + <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.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> + <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="Bundle.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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> + <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> + <direction value="response"/> + <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle contains a self link."/> + <direction value="response"/> + <expression value="Bundle.link.where(relation = 'self' and url.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> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> + <extension url="ruleId"> + <valueId value="assert-response-queryParamsInSelfLink"/> + </extension> + </extension> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the response Bundle contains 1 ServiceRequest resource(s). "/> + <direction value="response"/> + <expression value="Bundle.entry.where(resource.is(ServiceRequest)).count() = 1"/> + <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://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <code value="search"/> + </type> + <resource value="Composition"/> + <description value="Test Server to serve Composition resources."/> + <accept value="xml"/> + <destination value="1"/> + <encodeRequestUrl value="true"/> + <origin value="1"/> + <params value="$document?id=composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned resource type is Bundle."/> + <direction value="response"/> + <resource value="Bundle"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle type is searchset."/> + <direction value="response"/> + <expression value="Bundle.type"/> + <operator value="equals"/> + <value value="searchset"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> + <direction value="response"/> + <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> + <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> + <direction value="response"/> + <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> + <direction value="response"/> + <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> + <direction value="response"/> + <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> + <direction value="response"/> + <validateProfileId value="Bundle-profile"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that all coding elements contain both a .system and a .code."/> + <direction value="response"/> + <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.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> + <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.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> + <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="Bundle.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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> + <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> + <direction value="response"/> + <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the returned Bundle contains a self link."/> + <direction value="response"/> + <expression value="Bundle.link.where(relation = 'self' and url.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> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> + <extension url="ruleId"> + <valueId value="assert-response-queryParamsInSelfLink"/> + </extension> + </extension> + <warningOnly value="true"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <description value="Confirm that the response Bundle contains 1 Composition resource(s). "/> + <direction value="response"/> + <expression value="Bundle.entry.where(resource.is(Composition)).count() = 1"/> + <warningOnly value="false"/> + </assert> + </action> + </test> +</TestScript> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/rules/assert_response_queryParamsInSelfLink.groovy b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/rules/assert_response_queryParamsInSelfLink.groovy new file mode 100644 index 0000000000..fc5d9e1f1f --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/rules/assert_response_queryParamsInSelfLink.groovy @@ -0,0 +1,39 @@ +/* + rule.summary=Confirm that the parameters in the request URL are all handled by the server, by inspecting the self link. + rule.description=Bundle.link.where(relation = 'self').url contains all parameters from the request URL. +*/ + +String[] reqParts = java.net.URLDecoder.decode(request.getURL()).split("\\?") +if (reqParts.length > 0) { + String selfLink = java.net.URLDecoder.decode(response.getFhirPathValue("Bundle.link.where(relation = 'self').url")) + String reqParams = reqParts[1] + for (String reqParamFull : reqParams.split('&')) { + if (!selfLink.contains(reqParamFull)) { // See if the param and value are present verbatim in the self link + + // If not, this might be due to the fact that the parameter is a reference that was rewritten by the + // server, either by adding the resource type or removing it. So let's see if the parameter value + // *looks* like a reference. + def (reqParam, reqVal) = reqParamFull.split('=') + def refPattern = /^([A-Z][A-Za-z]+\/)?([A-Za-z0-9\-\.]{1,64})$/ + def asReference = reqVal =~ refPattern + + def errorString = "The requested parameter ${reqParamFull} was absent from the self link" + + if (!asReference) { + // Apparently, the request parameter wasn't a reference + fail(errorString) + } else { + if (asReference[0][1] == null) { + // Resource type was not present in the request, so let's see if we have a match _with_ something + // that looks like a resource type. + assert selfLink =~ /${reqParam}=[A-Z][A-Za-z]+\/${asReference[0][2]}/ : errorString + } else { + // Resource type was present in the request, so let's see if we have a match without it. + // Note that this is not allowed if the reference can act on more than one resource type, but it's + // out of scope to test if this is the case. + assert selfLink.contains("${reqParam}=${asReference[0][2]}") : errorString + } + } + } + } +} \ No newline at end of file diff --git a/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-maximaal.xml b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml similarity index 97% rename from src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-maximaal.xml rename to src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml index 458cd779c6..d4a020c867 100644 --- a/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-maximaal.xml +++ b/src/ELZ-0-2-0-beta/Test/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml @@ -2,7 +2,7 @@ <?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-maximaal"/> + <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"/> 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..f311002028 --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-1-maximal.xml @@ -0,0 +1,43 @@ +<?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"/> + + <test id="01-serve-Task"> + <name value="Scenario 1.1 - Task"/> + <description + value="Serve Task resource"/> + <nts:include value="test.server.successfulSearch" scope="common" + resource="Task" + params="?_id=task-hg-VerwijzingHuisartsParamedicusMaximaalbericht" + useToken="true"/> + <nts:include value="assert.response.numResources" scope="common" + resource="Task" count="1"/> + </test> + + <test id="02-serve-ServiceRequest"> + <name value="Scenario 1.2 - ServiceRequest"/> + <description value="Serve ServiceRequest resource"/> + <nts:include value="test.server.successfulSearch" scope="common" resource="ServiceRequest" + params="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht" + useToken="true"/> + <nts:include value="assert.response.numResources" scope="common" + resource="ServiceRequest" count="1"/> + </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.successfulSearch" scope="common" resource="Composition" + params="$document?id=composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht" + useToken="true"/> + <nts:include value="assert.response.numResources" scope="common" + resource="Composition" count="1"/> + </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..da6a465f03 --- /dev/null +++ b/src/ELZ-0-2-0-beta/Test/Serving-XIS/elz-serving-xis-scenario-2-minimal.xml @@ -0,0 +1,43 @@ +<?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"/> + + <test id="01-serve-Task"> + <name value="Scenario 2.1 - Task"/> + <description + value="Serve Task resource"/> + <nts:include value="test.server.successfulSearch" scope="common" + resource="Task" + params="?_id=task-hg-VerwijzingHuisartsParamedicusMinimaalbericht" + useToken="true"/> + <nts:include value="assert.response.numResources" scope="common" + resource="Task" count="1"/> + </test> + + <test id="02-serve-ServiceRequest"> + <name value="Scenario 2.2 - ServiceRequest"/> + <description value="Serve ServiceRequest resource"/> + <nts:include value="test.server.successfulSearch" scope="common" resource="ServiceRequest" + params="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht" + useToken="true"/> + <nts:include value="assert.response.numResources" scope="common" + resource="ServiceRequest" count="1"/> + </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.successfulSearch" scope="common" resource="Composition" + params="$document?id=composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht" + useToken="true"/> + <nts:include value="assert.response.numResources" scope="common" + resource="Composition" count="1"/> + </test> + +</TestScript> From b019f658fcb2c3e4e6e365da649e35a4426ed278 Mon Sep 17 00:00:00 2001 From: Eduard <rijcke@nictiz.nl> Date: Fri, 26 Jan 2024 17:12:08 +0100 Subject: [PATCH 09/16] ELZ-109 Added a system value for the Identifiers --- ...osition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml | 3 ++- ...osition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml | 3 ++- ...request-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml | 1 + ...request-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml | 1 + .../task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml | 3 ++- ...osition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml | 1 + ...osition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml | 1 + ...request-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml | 1 + ...request-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml | 1 + .../task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml | 1 + 10 files changed, 13 insertions(+), 3 deletions(-) diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml index a76321e554..6fbe62f134 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml @@ -8,7 +8,7 @@ <div xmlns="http://www.w3.org/1999/xhtml"> <b>Referral note</b> <table> - <caption>Samengestelde informatie. Subject: Patient, Sandra Janine (Sandra) van XXX_Sanderink. Id: hg-VerwijzingHuisartsParamedicusMaximaalbericht, Status: definitief<span style="display: block;">Auteur: Healthcare professional (role), Huisartsen, niet nader gespecificeerd, Gezondheidscentrum de Brug</span> + <caption>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: definitief<span style="display: block;">Auteur: Healthcare professional (role), Huisartsen, niet nader gespecificeerd, Gezondheidscentrum de Brug</span> </caption> <tbody> <tr> @@ -26,6 +26,7 @@ </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="final"/> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml index ebbede009a..cbc7409f5d 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml @@ -8,7 +8,7 @@ <div xmlns="http://www.w3.org/1999/xhtml"> <b>Referral note</b> <table> - <caption>Samengestelde informatie. Subject: Patient, XXX_Andrioli. Id: hg-VerwijzingHuisartsParamedicusMinimaalbericht, Status: definitief<span style="display: block;">Auteur: Healthcare professional (role)</span> + <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> @@ -26,6 +26,7 @@ </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"/> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml index bf848e74bd..9661bdcaa3 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml @@ -4,6 +4,7 @@ <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"/> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml index 553ee222f8..98f445b368 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml @@ -4,6 +4,7 @@ <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"/> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml index 484e2f2376..90233f35d0 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml @@ -7,7 +7,7 @@ <status value="extensions"/> <div xmlns="http://www.w3.org/1999/xhtml"> <table> - <caption>Taak. Id: hg-VerwijzingHuisartsParamedicusMaximaalbericht, Status: is bezig<span style="display: block;">Intentie: aanvraag</span> + <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> @@ -45,6 +45,7 @@ </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"/> 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 index f04bbe42eb..f744deafbd 100644 --- 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 @@ -5,6 +5,7 @@ <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"/> 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 index d76c656ab9..8fc30765fe 100644 --- 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 @@ -5,6 +5,7 @@ <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"/> 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 index 71d516837b..3e09c8eb9a 100644 --- 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 @@ -5,6 +5,7 @@ <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"/> 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 index 371ff6d120..2ed66e8a41 100644 --- 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 @@ -5,6 +5,7 @@ <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"/> 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 index 91f3f620de..23ca3c04d6 100644 --- 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 @@ -5,6 +5,7 @@ <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"/> From 0669bbd529117b31a8e6bf721e8ae829f75daea1 Mon Sep 17 00:00:00 2001 From: Eduard <rijcke@nictiz.nl> Date: Mon, 19 Feb 2024 14:32:11 +0100 Subject: [PATCH 10/16] ELZ-109 Fixes after validation for the Test material for Serving XIS of ELZ --- ...lz-serving-xis-scenario-1-maximal-json.xml | 395 +----------------- ...elz-serving-xis-scenario-1-maximal-xml.xml | 395 +----------------- ...lz-serving-xis-scenario-2-minimal-json.xml | 395 +----------------- ...elz-serving-xis-scenario-2-minimal-xml.xml | 395 +----------------- ...sert_response_queryParamsInSelfLink.groovy | 39 -- .../elz-serving-xis-scenario-1-maximal.xml | 6 +- .../elz-serving-xis-scenario-2-minimal.xml | 6 +- 7 files changed, 90 insertions(+), 1541 deletions(-) delete mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/rules/assert_response_queryParamsInSelfLink.groovy diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml index d9b8c5f96e..bed16257e6 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml @@ -4,14 +4,6 @@ <meta> <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule"> - <extension url="ruleId"> - <valueId value="assert-response-queryParamsInSelfLink"/> - </extension> - <extension url="path"> - <valueString value="../_reference/rules/assert_response_queryParamsInSelfLink.groovy"/> - </extension> - </extension> <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-1-maximal-json"/> <version value="R4-patchlevel 2023-10"/> <name value="ELZ - Serving XIS - Scenario 1 - Serving ELZ resources of van-XXX-Sanderink-de-Kok - JSON Format"/> @@ -40,9 +32,6 @@ <code value="FHIR-Server"/> </profile> </destination> - <profile id="Bundle-profile"> - <reference value="http://hl7.org/fhir/StructureDefinition/Bundle"/> - </profile> <variable> <name value="patient-token-id"/> <defaultValue value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> @@ -55,10 +44,10 @@ <operation> <type> <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> - <code value="search"/> + <code value="read"/> </type> <resource value="Task"/> - <description value="Test Server to serve Task resources."/> + <description value="Test server to serve Task resource."/> <accept value="json"/> <destination value="1"/> <encodeRequestUrl value="true"/> @@ -81,85 +70,6 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned resource type is Bundle."/> - <direction value="response"/> - <resource value="Bundle"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle type is searchset."/> - <direction value="response"/> - <expression value="Bundle.type"/> - <operator value="equals"/> - <value value="searchset"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> - <direction value="response"/> - <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> - <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> - <direction value="response"/> - <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> - <direction value="response"/> - <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> - <direction value="response"/> - <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> - <direction value="response"/> - <validateProfileId value="Bundle-profile"/> - <warningOnly value="false"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -167,7 +77,7 @@ </extension> <description value="Confirm that all coding elements contain both a .system and a .code."/> <direction value="response"/> - <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> + <expression value="Task.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -178,7 +88,7 @@ </extension> <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <expression value="Task.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> <warningOnly value="false"/> </assert> </action> @@ -189,7 +99,7 @@ </extension> <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <expression value="Task.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -200,7 +110,7 @@ </extension> <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="Bundle.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())"/> + <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())"/> <warningOnly value="false"/> </assert> </action> @@ -211,45 +121,10 @@ </extension> <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> - <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> - <direction value="response"/> - <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> + <expression value="Task.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> - <description value="Confirm that the returned Bundle contains a self link."/> - <direction value="response"/> - <expression value="Bundle.link.where(relation = 'self' and url.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> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> - <extension url="ruleId"> - <valueId value="assert-response-queryParamsInSelfLink"/> - </extension> - </extension> - <warningOnly value="true"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -269,10 +144,10 @@ <operation> <type> <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> - <code value="search"/> + <code value="read"/> </type> <resource value="ServiceRequest"/> - <description value="Test Server to serve ServiceRequest resources."/> + <description value="Test server to serve ServiceRequest resource."/> <accept value="json"/> <destination value="1"/> <encodeRequestUrl value="true"/> @@ -295,85 +170,6 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned resource type is Bundle."/> - <direction value="response"/> - <resource value="Bundle"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle type is searchset."/> - <direction value="response"/> - <expression value="Bundle.type"/> - <operator value="equals"/> - <value value="searchset"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> - <direction value="response"/> - <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> - <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> - <direction value="response"/> - <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> - <direction value="response"/> - <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> - <direction value="response"/> - <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> - <direction value="response"/> - <validateProfileId value="Bundle-profile"/> - <warningOnly value="false"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -381,7 +177,7 @@ </extension> <description value="Confirm that all coding elements contain both a .system and a .code."/> <direction value="response"/> - <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> + <expression value="ServiceRequest.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -392,7 +188,7 @@ </extension> <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <expression value="ServiceRequest.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> <warningOnly value="false"/> </assert> </action> @@ -403,7 +199,7 @@ </extension> <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <expression value="ServiceRequest.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -414,7 +210,7 @@ </extension> <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="Bundle.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())"/> + <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())"/> <warningOnly value="false"/> </assert> </action> @@ -425,45 +221,10 @@ </extension> <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) and value.exists())"/> + <expression value="ServiceRequest.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> - <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> - <direction value="response"/> - <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle contains a self link."/> - <direction value="response"/> - <expression value="Bundle.link.where(relation = 'self' and url.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> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> - <extension url="ruleId"> - <valueId value="assert-response-queryParamsInSelfLink"/> - </extension> - </extension> - <warningOnly value="true"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -483,10 +244,10 @@ <operation> <type> <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> - <code value="search"/> + <code value="read"/> </type> <resource value="Composition"/> - <description value="Test Server to serve Composition resources."/> + <description value="Test server to serve Composition resource."/> <accept value="json"/> <destination value="1"/> <encodeRequestUrl value="true"/> @@ -509,85 +270,6 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned resource type is Bundle."/> - <direction value="response"/> - <resource value="Bundle"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle type is searchset."/> - <direction value="response"/> - <expression value="Bundle.type"/> - <operator value="equals"/> - <value value="searchset"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> - <direction value="response"/> - <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> - <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> - <direction value="response"/> - <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> - <direction value="response"/> - <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> - <direction value="response"/> - <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> - <direction value="response"/> - <validateProfileId value="Bundle-profile"/> - <warningOnly value="false"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -595,7 +277,7 @@ </extension> <description value="Confirm that all coding elements contain both a .system and a .code."/> <direction value="response"/> - <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> + <expression value="Composition.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -606,7 +288,7 @@ </extension> <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <expression value="Composition.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> <warningOnly value="false"/> </assert> </action> @@ -617,7 +299,7 @@ </extension> <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <expression value="Composition.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -628,7 +310,7 @@ </extension> <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="Bundle.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())"/> + <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())"/> <warningOnly value="false"/> </assert> </action> @@ -639,45 +321,10 @@ </extension> <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) and value.exists())"/> + <expression value="Composition.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> - <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> - <direction value="response"/> - <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle contains a self link."/> - <direction value="response"/> - <expression value="Bundle.link.where(relation = 'self' and url.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> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> - <extension url="ruleId"> - <valueId value="assert-response-queryParamsInSelfLink"/> - </extension> - </extension> - <warningOnly value="true"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml index ee5ff5a2c9..3c9d64d024 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml @@ -4,14 +4,6 @@ <meta> <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule"> - <extension url="ruleId"> - <valueId value="assert-response-queryParamsInSelfLink"/> - </extension> - <extension url="path"> - <valueString value="../_reference/rules/assert_response_queryParamsInSelfLink.groovy"/> - </extension> - </extension> <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-1-maximal-xml"/> <version value="R4-patchlevel 2023-10"/> <name value="ELZ - Serving XIS - Scenario 1 - Serving ELZ resources of van-XXX-Sanderink-de-Kok - XML Format"/> @@ -40,9 +32,6 @@ <code value="FHIR-Server"/> </profile> </destination> - <profile id="Bundle-profile"> - <reference value="http://hl7.org/fhir/StructureDefinition/Bundle"/> - </profile> <variable> <name value="patient-token-id"/> <defaultValue value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> @@ -55,10 +44,10 @@ <operation> <type> <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> - <code value="search"/> + <code value="read"/> </type> <resource value="Task"/> - <description value="Test Server to serve Task resources."/> + <description value="Test server to serve Task resource."/> <accept value="xml"/> <destination value="1"/> <encodeRequestUrl value="true"/> @@ -81,85 +70,6 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned resource type is Bundle."/> - <direction value="response"/> - <resource value="Bundle"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle type is searchset."/> - <direction value="response"/> - <expression value="Bundle.type"/> - <operator value="equals"/> - <value value="searchset"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> - <direction value="response"/> - <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> - <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> - <direction value="response"/> - <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> - <direction value="response"/> - <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> - <direction value="response"/> - <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> - <direction value="response"/> - <validateProfileId value="Bundle-profile"/> - <warningOnly value="false"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -167,7 +77,7 @@ </extension> <description value="Confirm that all coding elements contain both a .system and a .code."/> <direction value="response"/> - <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> + <expression value="Task.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -178,7 +88,7 @@ </extension> <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <expression value="Task.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> <warningOnly value="false"/> </assert> </action> @@ -189,7 +99,7 @@ </extension> <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <expression value="Task.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -200,7 +110,7 @@ </extension> <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="Bundle.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())"/> + <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())"/> <warningOnly value="false"/> </assert> </action> @@ -211,45 +121,10 @@ </extension> <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> - <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> - <direction value="response"/> - <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> + <expression value="Task.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> - <description value="Confirm that the returned Bundle contains a self link."/> - <direction value="response"/> - <expression value="Bundle.link.where(relation = 'self' and url.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> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> - <extension url="ruleId"> - <valueId value="assert-response-queryParamsInSelfLink"/> - </extension> - </extension> - <warningOnly value="true"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -269,10 +144,10 @@ <operation> <type> <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> - <code value="search"/> + <code value="read"/> </type> <resource value="ServiceRequest"/> - <description value="Test Server to serve ServiceRequest resources."/> + <description value="Test server to serve ServiceRequest resource."/> <accept value="xml"/> <destination value="1"/> <encodeRequestUrl value="true"/> @@ -295,85 +170,6 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned resource type is Bundle."/> - <direction value="response"/> - <resource value="Bundle"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle type is searchset."/> - <direction value="response"/> - <expression value="Bundle.type"/> - <operator value="equals"/> - <value value="searchset"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> - <direction value="response"/> - <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> - <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> - <direction value="response"/> - <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> - <direction value="response"/> - <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> - <direction value="response"/> - <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> - <direction value="response"/> - <validateProfileId value="Bundle-profile"/> - <warningOnly value="false"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -381,7 +177,7 @@ </extension> <description value="Confirm that all coding elements contain both a .system and a .code."/> <direction value="response"/> - <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> + <expression value="ServiceRequest.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -392,7 +188,7 @@ </extension> <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <expression value="ServiceRequest.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> <warningOnly value="false"/> </assert> </action> @@ -403,7 +199,7 @@ </extension> <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <expression value="ServiceRequest.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -414,7 +210,7 @@ </extension> <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="Bundle.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())"/> + <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())"/> <warningOnly value="false"/> </assert> </action> @@ -425,45 +221,10 @@ </extension> <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) and value.exists())"/> + <expression value="ServiceRequest.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> - <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> - <direction value="response"/> - <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle contains a self link."/> - <direction value="response"/> - <expression value="Bundle.link.where(relation = 'self' and url.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> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> - <extension url="ruleId"> - <valueId value="assert-response-queryParamsInSelfLink"/> - </extension> - </extension> - <warningOnly value="true"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -483,10 +244,10 @@ <operation> <type> <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> - <code value="search"/> + <code value="read"/> </type> <resource value="Composition"/> - <description value="Test Server to serve Composition resources."/> + <description value="Test server to serve Composition resource."/> <accept value="xml"/> <destination value="1"/> <encodeRequestUrl value="true"/> @@ -509,85 +270,6 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned resource type is Bundle."/> - <direction value="response"/> - <resource value="Bundle"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle type is searchset."/> - <direction value="response"/> - <expression value="Bundle.type"/> - <operator value="equals"/> - <value value="searchset"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> - <direction value="response"/> - <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> - <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> - <direction value="response"/> - <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> - <direction value="response"/> - <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> - <direction value="response"/> - <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> - <direction value="response"/> - <validateProfileId value="Bundle-profile"/> - <warningOnly value="false"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -595,7 +277,7 @@ </extension> <description value="Confirm that all coding elements contain both a .system and a .code."/> <direction value="response"/> - <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> + <expression value="Composition.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -606,7 +288,7 @@ </extension> <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <expression value="Composition.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> <warningOnly value="false"/> </assert> </action> @@ -617,7 +299,7 @@ </extension> <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <expression value="Composition.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -628,7 +310,7 @@ </extension> <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="Bundle.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())"/> + <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())"/> <warningOnly value="false"/> </assert> </action> @@ -639,45 +321,10 @@ </extension> <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) and value.exists())"/> + <expression value="Composition.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> - <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> - <direction value="response"/> - <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle contains a self link."/> - <direction value="response"/> - <expression value="Bundle.link.where(relation = 'self' and url.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> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> - <extension url="ruleId"> - <valueId value="assert-response-queryParamsInSelfLink"/> - </extension> - </extension> - <warningOnly value="true"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml index ffb68b81c8..0e2a9aeed5 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml @@ -4,14 +4,6 @@ <meta> <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule"> - <extension url="ruleId"> - <valueId value="assert-response-queryParamsInSelfLink"/> - </extension> - <extension url="path"> - <valueString value="../_reference/rules/assert_response_queryParamsInSelfLink.groovy"/> - </extension> - </extension> <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-2-minimal-json"/> <version value="R4-patchlevel 2023-10"/> <name value="ELZ - Serving XIS - Scenario 2 - Serving ELZ resources of XXX-Andrioli - JSON Format"/> @@ -40,9 +32,6 @@ <code value="FHIR-Server"/> </profile> </destination> - <profile id="Bundle-profile"> - <reference value="http://hl7.org/fhir/StructureDefinition/Bundle"/> - </profile> <variable> <name value="patient-token-id"/> <defaultValue value="Bearer 9we86dg8-aab0-4417-9b3c-e6f635892fea"/> @@ -55,10 +44,10 @@ <operation> <type> <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> - <code value="search"/> + <code value="read"/> </type> <resource value="Task"/> - <description value="Test Server to serve Task resources."/> + <description value="Test server to serve Task resource."/> <accept value="json"/> <destination value="1"/> <encodeRequestUrl value="true"/> @@ -81,85 +70,6 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned resource type is Bundle."/> - <direction value="response"/> - <resource value="Bundle"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle type is searchset."/> - <direction value="response"/> - <expression value="Bundle.type"/> - <operator value="equals"/> - <value value="searchset"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> - <direction value="response"/> - <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> - <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> - <direction value="response"/> - <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> - <direction value="response"/> - <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> - <direction value="response"/> - <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> - <direction value="response"/> - <validateProfileId value="Bundle-profile"/> - <warningOnly value="false"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -167,7 +77,7 @@ </extension> <description value="Confirm that all coding elements contain both a .system and a .code."/> <direction value="response"/> - <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> + <expression value="Task.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -178,7 +88,7 @@ </extension> <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <expression value="Task.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> <warningOnly value="false"/> </assert> </action> @@ -189,7 +99,7 @@ </extension> <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <expression value="Task.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -200,7 +110,7 @@ </extension> <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="Bundle.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())"/> + <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())"/> <warningOnly value="false"/> </assert> </action> @@ -211,45 +121,10 @@ </extension> <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> - <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> - <direction value="response"/> - <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> + <expression value="Task.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> - <description value="Confirm that the returned Bundle contains a self link."/> - <direction value="response"/> - <expression value="Bundle.link.where(relation = 'self' and url.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> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> - <extension url="ruleId"> - <valueId value="assert-response-queryParamsInSelfLink"/> - </extension> - </extension> - <warningOnly value="true"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -269,10 +144,10 @@ <operation> <type> <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> - <code value="search"/> + <code value="read"/> </type> <resource value="ServiceRequest"/> - <description value="Test Server to serve ServiceRequest resources."/> + <description value="Test server to serve ServiceRequest resource."/> <accept value="json"/> <destination value="1"/> <encodeRequestUrl value="true"/> @@ -295,85 +170,6 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned resource type is Bundle."/> - <direction value="response"/> - <resource value="Bundle"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle type is searchset."/> - <direction value="response"/> - <expression value="Bundle.type"/> - <operator value="equals"/> - <value value="searchset"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> - <direction value="response"/> - <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> - <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> - <direction value="response"/> - <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> - <direction value="response"/> - <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> - <direction value="response"/> - <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> - <direction value="response"/> - <validateProfileId value="Bundle-profile"/> - <warningOnly value="false"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -381,7 +177,7 @@ </extension> <description value="Confirm that all coding elements contain both a .system and a .code."/> <direction value="response"/> - <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> + <expression value="ServiceRequest.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -392,7 +188,7 @@ </extension> <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <expression value="ServiceRequest.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> <warningOnly value="false"/> </assert> </action> @@ -403,7 +199,7 @@ </extension> <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <expression value="ServiceRequest.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -414,7 +210,7 @@ </extension> <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="Bundle.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())"/> + <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())"/> <warningOnly value="false"/> </assert> </action> @@ -425,45 +221,10 @@ </extension> <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) and value.exists())"/> + <expression value="ServiceRequest.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> - <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> - <direction value="response"/> - <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle contains a self link."/> - <direction value="response"/> - <expression value="Bundle.link.where(relation = 'self' and url.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> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> - <extension url="ruleId"> - <valueId value="assert-response-queryParamsInSelfLink"/> - </extension> - </extension> - <warningOnly value="true"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -483,10 +244,10 @@ <operation> <type> <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> - <code value="search"/> + <code value="read"/> </type> <resource value="Composition"/> - <description value="Test Server to serve Composition resources."/> + <description value="Test server to serve Composition resource."/> <accept value="json"/> <destination value="1"/> <encodeRequestUrl value="true"/> @@ -509,85 +270,6 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned resource type is Bundle."/> - <direction value="response"/> - <resource value="Bundle"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle type is searchset."/> - <direction value="response"/> - <expression value="Bundle.type"/> - <operator value="equals"/> - <value value="searchset"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> - <direction value="response"/> - <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> - <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> - <direction value="response"/> - <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> - <direction value="response"/> - <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> - <direction value="response"/> - <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> - <direction value="response"/> - <validateProfileId value="Bundle-profile"/> - <warningOnly value="false"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -595,7 +277,7 @@ </extension> <description value="Confirm that all coding elements contain both a .system and a .code."/> <direction value="response"/> - <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> + <expression value="Composition.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -606,7 +288,7 @@ </extension> <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <expression value="Composition.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> <warningOnly value="false"/> </assert> </action> @@ -617,7 +299,7 @@ </extension> <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <expression value="Composition.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -628,7 +310,7 @@ </extension> <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="Bundle.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())"/> + <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())"/> <warningOnly value="false"/> </assert> </action> @@ -639,45 +321,10 @@ </extension> <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) and value.exists())"/> + <expression value="Composition.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> - <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> - <direction value="response"/> - <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle contains a self link."/> - <direction value="response"/> - <expression value="Bundle.link.where(relation = 'self' and url.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> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> - <extension url="ruleId"> - <valueId value="assert-response-queryParamsInSelfLink"/> - </extension> - </extension> - <warningOnly value="true"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml index 92a7fb8f8d..b529792c54 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml @@ -4,14 +4,6 @@ <meta> <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule"> - <extension url="ruleId"> - <valueId value="assert-response-queryParamsInSelfLink"/> - </extension> - <extension url="path"> - <valueString value="../_reference/rules/assert_response_queryParamsInSelfLink.groovy"/> - </extension> - </extension> <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-2-minimal-xml"/> <version value="R4-patchlevel 2023-10"/> <name value="ELZ - Serving XIS - Scenario 2 - Serving ELZ resources of XXX-Andrioli - XML Format"/> @@ -40,9 +32,6 @@ <code value="FHIR-Server"/> </profile> </destination> - <profile id="Bundle-profile"> - <reference value="http://hl7.org/fhir/StructureDefinition/Bundle"/> - </profile> <variable> <name value="patient-token-id"/> <defaultValue value="Bearer 9we86dg8-aab0-4417-9b3c-e6f635892fea"/> @@ -55,10 +44,10 @@ <operation> <type> <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> - <code value="search"/> + <code value="read"/> </type> <resource value="Task"/> - <description value="Test Server to serve Task resources."/> + <description value="Test server to serve Task resource."/> <accept value="xml"/> <destination value="1"/> <encodeRequestUrl value="true"/> @@ -81,85 +70,6 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned resource type is Bundle."/> - <direction value="response"/> - <resource value="Bundle"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle type is searchset."/> - <direction value="response"/> - <expression value="Bundle.type"/> - <operator value="equals"/> - <value value="searchset"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> - <direction value="response"/> - <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> - <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> - <direction value="response"/> - <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> - <direction value="response"/> - <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> - <direction value="response"/> - <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> - <direction value="response"/> - <validateProfileId value="Bundle-profile"/> - <warningOnly value="false"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -167,7 +77,7 @@ </extension> <description value="Confirm that all coding elements contain both a .system and a .code."/> <direction value="response"/> - <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> + <expression value="Task.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -178,7 +88,7 @@ </extension> <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <expression value="Task.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> <warningOnly value="false"/> </assert> </action> @@ -189,7 +99,7 @@ </extension> <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <expression value="Task.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -200,7 +110,7 @@ </extension> <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="Bundle.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())"/> + <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())"/> <warningOnly value="false"/> </assert> </action> @@ -211,45 +121,10 @@ </extension> <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> - <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> - <direction value="response"/> - <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> + <expression value="Task.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> - <description value="Confirm that the returned Bundle contains a self link."/> - <direction value="response"/> - <expression value="Bundle.link.where(relation = 'self' and url.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> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> - <extension url="ruleId"> - <valueId value="assert-response-queryParamsInSelfLink"/> - </extension> - </extension> - <warningOnly value="true"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -269,10 +144,10 @@ <operation> <type> <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> - <code value="search"/> + <code value="read"/> </type> <resource value="ServiceRequest"/> - <description value="Test Server to serve ServiceRequest resources."/> + <description value="Test server to serve ServiceRequest resource."/> <accept value="xml"/> <destination value="1"/> <encodeRequestUrl value="true"/> @@ -295,85 +170,6 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned resource type is Bundle."/> - <direction value="response"/> - <resource value="Bundle"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle type is searchset."/> - <direction value="response"/> - <expression value="Bundle.type"/> - <operator value="equals"/> - <value value="searchset"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> - <direction value="response"/> - <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> - <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> - <direction value="response"/> - <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> - <direction value="response"/> - <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> - <direction value="response"/> - <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> - <direction value="response"/> - <validateProfileId value="Bundle-profile"/> - <warningOnly value="false"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -381,7 +177,7 @@ </extension> <description value="Confirm that all coding elements contain both a .system and a .code."/> <direction value="response"/> - <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> + <expression value="ServiceRequest.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -392,7 +188,7 @@ </extension> <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <expression value="ServiceRequest.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> <warningOnly value="false"/> </assert> </action> @@ -403,7 +199,7 @@ </extension> <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <expression value="ServiceRequest.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -414,7 +210,7 @@ </extension> <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="Bundle.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())"/> + <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())"/> <warningOnly value="false"/> </assert> </action> @@ -425,45 +221,10 @@ </extension> <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) and value.exists())"/> + <expression value="ServiceRequest.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> - <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> - <direction value="response"/> - <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle contains a self link."/> - <direction value="response"/> - <expression value="Bundle.link.where(relation = 'self' and url.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> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> - <extension url="ruleId"> - <valueId value="assert-response-queryParamsInSelfLink"/> - </extension> - </extension> - <warningOnly value="true"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -483,10 +244,10 @@ <operation> <type> <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> - <code value="search"/> + <code value="read"/> </type> <resource value="Composition"/> - <description value="Test Server to serve Composition resources."/> + <description value="Test server to serve Composition resource."/> <accept value="xml"/> <destination value="1"/> <encodeRequestUrl value="true"/> @@ -509,85 +270,6 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned resource type is Bundle."/> - <direction value="response"/> - <resource value="Bundle"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle type is searchset."/> - <direction value="response"/> - <expression value="Bundle.type"/> - <operator value="equals"/> - <value value="searchset"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that all returned resources contain an Resource.id except when temporary ids are used in the Bundle. The only time that a resource does not have an id is when it is being submitted to the server using a create operation: https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id "/> - <direction value="response"/> - <expression value="Bundle.entry.all( $this.fullUrl.matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or $this.fullUrl.matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') or $this.resource.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> - <description value="Confirm that all returned resources except OperationOutcome and Binary contain a meta.profile tag."/> - <direction value="response"/> - <expression value="Bundle.entry.resource.where(is(OperationOutcome).not()).where(is(Binary).not()).where(meta.profile.empty()).empty()"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl does not disagree with the id in the resource, see http://hl7.org/fhir/stu3/bundle-definitions.html#Bundle.entry.fullUrl"/> - <direction value="response"/> - <expression value="Bundle.entry.where(fullUrl.exists() and resource.id.exists()).all($this.fullUrl.endsWith($this.resource.id))"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the fullUrl is an absolute URL, an uuid or an oid."/> - <direction value="response"/> - <expression value="Bundle.entry.fullUrl.all( startsWith('http://') or startsWith('https://') or matches('^urn:oid:[0-2](\\.(0|[1-9]\\d*))*$') or matches('^urn:uuid:[A-Fa-f\\d]{8}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{4}-[A-Fa-f\\d]{12}$') )"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle conforms to the base FHIR specification and the resources to the stated profiles in the meta.profile tag."/> - <direction value="response"/> - <validateProfileId value="Bundle-profile"/> - <warningOnly value="false"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -595,7 +277,7 @@ </extension> <description value="Confirm that all coding elements contain both a .system and a .code."/> <direction value="response"/> - <expression value="Bundle.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> + <expression value="Composition.descendants().where($this.is(coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -606,7 +288,7 @@ </extension> <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="Bundle.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <expression value="Composition.descendants().where($this.is(coding)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> <warningOnly value="false"/> </assert> </action> @@ -617,7 +299,7 @@ </extension> <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="Bundle.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> + <expression value="Composition.descendants().where($this.is(CodeableConcept)) .all(coding.display.exists() or text.exists() or extension.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -628,7 +310,7 @@ </extension> <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="Bundle.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())"/> + <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())"/> <warningOnly value="false"/> </assert> </action> @@ -639,45 +321,10 @@ </extension> <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="Bundle.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) and value.exists())"/> + <expression value="Composition.descendants().where($this.is(Identifier)).all((system.exists() or type.exists()) 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> - <description value="Confirm that the returned Bundle total value matches or is less than the number of entries in the Bundle. The included resources should not be counted as entries in the Bundle.total."/> - <direction value="response"/> - <expression value="Bundle.total.toInteger() <= Bundle.entry.where(search.empty() or search.mode = 'match').count()"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the returned Bundle contains a self link."/> - <direction value="response"/> - <expression value="Bundle.link.where(relation = 'self' and url.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> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> - <extension url="ruleId"> - <valueId value="assert-response-queryParamsInSelfLink"/> - </extension> - </extension> - <warningOnly value="true"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/rules/assert_response_queryParamsInSelfLink.groovy b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/rules/assert_response_queryParamsInSelfLink.groovy deleted file mode 100644 index fc5d9e1f1f..0000000000 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/rules/assert_response_queryParamsInSelfLink.groovy +++ /dev/null @@ -1,39 +0,0 @@ -/* - rule.summary=Confirm that the parameters in the request URL are all handled by the server, by inspecting the self link. - rule.description=Bundle.link.where(relation = 'self').url contains all parameters from the request URL. -*/ - -String[] reqParts = java.net.URLDecoder.decode(request.getURL()).split("\\?") -if (reqParts.length > 0) { - String selfLink = java.net.URLDecoder.decode(response.getFhirPathValue("Bundle.link.where(relation = 'self').url")) - String reqParams = reqParts[1] - for (String reqParamFull : reqParams.split('&')) { - if (!selfLink.contains(reqParamFull)) { // See if the param and value are present verbatim in the self link - - // If not, this might be due to the fact that the parameter is a reference that was rewritten by the - // server, either by adding the resource type or removing it. So let's see if the parameter value - // *looks* like a reference. - def (reqParam, reqVal) = reqParamFull.split('=') - def refPattern = /^([A-Z][A-Za-z]+\/)?([A-Za-z0-9\-\.]{1,64})$/ - def asReference = reqVal =~ refPattern - - def errorString = "The requested parameter ${reqParamFull} was absent from the self link" - - if (!asReference) { - // Apparently, the request parameter wasn't a reference - fail(errorString) - } else { - if (asReference[0][1] == null) { - // Resource type was not present in the request, so let's see if we have a match _with_ something - // that looks like a resource type. - assert selfLink =~ /${reqParam}=[A-Z][A-Za-z]+\/${asReference[0][2]}/ : errorString - } else { - // Resource type was present in the request, so let's see if we have a match without it. - // Note that this is not allowed if the reference can act on more than one resource type, but it's - // out of scope to test if this is the case. - assert selfLink.contains("${reqParam}=${asReference[0][2]}") : errorString - } - } - } - } -} \ No newline at end of file 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 f311002028..dfba490171 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 @@ -12,7 +12,7 @@ <name value="Scenario 1.1 - Task"/> <description value="Serve Task resource"/> - <nts:include value="test.server.successfulSearch" scope="common" + <nts:include value="test.server.successfulRead" scope="common" resource="Task" params="?_id=task-hg-VerwijzingHuisartsParamedicusMaximaalbericht" useToken="true"/> @@ -23,7 +23,7 @@ <test id="02-serve-ServiceRequest"> <name value="Scenario 1.2 - ServiceRequest"/> <description value="Serve ServiceRequest resource"/> - <nts:include value="test.server.successfulSearch" scope="common" resource="ServiceRequest" + <nts:include value="test.server.successfulRead" scope="common" resource="ServiceRequest" params="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht" useToken="true"/> <nts:include value="assert.response.numResources" scope="common" @@ -33,7 +33,7 @@ <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.successfulSearch" scope="common" resource="Composition" + <nts:include value="test.server.successfulRead" scope="common" resource="Composition" params="$document?id=composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht" useToken="true"/> <nts:include value="assert.response.numResources" scope="common" 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 da6a465f03..f4d909197d 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 @@ -12,7 +12,7 @@ <name value="Scenario 2.1 - Task"/> <description value="Serve Task resource"/> - <nts:include value="test.server.successfulSearch" scope="common" + <nts:include value="test.server.successfulRead" scope="common" resource="Task" params="?_id=task-hg-VerwijzingHuisartsParamedicusMinimaalbericht" useToken="true"/> @@ -23,7 +23,7 @@ <test id="02-serve-ServiceRequest"> <name value="Scenario 2.2 - ServiceRequest"/> <description value="Serve ServiceRequest resource"/> - <nts:include value="test.server.successfulSearch" scope="common" resource="ServiceRequest" + <nts:include value="test.server.successfulRead" scope="common" resource="ServiceRequest" params="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht" useToken="true"/> <nts:include value="assert.response.numResources" scope="common" @@ -33,7 +33,7 @@ <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.successfulSearch" scope="common" resource="Composition" + <nts:include value="test.server.successfulRead" scope="common" resource="Composition" params="$document?id=composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht" useToken="true"/> <nts:include value="assert.response.numResources" scope="common" From 6f31c3ef550323f6290ed8302c24ad223d81c38b Mon Sep 17 00:00:00 2001 From: Eduard <rijcke@nictiz.nl> Date: Thu, 29 Feb 2024 15:24:37 +0100 Subject: [PATCH 11/16] ELZ-109 Changed to Read operation at the Test material for Serving XIS of ELZ --- .../elz-receiving-xis-scenario-1-maximal.xml | 78 ++----------------- .../elz-receiving-xis-scenario-2-minimal.xml | 78 ++----------------- .../elz-receiving-xis-scenario-1-maximal.xml | 9 +-- .../elz-receiving-xis-scenario-2-minimal.xml | 9 +-- testscripts-src.xpr | 11 ++- 5 files changed, 28 insertions(+), 157 deletions(-) diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml index f4b399a4c3..ae4b6055c8 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml @@ -39,10 +39,10 @@ <operation> <type> <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> - <code value="search"/> + <code value="read"/> </type> <resource value="Task"/> - <description value="Test Client to retrieve Task resources."/> + <description value="Test client to read Task resource."/> <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> @@ -53,28 +53,6 @@ </requestHeader> </operation> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="true"/> - </extension> - <description value="Make sure that the test server (WildFHIR) gives a success response."/> - <operator value="in"/> - <responseCode value="200,201"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the test server (WildFHIR) returns a Bundle."/> - <direction value="response"/> - <resource value="Bundle"/> - <warningOnly value="false"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -94,10 +72,10 @@ <operation> <type> <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> - <code value="search"/> + <code value="read"/> </type> <resource value="ServiceRequest"/> - <description value="Test Client to retrieve ServiceRequest resources."/> + <description value="Test client to read ServiceRequest resource."/> <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> @@ -108,28 +86,6 @@ </requestHeader> </operation> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="true"/> - </extension> - <description value="Make sure that the test server (WildFHIR) gives a success response."/> - <operator value="in"/> - <responseCode value="200,201"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the test server (WildFHIR) returns a Bundle."/> - <direction value="response"/> - <resource value="Bundle"/> - <warningOnly value="false"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -149,10 +105,10 @@ <operation> <type> <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> - <code value="search"/> + <code value="read"/> </type> <resource value="Composition"/> - <description value="Test Client to retrieve Composition resources."/> + <description value="Test client to read Composition resource."/> <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> @@ -163,28 +119,6 @@ </requestHeader> </operation> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="true"/> - </extension> - <description value="Make sure that the test server (WildFHIR) gives a success response."/> - <operator value="in"/> - <responseCode value="200,201"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the test server (WildFHIR) returns a Bundle."/> - <direction value="response"/> - <resource value="Bundle"/> - <warningOnly value="false"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml index 123dd61710..348f10009d 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml @@ -39,10 +39,10 @@ <operation> <type> <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> - <code value="search"/> + <code value="read"/> </type> <resource value="Task"/> - <description value="Test Client to retrieve Task resources."/> + <description value="Test client to read Task resource."/> <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> @@ -53,28 +53,6 @@ </requestHeader> </operation> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="true"/> - </extension> - <description value="Make sure that the test server (WildFHIR) gives a success response."/> - <operator value="in"/> - <responseCode value="200,201"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the test server (WildFHIR) returns a Bundle."/> - <direction value="response"/> - <resource value="Bundle"/> - <warningOnly value="false"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -94,10 +72,10 @@ <operation> <type> <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> - <code value="search"/> + <code value="read"/> </type> <resource value="ServiceRequest"/> - <description value="Test Client to retrieve ServiceRequest resources."/> + <description value="Test client to read ServiceRequest resource."/> <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> @@ -108,28 +86,6 @@ </requestHeader> </operation> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="true"/> - </extension> - <description value="Make sure that the test server (WildFHIR) gives a success response."/> - <operator value="in"/> - <responseCode value="200,201"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the test server (WildFHIR) returns a Bundle."/> - <direction value="response"/> - <resource value="Bundle"/> - <warningOnly value="false"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> @@ -149,10 +105,10 @@ <operation> <type> <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> - <code value="search"/> + <code value="read"/> </type> <resource value="Composition"/> - <description value="Test Client to retrieve Composition resources."/> + <description value="Test client to read Composition resource."/> <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> @@ -163,28 +119,6 @@ </requestHeader> </operation> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="true"/> - </extension> - <description value="Make sure that the test server (WildFHIR) gives a success response."/> - <operator value="in"/> - <responseCode value="200,201"/> - <warningOnly value="false"/> - </assert> - </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the test server (WildFHIR) returns a Bundle."/> - <direction value="response"/> - <resource value="Bundle"/> - <warningOnly value="false"/> - </assert> - </action> <action> <assert> <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> 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 index d4a020c867..b8de2a05da 100644 --- 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 @@ -12,11 +12,10 @@ <name value="Scenario 1.1 - Task"/> <description value="Query Task resource"/> - <nts:include value="test.client.search" scope="common" + <nts:include value="test.client.read" scope="common" resource="Task" params="?_id=task-hg-VerwijzingHuisartsParamedicusMaximaalbericht" useToken="true"/> - <nts:include value="canary-assert.response.successfulSearch" scope="common"/> <nts:include value="assert.response.numResources" scope="common" resource="Task" count="1"/> </test> @@ -24,10 +23,9 @@ <test id="02-retrieve-ServiceRequest"> <name value="Scenario 1.2 - ServiceRequest"/> <description value="Query ServiceRequest resource"/> - <nts:include value="test.client.search" scope="common" resource="ServiceRequest" + <nts:include value="test.client.read" scope="common" resource="ServiceRequest" params="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht" useToken="true"/> - <nts:include value="canary-assert.response.successfulSearch" scope="common"/> <nts:include value="assert.response.numResources" scope="common" resource="ServiceRequest" count="1"/> </test> @@ -35,10 +33,9 @@ <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.search" scope="common" resource="Composition" + <nts:include value="test.client.read" scope="common" resource="Composition" params="$document?id=composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht" useToken="true"/> - <nts:include value="canary-assert.response.successfulSearch" scope="common"/> <nts:include value="assert.response.numResources" scope="common" resource="Composition" count="1"/> </test> 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 index 197cabf4ad..9f88bc15b7 100644 --- 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 @@ -12,11 +12,10 @@ <name value="Scenario 2.1 - Task"/> <description value="Query Task resource"/> - <nts:include value="test.client.search" scope="common" + <nts:include value="test.client.read" scope="common" resource="Task" params="?_id=task-hg-VerwijzingHuisartsParamedicusMinimaalbericht" useToken="true"/> - <nts:include value="canary-assert.response.successfulSearch" scope="common"/> <nts:include value="assert.response.numResources" scope="common" resource="Task" count="1"/> </test> @@ -24,10 +23,9 @@ <test id="02-retrieve-ServiceRequest"> <name value="Scenario 2.2 - ServiceRequest"/> <description value="Query ServiceRequest resource"/> - <nts:include value="test.client.search" scope="common" resource="ServiceRequest" + <nts:include value="test.client.read" scope="common" resource="ServiceRequest" params="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht" useToken="true"/> - <nts:include value="canary-assert.response.successfulSearch" scope="common"/> <nts:include value="assert.response.numResources" scope="common" resource="ServiceRequest" count="1"/> </test> @@ -35,10 +33,9 @@ <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.search" scope="common" resource="Composition" + <nts:include value="test.client.read" scope="common" resource="Composition" params="$document?id=composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht" useToken="true"/> - <nts:include value="canary-assert.response.successfulSearch" scope="common"/> <nts:include value="assert.response.numResources" scope="common" resource="Composition" count="1"/> </test> diff --git a/testscripts-src.xpr b/testscripts-src.xpr index b63aef696b..9a125396eb 100644 --- a/testscripts-src.xpr +++ b/testscripts-src.xpr @@ -2,7 +2,16 @@ <project> <meta> <filters directoryPatterns="" filePatterns="\Qtestscripts-src.xpr\E" positiveFilePatterns="" showHiddenFiles="false"/> - <options/> + <options> + <serialized xml:space="preserve"> + <serializableOrderedMap> + <entry> + <String>enable.project.master.files.support</String> + <Boolean>true</Boolean> + </entry> + </serializableOrderedMap> + </serialized> + </options> </meta> <projectTree name="testscripts-src.xpr"> <folder path="."/> From 68250f4d592f6676f83c7bfad4b7eda21492b613 Mon Sep 17 00:00:00 2001 From: Eduard <rijcke@nictiz.nl> Date: Wed, 17 Jul 2024 15:38:49 +0200 Subject: [PATCH 12/16] Added the Content Asserts to the ELZ XIS scripts --- .../elz-serving-xis-scenario-1-maximal.xml | 15 ++++++++++++--- .../elz-serving-xis-scenario-2-minimal.xml | 15 ++++++++++++--- 2 files changed, 24 insertions(+), 6 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 dfba490171..0733ad3caf 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 @@ -17,7 +17,10 @@ params="?_id=task-hg-VerwijzingHuisartsParamedicusMaximaalbericht" useToken="true"/> <nts:include value="assert.response.numResources" scope="common" - resource="Task" count="1"/> + resource="Task" count="1" nts:in-targets="#default"/> + + <nts:contentAsserts href="resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml" nts:in-targets="CheckContent"/> + </test> <test id="02-serve-ServiceRequest"> @@ -27,7 +30,10 @@ params="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht" useToken="true"/> <nts:include value="assert.response.numResources" scope="common" - resource="ServiceRequest" count="1"/> + resource="ServiceRequest" count="1" nts:in-targets="#default"/> + + <nts:contentAsserts href="resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml" nts:in-targets="CheckContent"/> + </test> <test id="03-serve-Composition"> @@ -37,7 +43,10 @@ params="$document?id=composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht" useToken="true"/> <nts:include value="assert.response.numResources" scope="common" - resource="Composition" count="1"/> + resource="Composition" count="1" nts:in-targets="#default"/> + + <nts:contentAsserts href="resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml" nts:in-targets="CheckContent"/> + </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 index f4d909197d..eb481bf843 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 @@ -17,7 +17,10 @@ params="?_id=task-hg-VerwijzingHuisartsParamedicusMinimaalbericht" useToken="true"/> <nts:include value="assert.response.numResources" scope="common" - resource="Task" count="1"/> + resource="Task" count="1" nts:in-targets="#default"/> + + <nts:contentAsserts href="resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml" nts:in-targets="CheckContent"/> + </test> <test id="02-serve-ServiceRequest"> @@ -27,7 +30,10 @@ params="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht" useToken="true"/> <nts:include value="assert.response.numResources" scope="common" - resource="ServiceRequest" count="1"/> + resource="ServiceRequest" count="1" nts:in-targets="#default"/> + + <nts:contentAsserts href="resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml" nts:in-targets="CheckContent"/> + </test> <test id="03-serve-Composition"> @@ -37,7 +43,10 @@ params="$document?id=composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht" useToken="true"/> <nts:include value="assert.response.numResources" scope="common" - resource="Composition" count="1"/> + resource="Composition" count="1" nts:in-targets="#default"/> + + <nts:contentAsserts href="resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml" nts:in-targets="CheckContent"/> + </test> </TestScript> From 4b65fb75f0b96d6a770fe10a37ba2c25ab55c9e9 Mon Sep 17 00:00:00 2001 From: Eduard <rijcke@nictiz.nl> Date: Thu, 18 Jul 2024 18:24:23 +0200 Subject: [PATCH 13/16] Add the content asserts to ELZ XIS serving scripts (in build) --- .../elz-receiving-xis-scenario-1-maximal.xml | 2 +- .../elz-receiving-xis-scenario-2-minimal.xml | 2 +- ...lz-serving-xis-scenario-1-maximal-json.xml | 898 ++++++++++++++++++ ...elz-serving-xis-scenario-1-maximal-xml.xml | 898 ++++++++++++++++++ ...lz-serving-xis-scenario-2-minimal-json.xml | 802 ++++++++++++++++ ...elz-serving-xis-scenario-2-minimal-xml.xml | 802 ++++++++++++++++ ...lz-serving-xis-scenario-1-maximal-json.xml | 14 +- ...elz-serving-xis-scenario-1-maximal-xml.xml | 14 +- ...lz-serving-xis-scenario-2-minimal-json.xml | 14 +- ...elz-serving-xis-scenario-2-minimal-xml.xml | 14 +- .../elz-serving-xis-scenario-1-maximal.xml | 9 +- .../elz-serving-xis-scenario-2-minimal.xml | 10 +- src/ELZ-0-2-0-beta/Test/build.properties | 1 + 13 files changed, 3443 insertions(+), 37 deletions(-) create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-json.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-xml.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-json.xml create mode 100644 dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-xml.xml diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml index ae4b6055c8..b537922335 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml @@ -5,7 +5,7 @@ <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> <url value="http://nictiz.nl/fhir/TestScript/elz-receiving-xis-scenario-1-maximal"/> - <version value="R4-patchlevel 2023-10"/> + <version value="R4-patchlevel 2024-03"/> <name value="ELZ - Receiving XIS - Scenario 1 - Retrieve ELZ resources of van-XXX-Sanderink-de-Kok"/> <status value="active"/> <publisher value="Nictiz"/> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml index 348f10009d..0c94cb4727 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml @@ -5,7 +5,7 @@ <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> <url value="http://nictiz.nl/fhir/TestScript/elz-receiving-xis-scenario-2-minimal"/> - <version value="R4-patchlevel 2023-10"/> + <version value="R4-patchlevel 2024-03"/> <name value="ELZ - Receiving XIS - Scenario 2 - Retrieve ELZ resources of XXX-Andrioli"/> <status value="active"/> <publisher value="Nictiz"/> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-json.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-json.xml new file mode 100644 index 0000000000..9cf9b105cf --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-json.xml @@ -0,0 +1,898 @@ +<?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"/> + <meta> + <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> + </meta> + <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-1-maximal-CheckContent-json"/> + <version value="R4-patchlevel 2024-03"/> + <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> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-origin-types"/> + <code value="FHIR-Client"/> + </profile> + </origin> + <destination> + <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 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + <description value="OAuth Token for current patient"/> + </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> + <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> + <test id="01-serve-Task"> + <name value="Scenario 1.1 - Task"/> + <description value="Serve Task resource"/> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <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="?_id=task-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + <responseId value="fixture-01-serve-Task"/> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <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> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Response contains exactly 1 Task"/> + <direction value="response"/> + <expression value="Task.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="Task resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="Task.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-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()"/> + <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="Task.where(id = '${task-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 'in-progress'"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').status = 'in-progress'"/> + <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 .intent 'order'"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').intent = 'order'"/> + <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 .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()"/> + <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 .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()"/> + <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 .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()"/> + <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 .authoredOn"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').authoredOn.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"/> + <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()"/> + <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 .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()"/> + <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://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <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="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + <responseId value="fixture-02-serve-ServiceRequest"/> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <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> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Response contains exactly 1 ServiceRequest"/> + <direction value="response"/> + <expression value="ServiceRequest.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="ServiceRequest resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="ServiceRequest.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-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()"/> + <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="ServiceRequest.where(id = '${servicerequest-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 'completed'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').status = 'completed'"/> + <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 .intent 'order'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').intent = 'order'"/> + <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 .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()"/> + <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 .priority 'asap'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').priority = 'asap'"/> + <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 .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()"/> + <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 .authoredOn"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').authoredOn.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"/> + <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()"/> + <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 .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()"/> + <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-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()"/> + <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://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <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="$document?id=composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + <responseId value="fixture-03-serve-Composition"/> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <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"/> + <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) and and ).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, and , and , 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 = '406550009' and display) and and and and ).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/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-xml.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-xml.xml new file mode 100644 index 0000000000..33cb12bb2e --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-xml.xml @@ -0,0 +1,898 @@ +<?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"/> + <meta> + <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> + </meta> + <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-1-maximal-CheckContent-xml"/> + <version value="R4-patchlevel 2024-03"/> + <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> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-origin-types"/> + <code value="FHIR-Client"/> + </profile> + </origin> + <destination> + <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 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> + <description value="OAuth Token for current patient"/> + </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> + <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> + <test id="01-serve-Task"> + <name value="Scenario 1.1 - Task"/> + <description value="Serve Task resource"/> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <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="?_id=task-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + <responseId value="fixture-01-serve-Task"/> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <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> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Response contains exactly 1 Task"/> + <direction value="response"/> + <expression value="Task.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="Task resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="Task.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-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()"/> + <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="Task.where(id = '${task-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 'in-progress'"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').status = 'in-progress'"/> + <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 .intent 'order'"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').intent = 'order'"/> + <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 .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()"/> + <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 .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()"/> + <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 .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()"/> + <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 .authoredOn"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').authoredOn.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"/> + <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()"/> + <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 .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()"/> + <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://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <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="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + <responseId value="fixture-02-serve-ServiceRequest"/> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <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> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Response contains exactly 1 ServiceRequest"/> + <direction value="response"/> + <expression value="ServiceRequest.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="ServiceRequest resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="ServiceRequest.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-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()"/> + <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="ServiceRequest.where(id = '${servicerequest-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 'completed'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').status = 'completed'"/> + <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 .intent 'order'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').intent = 'order'"/> + <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 .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()"/> + <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 .priority 'asap'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').priority = 'asap'"/> + <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 .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()"/> + <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 .authoredOn"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id}').authoredOn.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"/> + <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()"/> + <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 .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()"/> + <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-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()"/> + <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://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <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="$document?id=composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + <responseId value="fixture-03-serve-Composition"/> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <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"/> + <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) and and ).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, and , and , 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 = '406550009' and display) and and and and ).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/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-json.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-json.xml new file mode 100644 index 0000000000..c3402c3599 --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-json.xml @@ -0,0 +1,802 @@ +<?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"/> + <meta> + <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> + </meta> + <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-2-minimal-CheckContent-json"/> + <version value="R4-patchlevel 2024-03"/> + <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> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-origin-types"/> + <code value="FHIR-Client"/> + </profile> + </origin> + <destination> + <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 9we86dg8-aab0-4417-9b3c-e6f635892fea"/> + <description value="OAuth Token for current patient"/> + </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> + <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> + <test id="01-serve-Task"> + <name value="Scenario 2.1 - Task"/> + <description value="Serve Task resource"/> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <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="?_id=task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + <responseId value="fixture-01-serve-Task"/> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <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> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Response contains exactly 1 Task"/> + <direction value="response"/> + <expression value="Task.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="Task resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="Task.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-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()"/> + <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 . and .value"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').identifier.where({$_EXPR}).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 'in-progress'"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').status = 'in-progress'"/> + <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 .intent 'order'"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').intent = 'order'"/> + <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 .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()"/> + <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 .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()"/> + <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 .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()"/> + <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 .authoredOn"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').authoredOn.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"/> + <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()"/> + <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 .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()"/> + <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://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <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="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + <responseId value="fixture-02-serve-ServiceRequest"/> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <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> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Response contains exactly 1 ServiceRequest"/> + <direction value="response"/> + <expression value="ServiceRequest.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="ServiceRequest resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="ServiceRequest.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-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()"/> + <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="ServiceRequest.where(id = '${servicerequest-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 'completed'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').status = 'completed'"/> + <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 .intent 'order'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').intent = 'order'"/> + <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 .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()"/> + <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 .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()"/> + <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 .authoredOn"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').authoredOn.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 .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()"/> + <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"/> + <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()"/> + <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 .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()"/> + <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://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <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="$document?id=composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + <responseId value="fixture-03-serve-Composition"/> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <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"/> + <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, 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-VerwijzingHuisartsParamedicusMinimaalbericht-id}').section.where(title.hasValue() and code.coding.where(system = 'http://snomed.info/sct' and code = '406550009' and display) and and ).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/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-xml.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-xml.xml new file mode 100644 index 0000000000..638336bff4 --- /dev/null +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-xml.xml @@ -0,0 +1,802 @@ +<?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"/> + <meta> + <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> + </meta> + <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-2-minimal-CheckContent-xml"/> + <version value="R4-patchlevel 2024-03"/> + <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> + <index value="1"/> + <profile> + <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-origin-types"/> + <code value="FHIR-Client"/> + </profile> + </origin> + <destination> + <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 9we86dg8-aab0-4417-9b3c-e6f635892fea"/> + <description value="OAuth Token for current patient"/> + </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> + <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> + <test id="01-serve-Task"> + <name value="Scenario 2.1 - Task"/> + <description value="Serve Task resource"/> + <action> + <operation> + <type> + <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <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="?_id=task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + <responseId value="fixture-01-serve-Task"/> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <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> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Response contains exactly 1 Task"/> + <direction value="response"/> + <expression value="Task.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="Task resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="Task.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-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()"/> + <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 . and .value"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').identifier.where({$_EXPR}).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 'in-progress'"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').status = 'in-progress'"/> + <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 .intent 'order'"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').intent = 'order'"/> + <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 .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()"/> + <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 .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()"/> + <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 .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()"/> + <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 .authoredOn"/> + <direction value="response"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').authoredOn.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"/> + <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()"/> + <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 .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()"/> + <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://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <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="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + <responseId value="fixture-02-serve-ServiceRequest"/> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <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> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Response contains exactly 1 ServiceRequest"/> + <direction value="response"/> + <expression value="ServiceRequest.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="ServiceRequest resource evaluated in the previous assert contains an .id"/> + <direction value="response"/> + <expression value="ServiceRequest.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-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()"/> + <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="ServiceRequest.where(id = '${servicerequest-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 'completed'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').status = 'completed'"/> + <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 .intent 'order'"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').intent = 'order'"/> + <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 .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()"/> + <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 .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()"/> + <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 .authoredOn"/> + <direction value="response"/> + <expression value="ServiceRequest.where(id = '${servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').authoredOn.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 .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()"/> + <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"/> + <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()"/> + <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 .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()"/> + <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://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> + <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="$document?id=composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <requestHeader> + <field value="Authorization"/> + <value value="${patient-token-id}"/> + </requestHeader> + <responseId value="fixture-03-serve-Composition"/> + </operation> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="true"/> + </extension> + <description value="Confirm that the operation was successful"/> + <operator value="in"/> + <responseCode value="200,201"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <warningOnly value="false"/> + </assert> + </action> + <action> + <assert> + <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> + <valueBoolean value="false"/> + </extension> + <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())"/> + <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"/> + <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, 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-VerwijzingHuisartsParamedicusMinimaalbericht-id}').section.where(title.hasValue() and code.coding.where(system = 'http://snomed.info/sct' and code = '406550009' and display) and and ).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/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml index bed16257e6..ccddd3bd14 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml @@ -5,7 +5,7 @@ <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-1-maximal-json"/> - <version value="R4-patchlevel 2023-10"/> + <version value="R4-patchlevel 2024-03"/> <name value="ELZ - Serving XIS - Scenario 1 - Serving ELZ resources of van-XXX-Sanderink-de-Kok - JSON Format"/> <status value="active"/> <publisher value="Nictiz"/> @@ -75,9 +75,9 @@ <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> <valueBoolean value="false"/> </extension> - <description value="Confirm that all coding elements contain both a .system and a .code."/> + <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())"/> + <expression value="Task.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -175,9 +175,9 @@ <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> <valueBoolean value="false"/> </extension> - <description value="Confirm that all coding elements contain both a .system and a .code."/> + <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())"/> + <expression value="ServiceRequest.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -275,9 +275,9 @@ <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> <valueBoolean value="false"/> </extension> - <description value="Confirm that all coding elements contain both a .system and a .code."/> + <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())"/> + <expression value="Composition.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml index 3c9d64d024..fdb1c67778 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml @@ -5,7 +5,7 @@ <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-1-maximal-xml"/> - <version value="R4-patchlevel 2023-10"/> + <version value="R4-patchlevel 2024-03"/> <name value="ELZ - Serving XIS - Scenario 1 - Serving ELZ resources of van-XXX-Sanderink-de-Kok - XML Format"/> <status value="active"/> <publisher value="Nictiz"/> @@ -75,9 +75,9 @@ <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> <valueBoolean value="false"/> </extension> - <description value="Confirm that all coding elements contain both a .system and a .code."/> + <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())"/> + <expression value="Task.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -175,9 +175,9 @@ <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> <valueBoolean value="false"/> </extension> - <description value="Confirm that all coding elements contain both a .system and a .code."/> + <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())"/> + <expression value="ServiceRequest.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -275,9 +275,9 @@ <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> <valueBoolean value="false"/> </extension> - <description value="Confirm that all coding elements contain both a .system and a .code."/> + <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())"/> + <expression value="Composition.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml index 0e2a9aeed5..e887bda362 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml @@ -5,7 +5,7 @@ <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-2-minimal-json"/> - <version value="R4-patchlevel 2023-10"/> + <version value="R4-patchlevel 2024-03"/> <name value="ELZ - Serving XIS - Scenario 2 - Serving ELZ resources of XXX-Andrioli - JSON Format"/> <status value="active"/> <publisher value="Nictiz"/> @@ -75,9 +75,9 @@ <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> <valueBoolean value="false"/> </extension> - <description value="Confirm that all coding elements contain both a .system and a .code."/> + <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())"/> + <expression value="Task.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -175,9 +175,9 @@ <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> <valueBoolean value="false"/> </extension> - <description value="Confirm that all coding elements contain both a .system and a .code."/> + <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())"/> + <expression value="ServiceRequest.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -275,9 +275,9 @@ <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> <valueBoolean value="false"/> </extension> - <description value="Confirm that all coding elements contain both a .system and a .code."/> + <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())"/> + <expression value="Composition.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml index b529792c54..228243bd99 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml @@ -5,7 +5,7 @@ <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-2-minimal-xml"/> - <version value="R4-patchlevel 2023-10"/> + <version value="R4-patchlevel 2024-03"/> <name value="ELZ - Serving XIS - Scenario 2 - Serving ELZ resources of XXX-Andrioli - XML Format"/> <status value="active"/> <publisher value="Nictiz"/> @@ -75,9 +75,9 @@ <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> <valueBoolean value="false"/> </extension> - <description value="Confirm that all coding elements contain both a .system and a .code."/> + <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())"/> + <expression value="Task.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -175,9 +175,9 @@ <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> <valueBoolean value="false"/> </extension> - <description value="Confirm that all coding elements contain both a .system and a .code."/> + <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())"/> + <expression value="ServiceRequest.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> @@ -275,9 +275,9 @@ <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> <valueBoolean value="false"/> </extension> - <description value="Confirm that all coding elements contain both a .system and a .code."/> + <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())"/> + <expression value="Composition.descendants().where($this.is(Coding)).all(system.exists() and code.exists())"/> <warningOnly value="false"/> </assert> </action> 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 0733ad3caf..d76b7aed4f 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 @@ -19,7 +19,8 @@ <nts:include value="assert.response.numResources" scope="common" resource="Task" count="1" nts:in-targets="#default"/> - <nts:contentAsserts href="resources/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml" nts:in-targets="CheckContent"/> + <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> @@ -32,7 +33,8 @@ <nts:include value="assert.response.numResources" scope="common" resource="ServiceRequest" count="1" nts:in-targets="#default"/> - <nts:contentAsserts href="resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml" nts:in-targets="CheckContent"/> + <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> @@ -45,7 +47,8 @@ <nts:include value="assert.response.numResources" scope="common" resource="Composition" count="1" nts:in-targets="#default"/> - <nts:contentAsserts href="resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml" nts:in-targets="CheckContent"/> + <nts:contentAsserts href="resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml" + description="contains .type.coding.code = '57133-1'" discriminator="type.where(coding.where(code = '57133-1'))" nts:in-targets="CheckContent"/> </test> 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 eb481bf843..8fe4dd1122 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 @@ -19,7 +19,8 @@ <nts:include value="assert.response.numResources" scope="common" resource="Task" count="1" nts:in-targets="#default"/> - <nts:contentAsserts href="resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml" nts:in-targets="CheckContent"/> + <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> @@ -32,7 +33,8 @@ <nts:include value="assert.response.numResources" scope="common" resource="ServiceRequest" count="1" nts:in-targets="#default"/> - <nts:contentAsserts href="resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml" nts:in-targets="CheckContent"/> + <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> @@ -45,8 +47,8 @@ <nts:include value="assert.response.numResources" scope="common" resource="Composition" count="1" nts:in-targets="#default"/> - <nts:contentAsserts href="resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml" nts:in-targets="CheckContent"/> - + <nts:contentAsserts href="resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml" + description="contains .type.coding.code = '57133-1'" discriminator="type.where(coding.where(code = '57133-1'))" nts:in-targets="CheckContent"/> </test> </TestScript> diff --git a/src/ELZ-0-2-0-beta/Test/build.properties b/src/ELZ-0-2-0-beta/Test/build.properties index dae0607e6d..c36b55c128 100644 --- a/src/ELZ-0-2-0-beta/Test/build.properties +++ b/src/ELZ-0-2-0-beta/Test/build.properties @@ -1,3 +1,4 @@ input.dir = src/ELZ-0-2-0-beta/Test output.dir = dev/FHIR4-0-1-Test/ELZ-0-2-0-beta +targets.additional = Serving-XIS-CheckContent fhir.version = R4 \ No newline at end of file From d3e33c3bc843597dda828650d85fdb7ed25922a0 Mon Sep 17 00:00:00 2001 From: Eduard <rijcke@nictiz.nl> Date: Tue, 8 Oct 2024 17:51:12 +0200 Subject: [PATCH 14/16] Regenerated the scripts for ELZ beta --- .../elz-receiving-xis-scenario-1-maximal.xml | 39 ++----------------- .../elz-receiving-xis-scenario-2-minimal.xml | 39 ++----------------- ...lz-serving-xis-scenario-1-maximal-json.xml | 6 +-- ...elz-serving-xis-scenario-1-maximal-xml.xml | 6 +-- ...lz-serving-xis-scenario-2-minimal-json.xml | 10 ++--- ...elz-serving-xis-scenario-2-minimal-xml.xml | 10 ++--- ...lz-serving-xis-scenario-1-maximal-json.xml | 39 ++----------------- ...elz-serving-xis-scenario-1-maximal-xml.xml | 39 ++----------------- ...lz-serving-xis-scenario-2-minimal-json.xml | 39 ++----------------- ...elz-serving-xis-scenario-2-minimal-xml.xml | 39 ++----------------- ...zingHuisartsParamedicusMinimaalbericht.xml | 3 +- dev/FHIR4-0-1-Test/groupProps.json | 6 --- .../elz-receiving-xis-scenario-1-maximal.xml | 12 ++---- .../elz-receiving-xis-scenario-2-minimal.xml | 12 ++---- .../elz-serving-xis-scenario-1-maximal.xml | 19 +++------ .../elz-serving-xis-scenario-2-minimal.xml | 14 ++----- ...zingHuisartsParamedicusMinimaalbericht.xml | 1 + 17 files changed, 53 insertions(+), 280 deletions(-) delete mode 100644 dev/FHIR4-0-1-Test/groupProps.json diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml index b537922335..685c36d34b 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml @@ -46,24 +46,13 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="?_id=task-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <params value="/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> </requestHeader> </operation> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the response Bundle contains 1 Task resource(s). "/> - <direction value="response"/> - <expression value="Bundle.entry.where(resource.is(Task)).count() = 1"/> - <warningOnly value="false"/> - </assert> - </action> </test> <test id="02-retrieve-ServiceRequest"> <name value="Scenario 1.2 - ServiceRequest"/> @@ -79,24 +68,13 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <params value="/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> </requestHeader> </operation> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the response Bundle contains 1 ServiceRequest resource(s). "/> - <direction value="response"/> - <expression value="Bundle.entry.where(resource.is(ServiceRequest)).count() = 1"/> - <warningOnly value="false"/> - </assert> - </action> </test> <test id="03-retrieve-Composition"> <name value="Scenario 1.3 - Composition"/> @@ -112,23 +90,12 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="$document?id=composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <params value="/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> </requestHeader> </operation> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the response Bundle contains 1 Composition resource(s). "/> - <direction value="response"/> - <expression value="Bundle.entry.where(resource.is(Composition)).count() = 1"/> - <warningOnly value="false"/> - </assert> - </action> </test> </TestScript> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml index 0c94cb4727..2342f73dfe 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml @@ -46,24 +46,13 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="?_id=task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <params value="/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="Bearer 9we86dg8-aab0-4417-9b3c-e6f635892fea"/> </requestHeader> </operation> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the response Bundle contains 1 Task resource(s). "/> - <direction value="response"/> - <expression value="Bundle.entry.where(resource.is(Task)).count() = 1"/> - <warningOnly value="false"/> - </assert> - </action> </test> <test id="02-retrieve-ServiceRequest"> <name value="Scenario 2.2 - ServiceRequest"/> @@ -79,24 +68,13 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <params value="/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="Bearer 9we86dg8-aab0-4417-9b3c-e6f635892fea"/> </requestHeader> </operation> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the response Bundle contains 1 ServiceRequest resource(s). "/> - <direction value="response"/> - <expression value="Bundle.entry.where(resource.is(ServiceRequest)).count() = 1"/> - <warningOnly value="false"/> - </assert> - </action> </test> <test id="03-retrieve-Composition"> <name value="Scenario 2.3 - Composition"/> @@ -112,23 +90,12 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="$document?id=composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <params value="/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="Bearer 9we86dg8-aab0-4417-9b3c-e6f635892fea"/> </requestHeader> </operation> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the response Bundle contains 1 Composition resource(s). "/> - <direction value="response"/> - <expression value="Bundle.entry.where(resource.is(Composition)).count() = 1"/> - <warningOnly value="false"/> - </assert> - </action> </test> </TestScript> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-json.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-json.xml index 9cf9b105cf..7ce9555390 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-json.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-json.xml @@ -70,7 +70,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="?_id=task-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <params value="/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> @@ -306,7 +306,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <params value="/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> @@ -554,7 +554,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="$document?id=composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <params value="/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-xml.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-xml.xml index 33cb12bb2e..67b9be9051 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-xml.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-xml.xml @@ -70,7 +70,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="?_id=task-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <params value="/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> @@ -306,7 +306,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <params value="/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> @@ -554,7 +554,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="$document?id=composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <params value="/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-json.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-json.xml index c3402c3599..d50a869332 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-json.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-json.xml @@ -70,7 +70,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="?_id=task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <params value="/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> @@ -188,9 +188,9 @@ <valueBoolean value="false"/> </extension> <label value="1-2"/> - <description value="Contains .identifier with . and .value"/> + <description value="Contains .identifier with .system and .value"/> <direction value="response"/> - <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').identifier.where({$_EXPR}).exists()"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').identifier.where(system and value).exists()"/> <warningOnly value="false"/> </assert> </action> @@ -306,7 +306,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <params value="/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> @@ -542,7 +542,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="$document?id=composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <params value="/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-xml.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-xml.xml index 638336bff4..3970f57e3c 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-xml.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-xml.xml @@ -70,7 +70,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="?_id=task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <params value="/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> @@ -188,9 +188,9 @@ <valueBoolean value="false"/> </extension> <label value="1-2"/> - <description value="Contains .identifier with . and .value"/> + <description value="Contains .identifier with .system and .value"/> <direction value="response"/> - <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').identifier.where({$_EXPR}).exists()"/> + <expression value="Task.where(id = '${task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id}').identifier.where(system and value).exists()"/> <warningOnly value="false"/> </assert> </action> @@ -306,7 +306,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <params value="/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> @@ -542,7 +542,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="$document?id=composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <params value="/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml index ccddd3bd14..b06a2c5ece 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml @@ -52,7 +52,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="?_id=task-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <params value="/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> @@ -125,17 +125,6 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the response Bundle contains 1 Task resource(s). "/> - <direction value="response"/> - <expression value="Bundle.entry.where(resource.is(Task)).count() = 1"/> - <warningOnly value="false"/> - </assert> - </action> </test> <test id="02-serve-ServiceRequest"> <name value="Scenario 1.2 - ServiceRequest"/> @@ -152,7 +141,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <params value="/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> @@ -225,17 +214,6 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the response Bundle contains 1 ServiceRequest resource(s). "/> - <direction value="response"/> - <expression value="Bundle.entry.where(resource.is(ServiceRequest)).count() = 1"/> - <warningOnly value="false"/> - </assert> - </action> </test> <test id="03-serve-Composition"> <name value="Scenario 1.3 - Composition"/> @@ -252,7 +230,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="$document?id=composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <params value="/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> @@ -325,16 +303,5 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the response Bundle contains 1 Composition resource(s). "/> - <direction value="response"/> - <expression value="Bundle.entry.where(resource.is(Composition)).count() = 1"/> - <warningOnly value="false"/> - </assert> - </action> </test> </TestScript> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml index fdb1c67778..88ca2b212f 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml @@ -52,7 +52,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="?_id=task-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <params value="/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> @@ -125,17 +125,6 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the response Bundle contains 1 Task resource(s). "/> - <direction value="response"/> - <expression value="Bundle.entry.where(resource.is(Task)).count() = 1"/> - <warningOnly value="false"/> - </assert> - </action> </test> <test id="02-serve-ServiceRequest"> <name value="Scenario 1.2 - ServiceRequest"/> @@ -152,7 +141,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <params value="/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> @@ -225,17 +214,6 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the response Bundle contains 1 ServiceRequest resource(s). "/> - <direction value="response"/> - <expression value="Bundle.entry.where(resource.is(ServiceRequest)).count() = 1"/> - <warningOnly value="false"/> - </assert> - </action> </test> <test id="03-serve-Composition"> <name value="Scenario 1.3 - Composition"/> @@ -252,7 +230,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="$document?id=composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> + <params value="/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> @@ -325,16 +303,5 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the response Bundle contains 1 Composition resource(s). "/> - <direction value="response"/> - <expression value="Bundle.entry.where(resource.is(Composition)).count() = 1"/> - <warningOnly value="false"/> - </assert> - </action> </test> </TestScript> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml index e887bda362..305c79fa42 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml @@ -52,7 +52,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="?_id=task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <params value="/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> @@ -125,17 +125,6 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the response Bundle contains 1 Task resource(s). "/> - <direction value="response"/> - <expression value="Bundle.entry.where(resource.is(Task)).count() = 1"/> - <warningOnly value="false"/> - </assert> - </action> </test> <test id="02-serve-ServiceRequest"> <name value="Scenario 2.2 - ServiceRequest"/> @@ -152,7 +141,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <params value="/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> @@ -225,17 +214,6 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the response Bundle contains 1 ServiceRequest resource(s). "/> - <direction value="response"/> - <expression value="Bundle.entry.where(resource.is(ServiceRequest)).count() = 1"/> - <warningOnly value="false"/> - </assert> - </action> </test> <test id="03-serve-Composition"> <name value="Scenario 2.3 - Composition"/> @@ -252,7 +230,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="$document?id=composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <params value="/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> @@ -325,16 +303,5 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the response Bundle contains 1 Composition resource(s). "/> - <direction value="response"/> - <expression value="Bundle.entry.where(resource.is(Composition)).count() = 1"/> - <warningOnly value="false"/> - </assert> - </action> </test> </TestScript> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml index 228243bd99..011dfc15e3 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml @@ -52,7 +52,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="?_id=task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <params value="/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> @@ -125,17 +125,6 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the response Bundle contains 1 Task resource(s). "/> - <direction value="response"/> - <expression value="Bundle.entry.where(resource.is(Task)).count() = 1"/> - <warningOnly value="false"/> - </assert> - </action> </test> <test id="02-serve-ServiceRequest"> <name value="Scenario 2.2 - ServiceRequest"/> @@ -152,7 +141,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <params value="/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> @@ -225,17 +214,6 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the response Bundle contains 1 ServiceRequest resource(s). "/> - <direction value="response"/> - <expression value="Bundle.entry.where(resource.is(ServiceRequest)).count() = 1"/> - <warningOnly value="false"/> - </assert> - </action> </test> <test id="03-serve-Composition"> <name value="Scenario 2.3 - Composition"/> @@ -252,7 +230,7 @@ <destination value="1"/> <encodeRequestUrl value="true"/> <origin value="1"/> - <params value="$document?id=composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> + <params value="/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht"/> <requestHeader> <field value="Authorization"/> <value value="${patient-token-id}"/> @@ -325,16 +303,5 @@ <warningOnly value="false"/> </assert> </action> - <action> - <assert> - <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail"> - <valueBoolean value="false"/> - </extension> - <description value="Confirm that the response Bundle contains 1 Composition resource(s). "/> - <direction value="response"/> - <expression value="Bundle.entry.where(resource.is(Composition)).count() = 1"/> - <warningOnly value="false"/> - </assert> - </action> </test> </TestScript> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml index dcc81865f0..8bac5ff431 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml @@ -7,7 +7,7 @@ <status value="extensions"/> <div xmlns="http://www.w3.org/1999/xhtml"> <table> - <caption>Taak. Id: hg-VerwijzingHuisartsParamedicusMinimaalbericht, Status: is bezig<span style="display: block;">Intentie: aanvraag</span> + <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> @@ -45,6 +45,7 @@ </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"/> diff --git a/dev/FHIR4-0-1-Test/groupProps.json b/dev/FHIR4-0-1-Test/groupProps.json deleted file mode 100644 index 1cfc87fff3..0000000000 --- a/dev/FHIR4-0-1-Test/groupProps.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "excludeFromUpload": [ - ".*Nictiz-intern(/.*)?", - ".*/Nictiz/.+/.+/_LoadResources(/.*)?" - ] -} 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 index b8de2a05da..7042b856c4 100644 --- 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 @@ -14,30 +14,24 @@ value="Query Task resource"/> <nts:include value="test.client.read" scope="common" resource="Task" - params="?_id=task-hg-VerwijzingHuisartsParamedicusMaximaalbericht" + params="/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht" useToken="true"/> - <nts:include value="assert.response.numResources" scope="common" - resource="Task" count="1"/> </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="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht" + params="/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht" useToken="true"/> - <nts:include value="assert.response.numResources" scope="common" - resource="ServiceRequest" count="1"/> </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="$document?id=composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht" + params="/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht" useToken="true"/> - <nts:include value="assert.response.numResources" scope="common" - resource="Composition" count="1"/> </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 index 9f88bc15b7..0fa2f4a8b8 100644 --- 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 @@ -14,30 +14,24 @@ value="Query Task resource"/> <nts:include value="test.client.read" scope="common" resource="Task" - params="?_id=task-hg-VerwijzingHuisartsParamedicusMinimaalbericht" + params="/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht" useToken="true"/> - <nts:include value="assert.response.numResources" scope="common" - resource="Task" count="1"/> </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="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht" + params="/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht" useToken="true"/> - <nts:include value="assert.response.numResources" scope="common" - resource="ServiceRequest" count="1"/> </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="$document?id=composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht" + params="/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht" useToken="true"/> - <nts:include value="assert.response.numResources" scope="common" - resource="Composition" count="1"/> </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 index d76b7aed4f..caa37914ac 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 @@ -14,10 +14,8 @@ value="Serve Task resource"/> <nts:include value="test.server.successfulRead" scope="common" resource="Task" - params="?_id=task-hg-VerwijzingHuisartsParamedicusMaximaalbericht" + params="/task-hg-VerwijzingHuisartsParamedicusMaximaalbericht" useToken="true"/> - <nts:include value="assert.response.numResources" scope="common" - resource="Task" count="1" nts:in-targets="#default"/> <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"/> @@ -28,11 +26,9 @@ <name value="Scenario 1.2 - ServiceRequest"/> <description value="Serve ServiceRequest resource"/> <nts:include value="test.server.successfulRead" scope="common" resource="ServiceRequest" - params="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht" + params="/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht" useToken="true"/> - <nts:include value="assert.response.numResources" scope="common" - resource="ServiceRequest" count="1" nts:in-targets="#default"/> - + <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"/> @@ -42,14 +38,11 @@ <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="$document?id=composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht" + params="/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht" useToken="true"/> - <nts:include value="assert.response.numResources" scope="common" - resource="Composition" count="1" nts:in-targets="#default"/> - + <nts:contentAsserts href="resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml" description="contains .type.coding.code = '57133-1'" discriminator="type.where(coding.where(code = '57133-1'))" nts:in-targets="CheckContent"/> - - </test> + </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 index 8fe4dd1122..85090725a1 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 @@ -14,10 +14,8 @@ value="Serve Task resource"/> <nts:include value="test.server.successfulRead" scope="common" resource="Task" - params="?_id=task-hg-VerwijzingHuisartsParamedicusMinimaalbericht" + params="/task-hg-VerwijzingHuisartsParamedicusMinimaalbericht" useToken="true"/> - <nts:include value="assert.response.numResources" scope="common" - resource="Task" count="1" nts:in-targets="#default"/> <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"/> @@ -28,10 +26,8 @@ <name value="Scenario 2.2 - ServiceRequest"/> <description value="Serve ServiceRequest resource"/> <nts:include value="test.server.successfulRead" scope="common" resource="ServiceRequest" - params="?_id=servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht" + params="/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht" useToken="true"/> - <nts:include value="assert.response.numResources" scope="common" - resource="ServiceRequest" count="1" nts:in-targets="#default"/> <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"/> @@ -42,11 +38,9 @@ <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="$document?id=composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht" + params="/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht" useToken="true"/> - <nts:include value="assert.response.numResources" scope="common" - resource="Composition" count="1" nts:in-targets="#default"/> - + <nts:contentAsserts href="resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml" description="contains .type.coding.code = '57133-1'" discriminator="type.where(coding.where(code = '57133-1'))" nts:in-targets="CheckContent"/> </test> 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 index 7135bdaedc..88d872be6f 100644 --- 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 @@ -5,6 +5,7 @@ <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"/> From 49d8417bfb299f9d31327956fe26a9461ac67930 Mon Sep 17 00:00:00 2001 From: Eduard <rijcke@nictiz.nl> Date: Mon, 18 Nov 2024 16:42:28 +0100 Subject: [PATCH 15/16] Fixed the content asserts bug at the Composition resources --- .gitignore | 30 +++++++++++++++++++ .../elz-receiving-xis-scenario-1-maximal.xml | 2 +- .../elz-receiving-xis-scenario-2-minimal.xml | 2 +- ...lz-serving-xis-scenario-1-maximal-json.xml | 12 ++++---- ...elz-serving-xis-scenario-1-maximal-xml.xml | 14 ++++----- ...lz-serving-xis-scenario-2-minimal-json.xml | 12 ++++---- ...elz-serving-xis-scenario-2-minimal-xml.xml | 12 ++++---- ...lz-serving-xis-scenario-1-maximal-json.xml | 8 ++--- ...elz-serving-xis-scenario-1-maximal-xml.xml | 8 ++--- ...lz-serving-xis-scenario-2-minimal-json.xml | 8 ++--- ...elz-serving-xis-scenario-2-minimal-xml.xml | 8 ++--- .../resources/contactperson-de-Kok.xml | 2 +- ...zingHuisartsParamedicusMaximaalbericht.xml | 29 ++++++++++++++++++ ...zingHuisartsParamedicusMinimaalbericht.xml | 28 +++++++++++++++++ 14 files changed, 131 insertions(+), 44 deletions(-) diff --git a/.gitignore b/.gitignore index 301d639da0..5636798804 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,33 @@ build/ *.log /bin/ *.xpr +.metadata/.lock +.metadata/version.ini +.metadata/.plugins/org.eclipse.core.resources/.projects/dev/.markers +.metadata/.plugins/org.eclipse.core.resources/.root/4.tree +.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version +.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index +.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version +.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources +.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs +.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs +.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs +.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.navigator.prefs +.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs +.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.urischeme.prefs +.metadata/.plugins/org.eclipse.core.runtime/.settings/ts.ide.upload.plugin.prefs +.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi +.metadata/.plugins/org.eclipse.jdt.core/assumedExternalFilesCache +.metadata/.plugins/org.eclipse.jdt.core/externalFilesCache +.metadata/.plugins/org.eclipse.jdt.core/javaLikeNames.txt +.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache +.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat +.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml +.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml +.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2024/11/47/refactorings.history +.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2024/11/47/refactorings.index +.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml +.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml +.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml +.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml +.metadata/.plugins/org.eclipse.wst.sse.core/task-tags.properties diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml index 685c36d34b..fca501a6e3 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-1-maximal.xml @@ -5,7 +5,7 @@ <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> <url value="http://nictiz.nl/fhir/TestScript/elz-receiving-xis-scenario-1-maximal"/> - <version value="R4-patchlevel 2024-03"/> + <version value="R4-patchlevel 2024-10"/> <name value="ELZ - Receiving XIS - Scenario 1 - Retrieve ELZ resources of van-XXX-Sanderink-de-Kok"/> <status value="active"/> <publisher value="Nictiz"/> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml index 2342f73dfe..c4469de60c 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Receiving-XIS/elz-receiving-xis-scenario-2-minimal.xml @@ -5,7 +5,7 @@ <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> <url value="http://nictiz.nl/fhir/TestScript/elz-receiving-xis-scenario-2-minimal"/> - <version value="R4-patchlevel 2024-03"/> + <version value="R4-patchlevel 2024-10"/> <name value="ELZ - Receiving XIS - Scenario 2 - Retrieve ELZ resources of XXX-Andrioli"/> <status value="active"/> <publisher value="Nictiz"/> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-json.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-json.xml index 7ce9555390..c2d5e356ff 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-json.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-json.xml @@ -5,7 +5,7 @@ <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-1-maximal-CheckContent-json"/> - <version value="R4-patchlevel 2024-03"/> + <version value="R4-patchlevel 2024-10"/> <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"/> @@ -107,7 +107,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> @@ -343,7 +343,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> @@ -591,7 +591,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> @@ -758,7 +758,7 @@ <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) and and ).exists()"/> + <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> @@ -818,7 +818,7 @@ <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, and , and , 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 = '406550009' and display) and and and and ).exists()"/> + <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> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-xml.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-xml.xml index 67b9be9051..273774817f 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-xml.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-xml.xml @@ -5,7 +5,7 @@ <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-1-maximal-CheckContent-xml"/> - <version value="R4-patchlevel 2024-03"/> + <version value="R4-patchlevel 2024-10"/> <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"/> @@ -107,7 +107,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> @@ -343,7 +343,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> @@ -591,7 +591,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> @@ -758,7 +758,7 @@ <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) and and ).exists()"/> + <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> @@ -816,9 +816,9 @@ <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, and , and , 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"/> + <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) and and and and ).exists()"/> + <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> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-json.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-json.xml index d50a869332..efb542cd3e 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-json.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-json.xml @@ -5,7 +5,7 @@ <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-2-minimal-CheckContent-json"/> - <version value="R4-patchlevel 2024-03"/> + <version value="R4-patchlevel 2024-10"/> <name value="ELZ - Serving XIS - Scenario 2 - Serving ELZ resources of XXX-Andrioli - target CheckContent - JSON Format"/> <status value="active"/> <publisher value="Nictiz"/> @@ -107,7 +107,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> @@ -343,7 +343,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> @@ -579,7 +579,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> @@ -744,9 +744,9 @@ <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, 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"/> + <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) and and ).exists()"/> + <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> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-xml.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-xml.xml index 3970f57e3c..0a1fd4e840 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-xml.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-xml.xml @@ -5,7 +5,7 @@ <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-2-minimal-CheckContent-xml"/> - <version value="R4-patchlevel 2024-03"/> + <version value="R4-patchlevel 2024-10"/> <name value="ELZ - Serving XIS - Scenario 2 - Serving ELZ resources of XXX-Andrioli - target CheckContent - XML Format"/> <status value="active"/> <publisher value="Nictiz"/> @@ -107,7 +107,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> @@ -343,7 +343,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> @@ -579,7 +579,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> @@ -744,9 +744,9 @@ <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, 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"/> + <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) and and ).exists()"/> + <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> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml index b06a2c5ece..c7f064bc65 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-json.xml @@ -5,7 +5,7 @@ <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-1-maximal-json"/> - <version value="R4-patchlevel 2024-03"/> + <version value="R4-patchlevel 2024-10"/> <name value="ELZ - Serving XIS - Scenario 1 - Serving ELZ resources of van-XXX-Sanderink-de-Kok - JSON Format"/> <status value="active"/> <publisher value="Nictiz"/> @@ -88,7 +88,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> @@ -177,7 +177,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> @@ -266,7 +266,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml index 88ca2b212f..aa77ed5eac 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-1-maximal-xml.xml @@ -5,7 +5,7 @@ <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-1-maximal-xml"/> - <version value="R4-patchlevel 2024-03"/> + <version value="R4-patchlevel 2024-10"/> <name value="ELZ - Serving XIS - Scenario 1 - Serving ELZ resources of van-XXX-Sanderink-de-Kok - XML Format"/> <status value="active"/> <publisher value="Nictiz"/> @@ -88,7 +88,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> @@ -177,7 +177,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> @@ -266,7 +266,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml index 305c79fa42..812fbc544c 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-json.xml @@ -5,7 +5,7 @@ <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-2-minimal-json"/> - <version value="R4-patchlevel 2024-03"/> + <version value="R4-patchlevel 2024-10"/> <name value="ELZ - Serving XIS - Scenario 2 - Serving ELZ resources of XXX-Andrioli - JSON Format"/> <status value="active"/> <publisher value="Nictiz"/> @@ -88,7 +88,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> @@ -177,7 +177,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> @@ -266,7 +266,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml index 011dfc15e3..9c5fe7d18b 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS/elz-serving-xis-scenario-2-minimal-xml.xml @@ -5,7 +5,7 @@ <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> </meta> <url value="http://nictiz.nl/fhir/TestScript/elz-serving-xis-scenario-2-minimal-xml"/> - <version value="R4-patchlevel 2024-03"/> + <version value="R4-patchlevel 2024-10"/> <name value="ELZ - Serving XIS - Scenario 2 - Serving ELZ resources of XXX-Andrioli - XML Format"/> <status value="active"/> <publisher value="Nictiz"/> @@ -88,7 +88,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> @@ -177,7 +177,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> @@ -266,7 +266,7 @@ </extension> <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)).system.startsWith('urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2').not()"/> + <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()"/> <warningOnly value="false"/> </assert> </action> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/contactperson-de-Kok.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/contactperson-de-Kok.xml index 26cb136ba1..5499c80f57 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/contactperson-de-Kok.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/contactperson-de-Kok.xml @@ -13,7 +13,7 @@ <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 - http://terminology.hl7.org/CodeSystem/v3-RoleCode)">Partner</span> van Patient, Sandra Janine (Sandra) van XXX_Sanderink</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> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml index 9661bdcaa3..7e7cc740a2 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml @@ -3,6 +3,35 @@ <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>${DATE}</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"/> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml index 98f445b368..d48d0d49c0 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/_reference/resources/servicerequest-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml @@ -3,6 +3,34 @@ <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>${DATE}</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"/> From 863e2015b2b7f287a2793d6112ef05c4a3be9eb5 Mon Sep 17 00:00:00 2001 From: Eduard <rijcke@nictiz.nl> Date: Mon, 25 Nov 2024 10:31:25 +0100 Subject: [PATCH 16/16] XIS Checkcontent fix --- ...lz-serving-xis-scenario-1-maximal-json.xml | 14 +- ...elz-serving-xis-scenario-1-maximal-xml.xml | 12 +- ...lz-serving-xis-scenario-2-minimal-json.xml | 14 +- ...elz-serving-xis-scenario-2-minimal-xml.xml | 12 +- .../elz-serving-xis-scenario-1-maximal.xml | 278 +++++++++++++++++- .../elz-serving-xis-scenario-2-minimal.xml | 193 +++++++++++- 6 files changed, 492 insertions(+), 31 deletions(-) diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-json.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-json.xml index c2d5e356ff..7faa94db9c 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-json.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-json.xml @@ -37,6 +37,12 @@ <defaultValue value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> <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="task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id"/> <description value="Resource.id for Task 1"/> @@ -49,12 +55,6 @@ <expression value="ServiceRequest.id"/> <sourceId value="fixture-02-serve-ServiceRequest"/> </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> <test id="01-serve-Task"> <name value="Scenario 1.1 - Task"/> <description value="Serve Task resource"/> @@ -816,7 +816,7 @@ <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, and , and , 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"/> + <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"/> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-xml.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-xml.xml index 273774817f..e92653cecf 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-xml.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-1-maximal-xml.xml @@ -37,6 +37,12 @@ <defaultValue value="Bearer 6wfue3a9-aab0-4417-9b3c-e6f635892fea"/> <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="task-hg-VerwijzingHuisartsParamedicusMaximaalbericht-id"/> <description value="Resource.id for Task 1"/> @@ -49,12 +55,6 @@ <expression value="ServiceRequest.id"/> <sourceId value="fixture-02-serve-ServiceRequest"/> </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> <test id="01-serve-Task"> <name value="Scenario 1.1 - Task"/> <description value="Serve Task resource"/> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-json.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-json.xml index efb542cd3e..e5a3bd1caf 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-json.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-json.xml @@ -37,6 +37,12 @@ <defaultValue value="Bearer 9we86dg8-aab0-4417-9b3c-e6f635892fea"/> <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="task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id"/> <description value="Resource.id for Task 1"/> @@ -49,12 +55,6 @@ <expression value="ServiceRequest.id"/> <sourceId value="fixture-02-serve-ServiceRequest"/> </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> <test id="01-serve-Task"> <name value="Scenario 2.1 - Task"/> <description value="Serve Task resource"/> @@ -746,7 +746,7 @@ <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()"/> + <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> diff --git a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-xml.xml b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-xml.xml index 0a1fd4e840..3edd831a64 100644 --- a/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-xml.xml +++ b/dev/FHIR4-0-1-Test/ELZ-0-2-0-beta/Serving-XIS-CheckContent/elz-serving-xis-scenario-2-minimal-xml.xml @@ -37,6 +37,12 @@ <defaultValue value="Bearer 9we86dg8-aab0-4417-9b3c-e6f635892fea"/> <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="task-hg-VerwijzingHuisartsParamedicusMinimaalbericht-id"/> <description value="Resource.id for Task 1"/> @@ -49,12 +55,6 @@ <expression value="ServiceRequest.id"/> <sourceId value="fixture-02-serve-ServiceRequest"/> </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> <test id="01-serve-Task"> <name value="Scenario 2.1 - Task"/> <description value="Serve Task resource"/> 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 caa37914ac..04d6763079 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 @@ -8,6 +8,13 @@ <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> + <test id="01-serve-Task"> <name value="Scenario 1.1 - Task"/> <description @@ -40,9 +47,274 @@ <nts:include value="test.server.successfulRead" scope="common" resource="Composition" params="/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht" useToken="true"/> - - <nts:contentAsserts href="resources/composition-hg-VerwijzingHuisartsParamedicusMaximaalbericht.xml" - description="contains .type.coding.code = '57133-1'" discriminator="type.where(coding.where(code = '57133-1'))" nts:in-targets="CheckContent"/> </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 index 85090725a1..5caeaac1df 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 @@ -7,6 +7,13 @@ <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> <test id="01-serve-Task"> <name value="Scenario 2.1 - Task"/> @@ -40,9 +47,191 @@ <nts:include value="test.server.successfulRead" scope="common" resource="Composition" params="/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht" useToken="true"/> + + </test> + - <nts:contentAsserts href="resources/composition-hg-VerwijzingHuisartsParamedicusMinimaalbericht.xml" - description="contains .type.coding.code = '57133-1'" discriminator="type.where(coding.where(code = '57133-1'))" nts:in-targets="CheckContent"/> + <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>