From cca10f2405815aee941b1eb29bec4171d109cdca Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Fri, 2 May 2025 16:08:50 +0000 Subject: [PATCH 01/35] old hapi --- licenses/licenses.xml | 13 +++++ pom.xml | 7 +-- .../configuration/ValidatorConfiguration.java | 52 +++++++++++++++++-- 3 files changed, 61 insertions(+), 11 deletions(-) diff --git a/licenses/licenses.xml b/licenses/licenses.xml index 5543bd3f..c3cb5e76 100644 --- a/licenses/licenses.xml +++ b/licenses/licenses.xml @@ -138,6 +138,19 @@ http://creativecommons.org/publicdomain/zero/1.0 + + Indiana University Extreme! Lab Software License, vesion 1.1.1 + + Indiana University Extreme! Lab Software License, vesion 1.1.1 + Public Domain + Apache Software License, version 1.1 + + + http://www.extreme.indiana.edu/viewcvs/~checkout~/XPP3/java/LICENSE.txt + http://creativecommons.org/licenses/publicdomain + http://www.apache.org/licenses/LICENSE-1.1 + + diff --git a/pom.xml b/pom.xml index 60f12ec3..a29fc4ed 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ 21 21 UTF-8 - 7.6.1 + 5.4.2 2.24.3 2.19.0 nhsdigital @@ -64,11 +64,6 @@ hapi-fhir-validation ${fhir.version} - - ca.uhn.hapi.fhir - hapi-fhir-caching-caffeine - ${fhir.version} - ca.uhn.hapi.fhir hapi-fhir-base diff --git a/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java b/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java index 3b9e39fb..21b9ce85 100644 --- a/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java +++ b/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java @@ -4,20 +4,24 @@ import java.io.InputStream; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; import com.google.gson.Gson; import org.hl7.fhir.common.hapi.validation.support.CachingValidationSupport; import org.hl7.fhir.common.hapi.validation.support.CommonCodeSystemsTerminologyService; import org.hl7.fhir.common.hapi.validation.support.InMemoryTerminologyServerValidationSupport; -import org.hl7.fhir.common.hapi.validation.support.NpmPackageValidationSupport; +import org.hl7.fhir.common.hapi.validation.support.PrePopulatedValidationSupport; import org.hl7.fhir.common.hapi.validation.support.SnapshotGeneratingValidationSupport; import org.hl7.fhir.common.hapi.validation.support.ValidationSupportChain; import org.hl7.fhir.common.hapi.validation.validator.FhirInstanceValidator; import org.hl7.fhir.instance.model.api.IBaseResource; import org.hl7.fhir.r4.model.CanonicalType; +import org.hl7.fhir.r4.model.CodeSystem; import org.hl7.fhir.r4.model.ElementDefinition; +import org.hl7.fhir.r4.model.Resource; import org.hl7.fhir.r4.model.StructureDefinition; +import org.hl7.fhir.r4.model.ValueSet; import org.hl7.fhir.utilities.npm.NpmPackage; import ca.uhn.fhir.context.FhirContext; @@ -25,6 +29,7 @@ import ca.uhn.fhir.context.support.DefaultProfileValidationSupport; import ca.uhn.fhir.context.support.IValidationSupport; import ca.uhn.fhir.context.support.ValidationSupportContext; +import ca.uhn.fhir.parser.IParser; import ca.uhn.fhir.rest.server.exceptions.InternalErrorException; import ca.uhn.fhir.util.ClasspathUtil; import ca.uhn.fhir.validation.FhirValidator; @@ -48,6 +53,44 @@ public class ValidatorConfiguration { Logger log = LogManager.getLogger(ValidatorConfiguration.class); + private List getResourcesOfType(NpmPackage npmPackage, T resourceType) throws IOException { + IParser jsonParser = fhirContext.newJsonParser(); + + return npmPackage.listResources(resourceType.fhirType()).stream() + .map(t -> { + try { + return npmPackage.loadResource(t); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + }) + .map(jsonParser::parseResource) + .filter(resource -> resourceType.getClass().isInstance(resource)) + .map(resource -> (T) resource) + .collect(Collectors.toList()); + } + + private PrePopulatedValidationSupport createPrePopulatedValidationSupport(InputStream inputStream) throws IOException { + NpmPackage npmPackage = NpmPackage.fromPackage(inputStream); + PrePopulatedValidationSupport prePopulatedSupport = new PrePopulatedValidationSupport(fhirContext); + + for (StructureDefinition sd : getResourcesOfType(npmPackage, new StructureDefinition())) { + prePopulatedSupport.addStructureDefinition(sd); + } + + for (CodeSystem cs : getResourcesOfType(npmPackage, new CodeSystem())) { + prePopulatedSupport.addCodeSystem(cs); + } + + for (ValueSet vs : getResourcesOfType(npmPackage, new ValueSet())) { + prePopulatedSupport.addValueSet(vs); + } + + return prePopulatedSupport; + } + public ValidatorConfiguration(String _PROFILE_MANIFEST_FILE) { PROFILE_MANIFEST_FILE = _PROFILE_MANIFEST_FILE; fhirContext = FhirContext.forR4(); @@ -60,23 +103,22 @@ public ValidatorConfiguration(String _PROFILE_MANIFEST_FILE) { new SnapshotGeneratingValidationSupport(fhirContext)); SimplifierPackage[] packages = getPackages(); - NpmPackageValidationSupport npmPackageSupport = new NpmPackageValidationSupport(fhirContext); try { for (SimplifierPackage individualPackage : packages) { String packagePath = String.format("classpath:package/%s-%s.tgz", individualPackage.packageName, individualPackage.version); - npmPackageSupport.loadPackageFromClasspath(packagePath); try (InputStream is = ClasspathUtil.loadResourceAsStream(packagePath)) { NpmPackage pkg = NpmPackage.fromPackage(is); npmPackages.add(pkg); + PrePopulatedValidationSupport foo = createPrePopulatedValidationSupport(is); + supportChain.addValidationSupport(foo); } } } catch (InternalErrorException | IOException ex) { log.error(ex.getMessage(), ex); throw new RuntimeException("error loading simplifier packages", ex); } - supportChain.addValidationSupport(npmPackageSupport); generateSnapshots(supportChain); supportChain.fetchCodeSystem("http://snomed.info/sct"); @@ -183,7 +225,7 @@ public IValidationSupport.CodeValidationResult validateCodeInValueSet( String theCode, String theDisplay, IBaseResource theValueSet) { - String valueSetUrl = CommonCodeSystemsTerminologyService.getValueSetUrl(fhirContext, theValueSet); + String valueSetUrl = CommonCodeSystemsTerminologyService.getValueSetUrl(theValueSet); if ("https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationRequest-Code".equals(valueSetUrl) || "https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationDispense-Code".equals(valueSetUrl) From 0ee865828b30c8332f29e4a8f3c68a0cc3ed1df6 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Sat, 3 May 2025 12:31:33 +0000 Subject: [PATCH 02/35] move to new folder structure --- legacy/pom.xml | 308 +++ .../configuration/ValidatorConfiguration.java | 255 ++ .../controller/ValidateController.java | 117 + .../fhirvalidator/handler/HandlerStream.java | 81 + .../models/SimplifierPackage.java | 13 + .../service/CapabilityStatementApplier.java | 51 + .../service/ImplementationGuideParser.java | 43 + .../service/MessageDefinitionApplier.java | 145 + .../nhs/fhirvalidator/util/FhirUtils.java | 44 + .../util/OperationOutcomeUtils.java | 39 + .../nhs/fhirvalidator/util/ResourceUtils.java | 37 + legacy/src/main/resources/log4j2.xml | 16 + .../main/resources/nhs_digital.manifest.json | 14 + legacy/src/main/resources/package/.gitkeep | 0 ...re.stu3.currentbuild-0.0.9-pre-release.tgz | Bin 0 -> 226203 bytes ...al.medicines.r4.test-2.8.16-prerelease.tgz | Bin 0 -> 127233 bytes ...k.nhsdigital.r4.test-2.8.17-prerelease.tgz | Bin 0 -> 373290 bytes legacy/src/main/resources/primerPayload.json | 467 ++++ .../src/main/resources/uk_core.manifest.json | 6 + .../nhs/fhirvalidator/HandlerTest.java | 51 + .../Validator_nhs_digital_Test.java | 310 +++ .../fhirvalidator/Validator_uk_core_Test.java | 179 ++ .../resources/examples/invalidBundle.json | 376 +++ .../examples/invalidOperationOutcome.json | 6 + .../resources/examples/invalidParameters.json | 8 + .../resources/examples/missingHeader.json | 696 +++++ .../test/resources/examples/psu_update.json | 54 + .../test/resources/examples/searchSet.json | 711 +++++ .../resources/examples/stepFunctionEvent.json | 75 + .../test/resources/examples/validBundle.json | 749 ++++++ .../examples/validOperationOutcome.json | 12 + .../resources/examples/validParameters.json | 9 + legacy/src/test/resources/logback-test.xml | 10 + legacy/src/test/resources/results/array.json | 10 + .../src/test/resources/results/bad_json.json | 10 + .../test/resources/results/boolean_json.json | 10 + legacy/src/test/resources/results/empty.json | 10 + .../test/resources/results/invalidBundle.json | 431 +++ .../results/invalidOperationOutcome.json | 55 + .../resources/results/invalidParameters.json | 36 + .../test/resources/results/missingHeader.json | 13 + .../src/test/resources/results/null_java.json | 10 + .../src/test/resources/results/null_json.json | 10 + .../test/resources/results/number_json.json | 10 + .../resources/results/psu_nhs_digital.json | 210 ++ .../test/resources/results/psu_update.json | 24 + .../src/test/resources/results/searchSet.json | 2396 +++++++++++++++++ .../resources/results/stepFunctionResult.json | 24 + .../results/successfulOperationOutcome.json | 24 + .../test/resources/results/validBundle.json | 674 +++++ .../resources/results/validParameters.json | 10 + .../resources/results/validSimpleBundle.json | 10 + pom.xml | 1 + scripts/download_dependencies.py | 2 +- .../configuration/ValidatorConfiguration.java | 8 +- 55 files changed, 8866 insertions(+), 4 deletions(-) create mode 100644 legacy/pom.xml create mode 100644 legacy/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java create mode 100644 legacy/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java create mode 100644 legacy/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java create mode 100644 legacy/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java create mode 100644 legacy/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java create mode 100644 legacy/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java create mode 100644 legacy/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java create mode 100644 legacy/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java create mode 100644 legacy/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java create mode 100644 legacy/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java create mode 100644 legacy/src/main/resources/log4j2.xml create mode 100644 legacy/src/main/resources/nhs_digital.manifest.json create mode 100644 legacy/src/main/resources/package/.gitkeep create mode 100644 legacy/src/main/resources/package/fhir.r4.ukcore.stu3.currentbuild-0.0.9-pre-release.tgz create mode 100644 legacy/src/main/resources/package/uk.nhsdigital.medicines.r4.test-2.8.16-prerelease.tgz create mode 100644 legacy/src/main/resources/package/uk.nhsdigital.r4.test-2.8.17-prerelease.tgz create mode 100644 legacy/src/main/resources/primerPayload.json create mode 100644 legacy/src/main/resources/uk_core.manifest.json create mode 100644 legacy/src/test/java/software/nhs/fhirvalidator/HandlerTest.java create mode 100644 legacy/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java create mode 100644 legacy/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java create mode 100644 legacy/src/test/resources/examples/invalidBundle.json create mode 100644 legacy/src/test/resources/examples/invalidOperationOutcome.json create mode 100644 legacy/src/test/resources/examples/invalidParameters.json create mode 100644 legacy/src/test/resources/examples/missingHeader.json create mode 100644 legacy/src/test/resources/examples/psu_update.json create mode 100644 legacy/src/test/resources/examples/searchSet.json create mode 100644 legacy/src/test/resources/examples/stepFunctionEvent.json create mode 100644 legacy/src/test/resources/examples/validBundle.json create mode 100644 legacy/src/test/resources/examples/validOperationOutcome.json create mode 100644 legacy/src/test/resources/examples/validParameters.json create mode 100644 legacy/src/test/resources/logback-test.xml create mode 100644 legacy/src/test/resources/results/array.json create mode 100644 legacy/src/test/resources/results/bad_json.json create mode 100644 legacy/src/test/resources/results/boolean_json.json create mode 100644 legacy/src/test/resources/results/empty.json create mode 100644 legacy/src/test/resources/results/invalidBundle.json create mode 100644 legacy/src/test/resources/results/invalidOperationOutcome.json create mode 100644 legacy/src/test/resources/results/invalidParameters.json create mode 100644 legacy/src/test/resources/results/missingHeader.json create mode 100644 legacy/src/test/resources/results/null_java.json create mode 100644 legacy/src/test/resources/results/null_json.json create mode 100644 legacy/src/test/resources/results/number_json.json create mode 100644 legacy/src/test/resources/results/psu_nhs_digital.json create mode 100644 legacy/src/test/resources/results/psu_update.json create mode 100644 legacy/src/test/resources/results/searchSet.json create mode 100644 legacy/src/test/resources/results/stepFunctionResult.json create mode 100644 legacy/src/test/resources/results/successfulOperationOutcome.json create mode 100644 legacy/src/test/resources/results/validBundle.json create mode 100644 legacy/src/test/resources/results/validParameters.json create mode 100644 legacy/src/test/resources/results/validSimpleBundle.json diff --git a/legacy/pom.xml b/legacy/pom.xml new file mode 100644 index 00000000..ea219f60 --- /dev/null +++ b/legacy/pom.xml @@ -0,0 +1,308 @@ + + 4.0.0 + + software.nhs.fhirvalidator + FHIRValidator + jar + dev + FHIRValidator + + + The MIT License + https://opensource.org/license/mit + + + + 21 + 21 + UTF-8 + 5.4.2 + 2.24.3 + 2.19.0 + nhsdigital + https://sonarcloud.io + NHSDigital_eps-FHIR-validator-lambda + 1.9.24 + + + + + org.junit + junit-bom + 5.12.2 + pom + import + + + + + + io.github.hakky54 + logcaptor + 2.11.0 + test + + + + + + ca.uhn.hapi.fhir + hapi-fhir-validation-resources-r4 + ${fhir.version} + + + ca.uhn.hapi.fhir + hapi-fhir-structures-r4 + ${fhir.version} + + + ca.uhn.hapi.fhir + hapi-fhir-validation + ${fhir.version} + + + ca.uhn.hapi.fhir + hapi-fhir-base + ${fhir.version} + + + + + com.amazonaws + aws-lambda-java-core + 1.2.3 + + + com.amazonaws + aws-lambda-java-events + 3.15.0 + + + com.amazonaws + aws-lambda-java-log4j2 + 1.6.0 + + + com.google.code.gson + gson + 2.13.1 + + + org.apache.logging.log4j + log4j-api + ${log4j.version} + + + org.apache.logging.log4j + log4j-core + ${log4j.version} + + + org.apache.logging.log4j + log4j-slf4j2-impl + ${log4j.version} + + + org.apache.logging.log4j + log4j-layout-template-json + ${log4j.version} + + + software.amazon.lambda + powertools-logging + 1.20.1 + + + org.aspectj + aspectjrt + ${aspectj.version} + + + com.fasterxml.jackson.core + jackson-core + ${fasterxml.version} + + + com.fasterxml.jackson.core + jackson-databind + ${fasterxml.version} + + + com.fasterxml.jackson.core + jackson-annotations + ${fasterxml.version} + + + + org.junit.jupiter + junit-jupiter + test + + + org.junit.jupiter + junit-jupiter-api + test + + + org.mockito + mockito-core + 5.17.0 + test + + + + + + + + src/main/resources + + log4j2.xml + package/* + *.tgz + primerPayload.json + nhs_digital.manifest.json + uk_core.manifest.json + + + + + + se.ayoy.maven-plugins + ayoy-license-verifier-maven-plugin + 1.2.0 + + + validate + + verify + + + + + ${project.basedir}/licenses/licenses.xml + + ${project.basedir}/licenses/allowedMissingLicense.xml + true + true + true + + + + maven-dependency-plugin + 3.8.1 + + + maven-compiler-plugin + 3.14.0 + + + maven-surefire-plugin + 3.5.3 + + + dev.aspectj + aspectj-maven-plugin + 1.14.1 + + + org.aspectj + aspectjtools + ${aspectj.version} + + + + 21 + true + + + ${project.build.directory}/classes + + + + software.amazon.lambda + powertools-logging + + + + + + + compile + + + + + + + org.jacoco + jacoco-maven-plugin + 0.8.13 + + + + prepare-agent + + + + + report + test + + report + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.6.0 + + false + + + + package + + shade + + + + + + + META-INF/TE-050AC.SF + META-INF/TE-050AC.RSA + + + + + + + + com.github.edwgiz + maven-shade-plugin.log4j2-cachefile-transformer + 2.15 + + + + + + + diff --git a/legacy/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java b/legacy/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java new file mode 100644 index 00000000..9853edad --- /dev/null +++ b/legacy/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java @@ -0,0 +1,255 @@ +package software.nhs.fhirvalidator.configuration; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import com.google.gson.Gson; + +import org.hl7.fhir.common.hapi.validation.support.CachingValidationSupport; +import org.hl7.fhir.common.hapi.validation.support.CommonCodeSystemsTerminologyService; +import org.hl7.fhir.common.hapi.validation.support.InMemoryTerminologyServerValidationSupport; +import org.hl7.fhir.common.hapi.validation.support.PrePopulatedValidationSupport; +import org.hl7.fhir.common.hapi.validation.support.SnapshotGeneratingValidationSupport; +import org.hl7.fhir.common.hapi.validation.support.ValidationSupportChain; +import org.hl7.fhir.common.hapi.validation.validator.FhirInstanceValidator; +import org.hl7.fhir.instance.model.api.IBaseResource; +import org.hl7.fhir.r4.model.CanonicalType; +import org.hl7.fhir.r4.model.CodeSystem; +import org.hl7.fhir.r4.model.ElementDefinition; +import org.hl7.fhir.r4.model.Resource; +import org.hl7.fhir.r4.model.StructureDefinition; +import org.hl7.fhir.r4.model.ValueSet; +import org.hl7.fhir.utilities.npm.NpmPackage; + +import ca.uhn.fhir.context.FhirContext; +import ca.uhn.fhir.context.support.ConceptValidationOptions; +import ca.uhn.fhir.context.support.DefaultProfileValidationSupport; +import ca.uhn.fhir.context.support.IValidationSupport; +import ca.uhn.fhir.context.support.ValidationSupportContext; +import ca.uhn.fhir.parser.IParser; +import ca.uhn.fhir.rest.server.exceptions.InternalErrorException; +import ca.uhn.fhir.util.ClasspathUtil; +import ca.uhn.fhir.validation.FhirValidator; +import software.nhs.fhirvalidator.models.SimplifierPackage; +import software.nhs.fhirvalidator.util.ResourceUtils; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +/** + * This class is a wrapper around the HAPI FhirValidator. + * The FhirValidator is built using default settings and the available + * implementation guides are loaded into it. + */ + +public class ValidatorConfiguration { + private String PROFILE_MANIFEST_FILE; + public final FhirValidator validator; + public final FhirContext fhirContext; + public final List npmPackages = new ArrayList<>(); + + Logger log = LogManager.getLogger(ValidatorConfiguration.class); + + private List getResourcesOfType(NpmPackage npmPackage, T resourceType) throws IOException { + IParser jsonParser = fhirContext.newJsonParser(); + + return npmPackage.listResources(resourceType.fhirType()).stream() + .map(t -> { + try { + return npmPackage.loadResource(t); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + }) + .map(jsonParser::parseResource) + .filter(resource -> resourceType.getClass().isInstance(resource)) + .map(resource -> (T) resource) + .collect(Collectors.toList()); + } + + private PrePopulatedValidationSupport createPrePopulatedValidationSupport(InputStream inputStream) throws IOException { + NpmPackage npmPackage = NpmPackage.fromPackage(inputStream); + PrePopulatedValidationSupport prePopulatedSupport = new PrePopulatedValidationSupport(fhirContext); + + for (StructureDefinition sd : getResourcesOfType(npmPackage, new StructureDefinition())) { + prePopulatedSupport.addStructureDefinition(sd); + } + + for (CodeSystem cs : getResourcesOfType(npmPackage, new CodeSystem())) { + prePopulatedSupport.addCodeSystem(cs); + } + + for (ValueSet vs : getResourcesOfType(npmPackage, new ValueSet())) { + prePopulatedSupport.addValueSet(vs); + } + + return prePopulatedSupport; + } + + public ValidatorConfiguration(String _PROFILE_MANIFEST_FILE) { + PROFILE_MANIFEST_FILE = _PROFILE_MANIFEST_FILE; + fhirContext = FhirContext.forR4(); + + // Create a chain that will hold our modules + ValidationSupportChain supportChain = new ValidationSupportChain( + new DefaultProfileValidationSupport(fhirContext), + new CommonCodeSystemsTerminologyService(fhirContext), + terminologyValidationSupport(fhirContext), + new SnapshotGeneratingValidationSupport(fhirContext)); + + SimplifierPackage[] packages = getPackages(); + + try { + for (SimplifierPackage individualPackage : packages) { + String packagePath = String.format("%s-%s.tgz", individualPackage.packageName, + individualPackage.version); + try (InputStream is = ClasspathUtil.loadResourceAsStream(packagePath)) { + PrePopulatedValidationSupport foo = createPrePopulatedValidationSupport(is); + supportChain.addValidationSupport(foo); + } + try (InputStream is = ClasspathUtil.loadResourceAsStream(packagePath)) { + NpmPackage pkg = NpmPackage.fromPackage(is); + npmPackages.add(pkg); + } + } + } catch (InternalErrorException | IOException ex) { + log.error(ex.getMessage(), ex); + throw new RuntimeException("error loading simplifier packages", ex); + } + generateSnapshots(supportChain); + supportChain.fetchCodeSystem("http://snomed.info/sct"); + + CachingValidationSupport validationSupport = new CachingValidationSupport(supportChain); + + // Create a validator using the FhirInstanceValidator module. + FhirInstanceValidator validatorModule = new FhirInstanceValidator(validationSupport); + validator = fhirContext.newValidator().registerValidatorModule(validatorModule); + } + + private void generateSnapshots(IValidationSupport supportChain) { + List structureDefinitions = supportChain.fetchAllStructureDefinitions(); + if (structureDefinitions == null) { + return; + } + + ValidationSupportContext context = new ValidationSupportContext(supportChain); + + structureDefinitions.stream() + .filter(this::shouldGenerateSnapshot) + .forEach(it -> { + try { + circularReferenceCheck(it, supportChain); + } catch (Exception e) { + log.error(String.format("Failed to generate snapshot for %s", it), e); + } + }); + + structureDefinitions.stream() + .filter(this::shouldGenerateSnapshot) + .forEach(it -> { + try { + supportChain.generateSnapshot(context, it, it.getUrl(), "https://fhir.nhs.uk/R4", it.getName()); + } catch (Exception e) { + log.error(String.format("Failed to generate snapshot for %s", it), e); + } + }); + } + + private boolean shouldGenerateSnapshot(StructureDefinition structureDefinition) { + return !structureDefinition.hasSnapshot() + && structureDefinition.getDerivation() == StructureDefinition.TypeDerivationRule.CONSTRAINT; + } + + private StructureDefinition circularReferenceCheck(StructureDefinition structureDefinition, + IValidationSupport supportChain) { + if (structureDefinition.hasSnapshot()) { + log.error(String.format("%s has snapshot!!", structureDefinition.getUrl())); + } + + for (ElementDefinition element : structureDefinition.getDifferential().getElement()) { + if ((element.getId().endsWith(".partOf") || + element.getId().endsWith(".basedOn") || + element.getId().endsWith(".replaces") || + element.getId().contains("Condition.stage.assessment") || + element.getId().contains("Observation.derivedFrom") || + element.getId().contains("Observation.hasMember") || + element.getId().contains("CareTeam.encounter") || + element.getId().contains("CareTeam.reasonReference") || + element.getId().contains("ServiceRequest.encounter") || + element.getId().contains("ServiceRequest.reasonReference") || + element.getId().contains("EpisodeOfCare.diagnosis.condition") || + element.getId().contains("Encounter.diagnosis.condition") || + element.getId().contains("Encounter.reasonReference") || + element.getId().contains("Encounter.appointment")) && element.hasType()) { + + log.warn(String.format("%s has circular references (%s)", structureDefinition.getUrl(), + element.getId())); + + for (ElementDefinition.TypeRefComponent typeRef : element.getType()) { + if (typeRef.hasTargetProfile()) { + for (CanonicalType targetProfile : typeRef.getTargetProfile()) { + typeRef.setTargetProfile((List) getBase(targetProfile, supportChain)); + } + } + } + } + } + return structureDefinition; + } + + private CanonicalType getBase(CanonicalType profile, IValidationSupport supportChain) { + StructureDefinition structureDefinition = (StructureDefinition) supportChain + .fetchStructureDefinition(profile.toString()); + + if (structureDefinition != null && structureDefinition.hasBaseDefinition()) { + String baseProfile = structureDefinition.getBaseDefinition(); + CanonicalType canonicalBaseProfile = new CanonicalType(baseProfile); + if (baseProfile.contains(".uk")) { + canonicalBaseProfile = getBase(canonicalBaseProfile, supportChain); + } + return canonicalBaseProfile; + } + return null; + } + + private InMemoryTerminologyServerValidationSupport terminologyValidationSupport(FhirContext fhirContext) { + return new InMemoryTerminologyServerValidationSupport(fhirContext) { + @Override + public IValidationSupport.CodeValidationResult validateCodeInValueSet( + ValidationSupportContext theValidationSupportContext, + ConceptValidationOptions theOptions, + String theCodeSystem, + String theCode, + String theDisplay, + IBaseResource theValueSet) { + String valueSetUrl = CommonCodeSystemsTerminologyService.getValueSetUrl(theValueSet); + + if ("https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationRequest-Code".equals(valueSetUrl) + || "https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationDispense-Code".equals(valueSetUrl) + || "https://fhir.hl7.org.uk/ValueSet/UKCore-MedicationCode".equals(valueSetUrl)) { + return new IValidationSupport.CodeValidationResult() + .setSeverity(IValidationSupport.IssueSeverity.WARNING) + .setMessage("Unable to validate medication codes"); + } + + return super.validateCodeInValueSet( + theValidationSupportContext, + theOptions, + theCodeSystem, + theCode, + theDisplay, + theValueSet); + } + }; + } + + private SimplifierPackage[] getPackages() { + String manifestContent = ResourceUtils.getResourceContent(this.PROFILE_MANIFEST_FILE); + return new Gson().fromJson(manifestContent, SimplifierPackage[].class); + } +} diff --git a/legacy/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java b/legacy/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java new file mode 100644 index 00000000..d53bc995 --- /dev/null +++ b/legacy/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java @@ -0,0 +1,117 @@ +package software.nhs.fhirvalidator.controller; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +import com.google.gson.JsonSyntaxException; + +import org.hl7.fhir.instance.model.api.IBaseResource; +import org.hl7.fhir.r4.model.Bundle; +import org.hl7.fhir.r4.model.OperationOutcome; +import org.hl7.fhir.r4.model.ResourceType; +import org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent; + +import ca.uhn.fhir.context.FhirContext; +import ca.uhn.fhir.parser.DataFormatException; +import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException; +import ca.uhn.fhir.validation.FhirValidator; +import software.nhs.fhirvalidator.configuration.ValidatorConfiguration; +import software.nhs.fhirvalidator.service.CapabilityStatementApplier; +import software.nhs.fhirvalidator.service.ImplementationGuideParser; +import software.nhs.fhirvalidator.service.MessageDefinitionApplier; +import software.nhs.fhirvalidator.util.OperationOutcomeUtils; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +/** + * This class is a wrapper around the HAPI FhirValidator. + * The FhirValidator is built using default settings and the available + * implementation guides are loaded into it. + */ + +public class ValidateController { + private ValidatorConfiguration validatorConfiguration; + private FhirValidator validator; + private FhirContext fhirContext; + private ImplementationGuideParser implementationGuideParser; + private CapabilityStatementApplier capabilityStatementApplier; + private MessageDefinitionApplier messageDefinitionApplier; + + Logger log = LogManager.getLogger(ValidateController.class); + + public ValidateController(String PROFILE_MANIFEST_FILE) { + validatorConfiguration = new ValidatorConfiguration(PROFILE_MANIFEST_FILE); + validator = validatorConfiguration.validator; + fhirContext = validatorConfiguration.fhirContext; + implementationGuideParser = new ImplementationGuideParser( + fhirContext); + capabilityStatementApplier = new CapabilityStatementApplier( + implementationGuideParser, + validatorConfiguration.npmPackages); + messageDefinitionApplier = new MessageDefinitionApplier( + implementationGuideParser, validatorConfiguration.npmPackages); + } + public String validate(String input) { + OperationOutcome result = parseAndValidateResource(input); + return fhirContext.newJsonParser().encodeResourceToString(result); + } + + public OperationOutcome parseAndValidateResource(String input) { + + try { + IBaseResource inputResource = fhirContext.newJsonParser().parseResource(input); + List resources = getResourcesToValidate(inputResource); + + List operationOutcomeList = resources.stream() + .map(this::validateResource) + .collect(Collectors.toList()); + + List operationOutcomeIssues = operationOutcomeList.stream() + .filter(Objects::nonNull) + .flatMap(operationOutcome -> operationOutcome.getIssue().stream()) + .collect(Collectors.toList()); + + return OperationOutcomeUtils.createOperationOutcome(operationOutcomeIssues); + } catch (JsonSyntaxException | NullPointerException | IllegalArgumentException | InvalidRequestException + | DataFormatException e) { + log.error(e.toString()); + return OperationOutcomeUtils + .createOperationOutcome(e.getMessage() != null ? e.getMessage() : "Invalid JSON", null); + } + } + + private OperationOutcome validateResource(IBaseResource resource) { + capabilityStatementApplier.applyCapabilityStatementProfiles(resource); + OperationOutcome messageDefinitionErrors = messageDefinitionApplier.applyMessageDefinition(resource); + if (messageDefinitionErrors != null) { + return messageDefinitionErrors; + } + return (OperationOutcome) validator.validateWithResult(resource).toOperationOutcome(); + } + + private List getResourcesToValidate(IBaseResource inputResource) { + if (inputResource == null) { + return new ArrayList<>(); + } + + if (inputResource instanceof Bundle _inputResource && (_inputResource.getType() == Bundle.BundleType.SEARCHSET)) { + List bundleResources = new ArrayList<>(); + for (Bundle.BundleEntryComponent entry : ((Bundle) inputResource).getEntry()) { + if (entry.getResource().fhirType().equals("Bundle")) { + bundleResources.add(entry.getResource()); + } + } + + if (bundleResources.stream() + .allMatch(resource -> ((Bundle) resource).getResourceType() == ResourceType.Bundle)) { + return bundleResources; + } + } + + return Arrays.asList(inputResource); + } +} diff --git a/legacy/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java b/legacy/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java new file mode 100644 index 00000000..3fe331c5 --- /dev/null +++ b/legacy/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java @@ -0,0 +1,81 @@ +package software.nhs.fhirvalidator.handler; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.PrintWriter; + +import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.RequestStreamHandler; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import software.amazon.lambda.powertools.logging.Logging; +import software.amazon.lambda.powertools.logging.LoggingUtils; +import software.nhs.fhirvalidator.controller.ValidateController; +import software.nhs.fhirvalidator.util.ResourceUtils; + +public class HandlerStream implements RequestStreamHandler { + + private final ValidateController validateController; + Logger log = LogManager.getLogger(HandlerStream.class); + + public HandlerStream() { + log.info("Creating the Validator instance for the first time..."); + String manifest_file = System.getenv("PROFILE_MANIFEST_FILE"); + if (manifest_file == null) { + manifest_file = "uk_core.manifest.json"; + } + log.info(String.format("Using manifest file : %s", manifest_file)); + + validateController = new ValidateController(manifest_file); + + log.info("Validating once to force the loading of all the validator related classes"); + String primerPayload = ResourceUtils.getResourceContent("primerPayload.json"); + validateController.validate(primerPayload); + + log.info("Validator is ready"); + } + + @Logging(clearState = true) + @Override + public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException { + ByteArrayOutputStream result = new ByteArrayOutputStream(); + byte[] buffer = new byte[1024]; + try { + for (int length; (length = inputStream.read(buffer)) != -1;) { + result.write(buffer, 0, length); + } + String rawInput = result.toString(); + log.info(rawInput); + JsonObject jsonPayload = JsonParser.parseString(rawInput).getAsJsonObject(); + JsonObject headers = jsonPayload.get("headers").getAsJsonObject(); + String xRequestID = headers.get("x-request-id") == null ? "" : headers.get("x-request-id").getAsString(); + LoggingUtils.appendKey("x-request-id", xRequestID); + String nhsdCorrelationID = headers.get("nhsd-correlation-id") == null ? "" : headers.get("nhsd-correlation-id").getAsString(); + LoggingUtils.appendKey("nhsd-correlation-id", nhsdCorrelationID); + String nhsdRequestID = headers.get("nhsd-request-id") == null ? "" : headers.get("nhsd-request-id").getAsString(); + LoggingUtils.appendKey("nhsd-request-id", nhsdRequestID); + String xCorrelationID = headers.get("x-correlation-id") == null ? "" : headers.get("x-correlation-id").getAsString(); + LoggingUtils.appendKey("x-correlation-id", xCorrelationID); + String apigwRequestID = headers.get("apigw-request-id") == null ? "" : headers.get("apigw-request-id").getAsString(); + LoggingUtils.appendKey("apigw-request-id", apigwRequestID); + + log.info("Calling validate function"); + String validatorResult = validateController.validate(jsonPayload.get("body").toString()); + log.info(validatorResult); + + try (PrintWriter writer = new PrintWriter(outputStream)) { + writer.print(validatorResult); + } + + } catch (IOException ex) { + log.error(ex.getMessage(), ex); + throw new RuntimeException("error in handleRequest", ex); + } + } +} diff --git a/legacy/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java b/legacy/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java new file mode 100644 index 00000000..f2fc9f62 --- /dev/null +++ b/legacy/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java @@ -0,0 +1,13 @@ +package software.nhs.fhirvalidator.models; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class SimplifierPackage { + @SerializedName("packageName") + @Expose + public String packageName; + @SerializedName("version") + @Expose + public String version; +} diff --git a/legacy/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java b/legacy/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java new file mode 100644 index 00000000..2859ae11 --- /dev/null +++ b/legacy/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java @@ -0,0 +1,51 @@ +package software.nhs.fhirvalidator.service; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.hl7.fhir.instance.model.api.IBaseResource; +import org.hl7.fhir.r4.model.CapabilityStatement; +import org.hl7.fhir.utilities.npm.NpmPackage; + +import software.nhs.fhirvalidator.util.FhirUtils; + +import java.io.IOException; +import java.util.List; +import java.util.stream.Collectors; + +public class CapabilityStatementApplier { + private final List restResources; + + Logger log = LogManager.getLogger(CapabilityStatementApplier.class); + + public CapabilityStatementApplier( + ImplementationGuideParser implementationGuideParser, + List npmPackages) { + + this.restResources = (npmPackages.stream() + .flatMap(packageItem -> { + try { + return implementationGuideParser + .getResourcesOfType(packageItem, CapabilityStatement.class).stream(); + } catch (IOException ex) { + log.error(ex.getMessage(), ex); + throw new RuntimeException("error in handleRequest", ex); + } + }) + .flatMap(capabilityStatement -> capabilityStatement.getRest().stream()) + .flatMap(rest -> rest.getResource().stream()) + .collect(Collectors.toList())); + } + + public void applyCapabilityStatementProfiles(IBaseResource resource) { + restResources.forEach(restResource -> applyRestResource(resource, restResource)); + } + + private void applyRestResource( + IBaseResource resource, + CapabilityStatement.CapabilityStatementRestResourceComponent restResource) { + List matchingResources = FhirUtils.getResourcesOfType(resource, restResource.getType()); + if (restResource.hasProfile()) { + FhirUtils.applyProfile(matchingResources, restResource.getProfileElement()); + } + } +} diff --git a/legacy/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java b/legacy/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java new file mode 100644 index 00000000..cd678d87 --- /dev/null +++ b/legacy/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java @@ -0,0 +1,43 @@ +package software.nhs.fhirvalidator.service; + +import ca.uhn.fhir.context.FhirContext; +import ca.uhn.fhir.parser.IParser; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.hl7.fhir.r4.model.*; +import org.hl7.fhir.utilities.npm.NpmPackage; + +import java.io.IOException; +import java.util.List; +import java.util.stream.Collectors; + +public class ImplementationGuideParser { + + private final FhirContext fhirContext; + + Logger log = LogManager.getLogger(ImplementationGuideParser.class); + + public ImplementationGuideParser(FhirContext fhirContext) { + this.fhirContext = fhirContext; + } + + public List getResourcesOfType(NpmPackage npmPackage, Class resourceType) + throws IOException { + IParser jsonParser = fhirContext.newJsonParser(); + return npmPackage.listResources(resourceType.getSimpleName()) + .stream() + .map(t -> { + try { + return npmPackage.loadResource(t); + } catch (IOException ex) { + log.error(ex.getMessage(), ex); + throw new RuntimeException("error in getResourcesOfTypes", ex); + } + }) + .map(jsonParser::parseResource) + .filter(resourceType::isInstance) + .map(resourceType::cast) + .collect(Collectors.toList()); + } +} diff --git a/legacy/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java b/legacy/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java new file mode 100644 index 00000000..29123bd6 --- /dev/null +++ b/legacy/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java @@ -0,0 +1,145 @@ +package software.nhs.fhirvalidator.service; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.hl7.fhir.instance.model.api.IBaseResource; +import org.hl7.fhir.r4.model.*; +import org.hl7.fhir.utilities.npm.NpmPackage; + +import software.nhs.fhirvalidator.util.FhirUtils; +import software.nhs.fhirvalidator.util.OperationOutcomeUtils; + +import java.io.IOException; +import java.util.List; +import java.util.stream.Collectors; + +public class MessageDefinitionApplier { + + private final List messageDefinitions; + Logger log = LogManager.getLogger(MessageDefinitionApplier.class); + + public MessageDefinitionApplier( + ImplementationGuideParser implementationGuideParser, + List npmPackages) { + this.messageDefinitions = npmPackages.stream() + .flatMap(packageItem -> { + try { + return implementationGuideParser.getResourcesOfType(packageItem, MessageDefinition.class) + .stream(); + } catch (IOException ex) { + log.error(ex.getMessage(), ex); + throw new RuntimeException("error in MessageDefinitionApplier", ex); + } + }) + .collect(Collectors.toList()); + } + + public OperationOutcome applyMessageDefinition(IBaseResource resource) { + if (!(resource instanceof Bundle _resource) || (_resource.getType() != Bundle.BundleType.MESSAGE)) { + return null; + } + + MessageHeader messageHeader = findMessageHeader((Bundle) resource); + if (messageHeader == null) { + return OperationOutcomeUtils.createOperationOutcome("No MessageHeader found.", "Bundle.entry"); + } + + Coding messageType = messageHeader.getEventCoding(); + String messageDefinitionProfile = messageHeader.getDefinition(); + MessageDefinition messageDefinition = findMessageDefinition(messageType, messageDefinitionProfile); + + if (messageDefinition == null) { + return OperationOutcomeUtils.createOperationOutcome( + "Unsupported message type " + messageType.getSystem() + "#" + messageType.getCode() + ".", + "MessageHeader.eventCoding"); + } + + return applyMessageDefinition((Bundle) resource, messageDefinition); + } + + private MessageHeader findMessageHeader(Bundle bundle) { + return bundle.getEntry() + .stream() + .map(Bundle.BundleEntryComponent::getResource) + .filter(MessageHeader.class::isInstance) + .map(MessageHeader.class::cast) + .findFirst() + .orElse(null); + } + + private MessageDefinition findMessageDefinition(Coding messageType, String messageDefinitionProfile) { + if (messageDefinitionProfile != null) { + return messageDefinitions.stream() + .filter(def -> messageType.getSystem().equals(def.getEventCoding().getSystem()) && + messageType.getCode().equals(def.getEventCoding().getCode()) && + messageDefinitionProfile.equals(def.getUrl())) + .findFirst() + .orElse(null); + } else { + return messageDefinitions.stream() + .filter(def -> messageType.getSystem().equals(def.getEventCoding().getSystem()) && + messageType.getCode().equals(def.getEventCoding().getCode())) + .findFirst() + .orElse(null); + } + } + + private OperationOutcome applyMessageDefinition(Bundle resource, MessageDefinition messageDefinition) { + List issues = messageDefinition.getFocus() + .stream() + .map(focus -> applyMessageDefinitionFocus(resource, focus)) + .filter(OperationOutcome.OperationOutcomeIssueComponent.class::isInstance) + .map(OperationOutcome.OperationOutcomeIssueComponent.class::cast) + .collect(Collectors.toList()); + + if (issues.isEmpty()) { + return null; + } + + return OperationOutcomeUtils.createOperationOutcome(issues); + } + + private OperationOutcome.OperationOutcomeIssueComponent applyMessageDefinitionFocus(Bundle bundle, + MessageDefinition.MessageDefinitionFocusComponent focus) { + List matchingResources = FhirUtils.getResourcesOfType(bundle, focus.getCode()); + applyMessageDefinitionFocusProfile(focus, matchingResources); + return applyMessageDefinitionFocusMinMax(focus, matchingResources.size()); + } + + private void applyMessageDefinitionFocusProfile(MessageDefinition.MessageDefinitionFocusComponent focus, + List matchingResources) { + if (focus.hasProfile()) { + FhirUtils.applyProfile(matchingResources, focus.getProfileElement()); + } + } + + private OperationOutcome.OperationOutcomeIssueComponent applyMessageDefinitionFocusMinMax( + MessageDefinition.MessageDefinitionFocusComponent focus, int resourceCount) { + String resourceType = focus.getCode(); + + if (focus.hasMin()) { + int min = focus.getMin(); + if (resourceCount < min) { + return OperationOutcomeUtils.createOperationOutcomeIssue( + "Bundle contains too few resources of type " + resourceType + ". Expected at least " + min + + ".", + "Bundle.entry"); + } + } + + if (focus.hasMax()) { + String maxStr = focus.getMax(); + if (!maxStr.equals("*")) { + int max = Integer.parseInt(maxStr); + if (resourceCount > max) { + return OperationOutcomeUtils.createOperationOutcomeIssue( + "Bundle contains too many resources of type " + resourceType + ". Expected at most " + max + + ".", + "Bundle.entry"); + } + } + } + + return null; + } +} diff --git a/legacy/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java b/legacy/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java new file mode 100644 index 00000000..d27ca8aa --- /dev/null +++ b/legacy/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java @@ -0,0 +1,44 @@ +package software.nhs.fhirvalidator.util; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import org.hl7.fhir.instance.model.api.IBaseResource; +import org.hl7.fhir.instance.model.api.IPrimitiveType; +import org.hl7.fhir.r4.model.Bundle; + +public final class FhirUtils { + static Logger log = LogManager.getLogger(FhirUtils.class); + + private FhirUtils() { + throw new IllegalStateException("Utility class"); + } + + public static List getResourcesOfType(IBaseResource resource, String resourceType) { + List matchingResources = new ArrayList<>(); + + if (resource.fhirType().equals(resourceType)) { + matchingResources.add(resource); + } + + if (resource instanceof Bundle) { + Bundle bundle = (Bundle) resource; + bundle.getEntry().stream() + .map(Bundle.BundleEntryComponent::getResource) + .filter(entryResource -> entryResource.fhirType().equals(resourceType)) + .forEach(matchingResources::add); + } + + return matchingResources; + } + + public static void applyProfile(List resources, IPrimitiveType profile) { + resources.forEach(resource -> { + resource.getMeta().getProfile().clear(); + resource.getMeta().addProfile(profile.getValue()); + }); + } +} diff --git a/legacy/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java b/legacy/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java new file mode 100644 index 00000000..bc8726d9 --- /dev/null +++ b/legacy/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java @@ -0,0 +1,39 @@ +package software.nhs.fhirvalidator.util; + +import java.util.Collections; +import java.util.List; + +import org.hl7.fhir.r4.model.OperationOutcome; + +public class OperationOutcomeUtils { + + private OperationOutcomeUtils() { + throw new IllegalStateException("Utility class"); + } + + public static OperationOutcome createOperationOutcome(String diagnostics, String expression) { + OperationOutcome.OperationOutcomeIssueComponent issue = createOperationOutcomeIssue(diagnostics, expression); + List issues = Collections.singletonList(issue); + return createOperationOutcome(issues); + } + + public static OperationOutcome createOperationOutcome( + List issues) { + OperationOutcome operationOutcome = new OperationOutcome(); + issues.forEach(operationOutcome::addIssue); + return operationOutcome; + } + + public static OperationOutcome.OperationOutcomeIssueComponent createOperationOutcomeIssue(String diagnostics, + String expression) { + OperationOutcome.OperationOutcomeIssueComponent issue = new OperationOutcome.OperationOutcomeIssueComponent(); + issue.setSeverity(OperationOutcome.IssueSeverity.ERROR); + issue.setCode(OperationOutcome.IssueType.PROCESSING); + issue.setDiagnostics(diagnostics); + if (expression != null) { + issue.addExpression(expression); + } + return issue; + } + +} diff --git a/legacy/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java b/legacy/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java new file mode 100644 index 00000000..fad95105 --- /dev/null +++ b/legacy/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java @@ -0,0 +1,37 @@ +package software.nhs.fhirvalidator.util; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public class ResourceUtils { + static Logger log = LogManager.getLogger(ResourceUtils.class); + + private ResourceUtils() { + throw new IllegalStateException("Utility class"); + } + + public static String getResourceContent(String resource) { + ClassLoader loader = Thread.currentThread().getContextClassLoader(); + try { + ByteArrayOutputStream result; + try (InputStream inputStream = loader.getResourceAsStream(resource)) { + result = new ByteArrayOutputStream(); + byte[] buffer = new byte[1024]; + + for (int length; (length = inputStream.read(buffer)) != -1;) { + result.write(buffer, 0, length); + } + } + return result.toString("UTF-8"); + + } catch (IOException ex) { + log.error(ex.getMessage(), ex); + throw new RuntimeException("error in getResourceContent", ex); + } + } + +} diff --git a/legacy/src/main/resources/log4j2.xml b/legacy/src/main/resources/log4j2.xml new file mode 100644 index 00000000..0cc0953f --- /dev/null +++ b/legacy/src/main/resources/log4j2.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/legacy/src/main/resources/nhs_digital.manifest.json b/legacy/src/main/resources/nhs_digital.manifest.json new file mode 100644 index 00000000..a26b3c6a --- /dev/null +++ b/legacy/src/main/resources/nhs_digital.manifest.json @@ -0,0 +1,14 @@ +[ + { + "packageName": "fhir.r4.ukcore.stu3.currentbuild", + "version": "0.0.9-pre-release" + }, + { + "packageName": "uk.nhsdigital.r4.test", + "version": "2.8.17-prerelease" + }, + { + "packageName": "uk.nhsdigital.medicines.r4.test", + "version": "2.8.16-prerelease" + } +] diff --git a/legacy/src/main/resources/package/.gitkeep b/legacy/src/main/resources/package/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/legacy/src/main/resources/package/fhir.r4.ukcore.stu3.currentbuild-0.0.9-pre-release.tgz b/legacy/src/main/resources/package/fhir.r4.ukcore.stu3.currentbuild-0.0.9-pre-release.tgz new file mode 100644 index 0000000000000000000000000000000000000000..dfa8424b8402bad7b9baa30e3dc2f8383ab559da GIT binary patch literal 226203 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 OL^khh->&oXNDoq-Zg5y9Z(lr&SpCU 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 UfhJ85AH8zkF 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

    Jqi-EZy)C|00q! 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 literal 0 HcmV?d00001 diff --git a/legacy/src/main/resources/package/uk.nhsdigital.medicines.r4.test-2.8.16-prerelease.tgz b/legacy/src/main/resources/package/uk.nhsdigital.medicines.r4.test-2.8.16-prerelease.tgz new file mode 100644 index 0000000000000000000000000000000000000000..9409b9c4a9fabe92e7d2203ed5f2fad7c778057a GIT binary patch literal 127233 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®+nCS?9i^ZSn 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¥w8~#>Fw^r!Ts?(-HA)pH=|x4(vCxM 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%0DoPEITW~(IR-~J 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�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 C*4h97 literal 0 HcmV?d00001 diff --git a/legacy/src/main/resources/package/uk.nhsdigital.r4.test-2.8.17-prerelease.tgz b/legacy/src/main/resources/package/uk.nhsdigital.r4.test-2.8.17-prerelease.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a9ce96475e63b85ab4910b64df57c30800497344 GIT binary patch literal 373290 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 |Jm;7;1>i0Q=Z;# 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%0AIsM}#BIwr9JvH3vdx{CO;gk|xZmLtOA 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 z`*crsvlakE$d4Ill`j&}e6000000000000000000000Q@&k S0R#|0fB^v4D!x|$I41zvkqg2A literal 0 HcmV?d00001 diff --git a/legacy/src/main/resources/primerPayload.json b/legacy/src/main/resources/primerPayload.json new file mode 100644 index 00000000..648561e3 --- /dev/null +++ b/legacy/src/main/resources/primerPayload.json @@ -0,0 +1,467 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "meta": { + "lastUpdated": "2022-10-21T13:47:00+00:00" + }, + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "5ca1d5d1-fe4f-4c14-8584-7089d2000219" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "c59b0ad3-b6c9-49f1-a50a-0595b97c503d" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "315A44-A83008-4C9BB1" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39113611000001102", + "display": "Salbutamol 100micrograms/dose inhaler CFC free" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "c59b0ad3-b6c9-49f1-a50a-0595b97c503d" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "315A44-A83008-4C9BB1" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 times a day - Inhalation", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "18679011000001101", + "display": "Inhalation" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "quantity": { + "value": 200, + "unit": "dose", + "system": "http://snomed.info/sct", + "code": "3317411000001100" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + } + ] +} diff --git a/legacy/src/main/resources/uk_core.manifest.json b/legacy/src/main/resources/uk_core.manifest.json new file mode 100644 index 00000000..99ef7657 --- /dev/null +++ b/legacy/src/main/resources/uk_core.manifest.json @@ -0,0 +1,6 @@ +[ + { + "packageName": "fhir.r4.ukcore.stu3.currentbuild", + "version": "0.0.9-pre-release" + } +] diff --git a/legacy/src/test/java/software/nhs/fhirvalidator/HandlerTest.java b/legacy/src/test/java/software/nhs/fhirvalidator/HandlerTest.java new file mode 100644 index 00000000..c2dc6fd6 --- /dev/null +++ b/legacy/src/test/java/software/nhs/fhirvalidator/HandlerTest.java @@ -0,0 +1,51 @@ +package software.nhs.fhirvalidator; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +import nl.altindag.log.LogCaptor; +import software.nhs.fhirvalidator.handler.HandlerStream; +import software.nhs.fhirvalidator.util.ResourceUtils; + +import com.amazonaws.services.lambda.runtime.Context; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +import org.junit.jupiter.api.Test; +import static org.mockito.Mockito.mock; + +class HandlerTest { + + @Test + void logStartupMessage() { + LogCaptor logCaptor = LogCaptor.forClass(HandlerStream.class); + + new HandlerStream(); + + assertTrue(logCaptor.getInfoLogs().contains("Validator is ready")); + } + + @Test + void handlerCanProcessEvent() throws IOException { + String stepFunctionEvent = ResourceUtils.getResourceContent("examples/stepFunctionEvent.json"); + HandlerStream handlerStream = new HandlerStream(); + + InputStream inputStream = new ByteArrayInputStream(stepFunctionEvent.getBytes()); + OutputStream outputStream = new ByteArrayOutputStream(); + + handlerStream.handleRequest(inputStream, outputStream, mock(Context.class)); + + JsonObject actualJsonResult = JsonParser.parseString(outputStream.toString()).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/stepFunctionResult.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } +} diff --git a/legacy/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java b/legacy/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java new file mode 100644 index 00000000..34bff1cc --- /dev/null +++ b/legacy/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java @@ -0,0 +1,310 @@ +package software.nhs.fhirvalidator; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; + +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +import ca.uhn.fhir.context.FhirContext; +import software.nhs.fhirvalidator.controller.ValidateController; +import software.nhs.fhirvalidator.util.ResourceUtils; + +import org.hl7.fhir.r4.model.OperationOutcome; +import org.hl7.fhir.r4.model.OperationOutcome.IssueSeverity; +import org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent; +import org.hl7.fhir.r4.model.Bundle; +import org.hl7.fhir.r4.model.Bundle.BundleEntryComponent; +import org.hl7.fhir.r4.model.Patient; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +class Validator_nhs_digital_Test { + + static ValidateController validateController; + static FhirContext fhirContext; + + Boolean issueListHasSeverity(List issueList, IssueSeverity severity) { + for (OperationOutcomeIssueComponent issue : issueList) { + if (issue.getSeverity().equals(severity)) { + return true; + } + } + return false; + } + + Boolean issueListHasDiagnosticMessageAtSeverity(List issueList, + String diagnosticMessage, IssueSeverity severity) { + for (OperationOutcomeIssueComponent issue : issueList) { + if (issue.getSeverity().equals(severity)) { + if (issue.getDiagnostics().equals(diagnosticMessage)) { + return true; + } + } + } + return false; + } + + @BeforeAll + static void setup() { + // Creating the HAPI validator takes several seconds. It's ok to reuse the same + // validator across tests to speed up tests + String manifest_file = "nhs_digital.manifest.json"; + validateController = new ValidateController(manifest_file); + fhirContext = FhirContext.forR4(); + } + + @Test + void simpleBundle() { + Bundle bundle = new Bundle(); + bundle.setType(Bundle.BundleType.COLLECTION); + BundleEntryComponent bundleEntry = bundle.addEntry(); + bundleEntry.setResource(new Patient()); + String FHIRDocument = fhirContext.newJsonParser().encodeResourceToString(bundle); + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/validSimpleBundle.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + + assertFalse(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); + assertFalse(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.WARNING)); + } + + @Test + void validBundle() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/validBundle.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/validBundle.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + + assertFalse(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); + assertTrue(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.WARNING)); + } + + @Test + void invalidBundle() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/invalidBundle.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/invalidBundle.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + + assertTrue(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); + assertTrue(issueListHasDiagnosticMessageAtSeverity(validatorResult.getIssue(), "Bundle entry missing fullUrl", + OperationOutcome.IssueSeverity.ERROR)); + assertTrue(issueListHasDiagnosticMessageAtSeverity(validatorResult.getIssue(), + "Unable to find a match for profile urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666 among choices: https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-EPSLegal", + OperationOutcome.IssueSeverity.ERROR)); + assertTrue(issueListHasDiagnosticMessageAtSeverity(validatorResult.getIssue(), + "Except for transactions and batches, each entry in a Bundle must have a fullUrl which is the identity of the resource in the entry", + OperationOutcome.IssueSeverity.ERROR)); + } + + @Test + void validParameters() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/validParameters.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/validParameters.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void invalidParameters() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/invalidParameters.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/invalidParameters.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void validOperationOutcome() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/validOperationOutcome.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/successfulOperationOutcome.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void invalidOperationOutcome() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/invalidOperationOutcome.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/invalidOperationOutcome.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void searchSet() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/searchSet.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/searchSet.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void missingHeader() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/missingHeader.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/missingHeader.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void empty() { + String FHIRDocument = ""; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/empty.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void array() { + String FHIRDocument = "[1,2,3]"; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/array.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void null_java() { + String FHIRDocument = null; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/null_java.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void null_json() { + String FHIRDocument = "null"; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/null_json.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void number_json() { + String FHIRDocument = "123"; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/number_json.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void boolean_json() { + String FHIRDocument = "true"; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/boolean_json.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void bad_json() { + String FHIRDocument = "{a:<>}}}"; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/bad_json.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void psuUpdate() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/psu_update.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/psu_nhs_digital.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + + assertTrue(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); + } +} diff --git a/legacy/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java b/legacy/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java new file mode 100644 index 00000000..59358e13 --- /dev/null +++ b/legacy/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java @@ -0,0 +1,179 @@ +package software.nhs.fhirvalidator; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; + +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +import ca.uhn.fhir.context.FhirContext; +import software.nhs.fhirvalidator.controller.ValidateController; +import software.nhs.fhirvalidator.util.ResourceUtils; + +import org.hl7.fhir.r4.model.OperationOutcome; +import org.hl7.fhir.r4.model.OperationOutcome.IssueSeverity; +import org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +class Validator_uk_core_Test { + + static ValidateController validateController; + static FhirContext fhirContext; + + Boolean issueListHasSeverity(List issueList, IssueSeverity severity) { + for (OperationOutcomeIssueComponent issue : issueList) { + if (issue.getSeverity().equals(severity)) { + return true; + } + } + return false; + } + + Boolean issueListHasDiagnosticMessageAtSeverity(List issueList, + String diagnosticMessage, IssueSeverity severity) { + for (OperationOutcomeIssueComponent issue : issueList) { + if (issue.getSeverity().equals(severity)) { + if (issue.getDiagnostics().equals(diagnosticMessage)) { + return true; + } + } + } + return false; + } + + @BeforeAll + static void setup() { + // Creating the HAPI validator takes several seconds. It's ok to reuse the same + // validator across tests to speed up tests + String manifest_file = "uk_core.manifest.json"; + validateController = new ValidateController(manifest_file); + fhirContext = FhirContext.forR4(); + } + + @Test + void psuUpdate() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/psu_update.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/psu_update.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + + assertFalse(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); + //assertFalse(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.WARNING)); + } + + @Test + void validBundle_nhsdigitalProfile() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/validBundle.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + + assertTrue(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); + } + + @Test + void empty() { + String FHIRDocument = ""; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/empty.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void array() { + String FHIRDocument = "[1,2,3]"; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/array.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void null_java() { + String FHIRDocument = null; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/null_java.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void null_json() { + String FHIRDocument = "null"; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/null_json.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void number_json() { + String FHIRDocument = "123"; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/number_json.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void boolean_json() { + String FHIRDocument = "true"; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/boolean_json.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void bad_json() { + String FHIRDocument = "{a:<>}}}"; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/bad_json.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + +} diff --git a/legacy/src/test/resources/examples/invalidBundle.json b/legacy/src/test/resources/examples/invalidBundle.json new file mode 100644 index 00000000..0d8d7427 --- /dev/null +++ b/legacy/src/test/resources/examples/invalidBundle.json @@ -0,0 +1,376 @@ +{ + "resourceType": "Bundle", + "id": "0A1FD9EF-A3D5-4E95-84CD-352070A03086", + "meta": { + "lastUpdated": "2022-10-21T13:47:00+00:00" + }, + "identifier": { + "value": "34470bbf-07cb-4b49-bef9-f958114f821f" + }, + "type": "message", + "entry": [ + { + "resource": { + "resourceType": "MessageHeader", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "plan", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "030611b2-9769-4696-88d9-9ddcf1132584" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "315A44-A83008-4C9BB1" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "DAVIS", + "given": [ + "JANE" + ], + "prefix": [ + "MRS" + ] + } + ], + "gender": "female", + "birthDate": "1999-11-25", + "address": [ + { + "use": "home", + "line": [ + "53 Harrogate Road", + "Chapel Allerton", + "Leeds" + ], + "postalCode": "LS7 3PY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": [ + "RANDOM" + ], + "prefix": [ + "MR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "683458" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": [ + "MUSGROVE PARK HOSPITAL" + ], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-03-16T12:34:33+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPmlscE5XeW05Wk1Pbk5jV1VzWk9TditmbFJwQT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+S1Yzc0RsY1UzbUhZcmcwYjBhbnBtTjJ4djRpVXJGRmVzVTl1TVZQL2UycHp0aUduT0pKcGFoanBtbGRGTFRIVE1pdXFpbHlwZTVMZDAvdWNlWnR5Q2gzMHUvOW50aEVpLyszOFljcVNNRlNTeWpuN1FPUXl2VFNqTkVqT3Fhb2FTaEhnSmNaR3hUei9GcG5iYktCUUI0NCt0MXVZSjlZbFFJdWNKSkRZWjFZPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/legacy/src/test/resources/examples/invalidOperationOutcome.json b/legacy/src/test/resources/examples/invalidOperationOutcome.json new file mode 100644 index 00000000..26800155 --- /dev/null +++ b/legacy/src/test/resources/examples/invalidOperationOutcome.json @@ -0,0 +1,6 @@ +{ + "resourceType": "OperationOutcome", + "meta": { + "lastUpdated": "2022-10-21T13:47:00+00:00" + } +} diff --git a/legacy/src/test/resources/examples/invalidParameters.json b/legacy/src/test/resources/examples/invalidParameters.json new file mode 100644 index 00000000..a7a447b2 --- /dev/null +++ b/legacy/src/test/resources/examples/invalidParameters.json @@ -0,0 +1,8 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "timestamp" + } + ] +} diff --git a/legacy/src/test/resources/examples/missingHeader.json b/legacy/src/test/resources/examples/missingHeader.json new file mode 100644 index 00000000..b6d21b99 --- /dev/null +++ b/legacy/src/test/resources/examples/missingHeader.json @@ -0,0 +1,696 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "5dfe538a-b922-4e8e-ae61-ab80ee6affe7" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "9bda1fa2-7a5f-4142-a394-5d262f3fd920" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "334AF1-A83008-B442F2", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2024-03-05", + "end": "2024-04-05" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "cae365a5-9835-406e-be57-473fae309760" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322341003", + "display": "Co-codamol 30mg/500mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "334AF1-A83008-B442F2", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2024-03-05", + "end": "2024-04-05" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "2b24d698-0491-4c3c-9f7a-2dd6f18eafbb" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321080004", + "display": "Pseudoephedrine hydrochloride 60mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "334AF1-A83008-B442F2", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2024-03-05", + "end": "2024-04-05" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "4f13a628-d226-4a03-a547-ff45577e9157" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "334AF1-A83008-B442F2", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2024-03-05", + "end": "2024-04-05" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + ], + "name": [ + { + "use": "usual", + "family": "TWITCHETT", + "given": [ + "STACEY", + "MARISA" + ], + "prefix": [ + "MS" + ] + } + ], + "gender": "female", + "birthDate": "1948-04-30", + "address": [ + { + "use": "home", + "line": [ + "10 HEATHFIELD", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + }, + { + "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01234567890" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0115 9737320" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + } + ] +} diff --git a/legacy/src/test/resources/examples/psu_update.json b/legacy/src/test/resources/examples/psu_update.json new file mode 100644 index 00000000..0faa5c6a --- /dev/null +++ b/legacy/src/test/resources/examples/psu_update.json @@ -0,0 +1,54 @@ +{ + "resourceType": "Bundle", + "type": "transaction", + "entry": [ + { + "fullUrl": "http://example.org/fhir/Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46", + "resource": { + "resourceType": "Task", + "id": "4d70678c-81e4-4ff4-8c67-17596fd0aa46", + "basedOn": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "07A66F-A83008-1EEEA0" + } + } + ], + "status": "completed", + "businessStatus": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/task-businessStatus-nppt", + "code": "Dispatched" + } + ] + }, + "intent": "order", + "focus": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "6989b7bd-8db6-428c-a593-4022e3044c00" + } + }, + "for": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + }, + "lastModified": "2024-01-30T12:01:24Z", + "owner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "C9Z1O" + } + } + }, + "request": { + "method": "POST", + "url": "Task" + } + } + ] +} diff --git a/legacy/src/test/resources/examples/searchSet.json b/legacy/src/test/resources/examples/searchSet.json new file mode 100644 index 00000000..09fcfcc4 --- /dev/null +++ b/legacy/src/test/resources/examples/searchSet.json @@ -0,0 +1,711 @@ +{ + "resourceType": "Bundle", + "id": "test-request-id", + "meta": { + "lastUpdated": "2022-11-21T14:00:00+00:00" + }, + "type": "searchset", + "total": 2, + "entry": [ + { + "fullUrl": "urn:uuid:0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "search": { + "mode": "match" + }, + "resource": { + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "type": "collection", + "entry": [ + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "status": "active", + "intent": "order", + "medicationCodeableConcept": { + "coding": [ + { + "system": "https://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "subject": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dispenseRequest": { + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "https://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "reference": "urn:uuid:afb07f8b-e8d7-4cad-895d-494e6b35b2a1" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", + "resource": { + "resourceType": "MedicationRequest", + "status": "active", + "intent": "order", + "medicationCodeableConcept": { + "coding": [ + { + "system": "https://snomed.info/sct", + "code": "322341003", + "display": "Co-codamol 30mg/500mg tablets" + } + ] + }, + "subject": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dispenseRequest": { + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "https://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "reference": "urn:uuid:afb07f8b-e8d7-4cad-895d-494e6b35b2a1" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", + "resource": { + "resourceType": "MedicationRequest", + "status": "active", + "intent": "order", + "medicationCodeableConcept": { + "coding": [ + { + "system": "https://snomed.info/sct", + "code": "321080004", + "display": "Pseudoephedrine hydrochloride 60mg tablets" + } + ] + }, + "subject": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dispenseRequest": { + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "https://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "reference": "urn:uuid:afb07f8b-e8d7-4cad-895d-494e6b35b2a1" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "status": "cancelled", + "intent": "order", + "medicationCodeableConcept": { + "coding": [ + { + "system": "https://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "subject": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dispenseRequest": { + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "https://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "reference": "urn:uuid:afb07f8b-e8d7-4cad-895d-494e6b35b2a1" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + } + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "name": "HALLGARTH SURGERY", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0115 9737320" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ] + } + }, + { + "fullUrl": "urn:uuid:afb07f8b-e8d7-4cad-895d-494e6b35b2a1", + "resource": { + "resourceType": "Organization", + "id": "afb07f8b-e8d7-4cad-895d-494e6b35b2a1", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FLM49" + } + ], + "name": "Pharmacy2u", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 2650222" + }, + { + "system": "url", + "use": "work", + "value": "www.pharmacy2u.co.uk" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "Unit 4B", + "Victoria Road" + ], + "city": "LEEDS", + "district": "WEST YORKSHIRE", + "postalCode": "LS14 2LA" + } + ] + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "search": { + "mode": "match" + }, + "resource": { + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "type": "collection", + "entry": [ + { + "fullUrl": "urn:uuid:ee035711-7aac-48c4-951a-62c07891d37d", + "resource": { + "resourceType": "MedicationRequest", + "status": "cancelled", + "intent": "order", + "medicationCodeableConcept": { + "coding": [ + { + "system": "https://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "subject": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + }, + "requester": { + "reference": "urn:uuid:815c6eb3-41f8-4f48-9e0d-2983624d4f90" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "566946-B86044-FEFEFN" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dispenseRequest": { + "validityPeriod": { + "start": "2023-03-14" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "https://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:815c6eb3-41f8-4f48-9e0d-2983624d4f90", + "resource": { + "resourceType": "PractitionerRole", + "id": "815c6eb3-41f8-4f48-9e0d-2983624d4f90", + "practitioner": { + "reference": "urn:uuid:acd5b009-c78f-40f2-a48b-b38ac72de992" + }, + "organization": { + "reference": "urn:uuid:9683c147-ddad-41d9-9858-6e585c3f04df" + } + } + }, + { + "fullUrl": "urn:uuid:acd5b009-c78f-40f2-a48b-b38ac72de992", + "resource": { + "resourceType": "Practitioner", + "id": "acd5b009-c78f-40f2-a48b-b38ac72de992", + "name": [ + { + "family": "ROBINSON", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:9683c147-ddad-41d9-9858-6e585c3f04df", + "resource": { + "resourceType": "Organization", + "id": "9683c147-ddad-41d9-9858-6e585c3f04df", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B86044" + } + ], + "name": "IRELAND WOOD SURGERY", + "telecom": [ + { + "system": "phone", + "value": "0113 2303470" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "IVESON APPROACH" + ], + "city": "LEEDS", + "district": "WEST YORKSHIRE", + "postalCode": "LS16 6FR", + "country": "ENGLAND" + } + ] + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "search": { + "mode": "match" + }, + "resource": { + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "type": "collection", + "entry": [ + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "status": "active", + "intent": "order", + "medicationCodeableConcept": { + "coding": [ + { + "system": "https://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "subject": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dispenseRequest": { + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "https://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "reference": "urn:uuid:154dcc4a-0006-4272-9758-9dcb8d95ce8b" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:815c6eb3-41f8-4f48-9e0d-2983624d4f90", + "resource": { + "resourceType": "PractitionerRole", + "id": "815c6eb3-41f8-4f48-9e0d-2983624d4f90", + "practitioner": { + "reference": "urn:uuid:acd5b009-c78f-40f2-a48b-b38ac72de992" + }, + "organization": { + "reference": "urn:uuid:9683c147-ddad-41d9-9858-6e585c3f04df" + } + } + }, + { + "fullUrl": "urn:uuid:acd5b009-c78f-40f2-a48b-b38ac72de992", + "resource": { + "resourceType": "Practitioner", + "id": "acd5b009-c78f-40f2-a48b-b38ac72de992", + "name": [ + { + "family": "ROBINSON", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:9683c147-ddad-41d9-9858-6e585c3f04df", + "resource": { + "resourceType": "Organization", + "id": "9683c147-ddad-41d9-9858-6e585c3f04df", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B86044" + } + ], + "name": "IRELAND WOOD SURGERY", + "telecom": [ + { + "system": "phone", + "value": "0113 2303470" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "IVESON APPROACH" + ], + "city": "LEEDS", + "district": "WEST YORKSHIRE", + "postalCode": "LS16 6FR", + "country": "ENGLAND" + } + ] + } + }, + { + "fullUrl": "urn:uuid:154dcc4a-0006-4272-9758-9dcb8d95ce8b", + "resource": { + "resourceType": "Organization", + "id": "154dcc4a-0006-4272-9758-9dcb8d95ce8b", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FEW08" + } + ], + "name": "Pharmica", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "020 71129014" + }, + { + "system": "url", + "use": "work", + "value": "www.pharmica.co.uk" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "1-5 Clerkenwell Road" + ], + "city": "LONDON", + "district": "GREATER LONDON", + "postalCode": "EC1M 5PA" + } + ] + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:1a388581-dbbe-43e3-9054-f5976c0245e5", + "search": { + "mode": "outcome" + }, + "resource": { + "resourceType": "OperationOutcome", + "id": "1a388581-dbbe-43e3-9054-f5976c0245e5", + "meta": { + "lastUpdated": "2023-09-29T10:52:00+00:00" + }, + "issue": [ + { + "code": "business-rule", + "severity": "warning", + "details": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/Spine-ErrorOrWarningCode", + "code": "INVALIDATED_RESOURCE", + "display": "Invalidated resource" + } + ] + }, + "diagnostics": "Prescription with short form ID D7AC09-A99968-4BA59C has been invalidated so could not be returned." + } + ] + } + }, + { + "fullUrl": "urn:uuid:fedef61e-bc62-452e-91c0-6f44ad2d5c0c", + "search": { + "mode": "outcome" + }, + "resource": { + "resourceType": "OperationOutcome", + "id": "fedef61e-bc62-452e-91c0-6f44ad2d5c0c", + "meta": { + "lastUpdated": "2023-09-29T10:52:00+00:00" + }, + "issue": [ + { + "code": "business-rule", + "severity": "warning", + "details": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/Spine-ErrorOrWarningCode", + "code": "INVALIDATED_RESOURCE", + "display": "Invalidated resource" + } + ] + }, + "diagnostics": "Prescription with short form ID CDF34E-A99968-4FF3BQ has been invalidated so could not be returned." + } + ] + } + } + ] +} diff --git a/legacy/src/test/resources/examples/stepFunctionEvent.json b/legacy/src/test/resources/examples/stepFunctionEvent.json new file mode 100644 index 00000000..9b4e447d --- /dev/null +++ b/legacy/src/test/resources/examples/stepFunctionEvent.json @@ -0,0 +1,75 @@ +{ + "body": { + "resourceType": "Bundle", + "type": "transaction", + "entry": [ + { + "fullUrl": "urn:uuid:4d70678c-81e4-4ff4-8c67-17596fd0aa46", + "resource": { + "resourceType": "Task", + "id": "4d70678c-81e4-4ff4-8c67-17596fd0aa46", + "basedOn": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "16B2E0-A83008-81C13H" + } + } + ], + "status": "completed", + "businessStatus": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/task-businessStatus-nppt", + "code": "dispatched" + } + ] + }, + "intent": "order", + "focus": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "6989b7bd-8db6-428c-a593-4022e3044c00" + } + }, + "for": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + }, + "lastModified": "2023-10-11T10:11:12Z", + "owner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "C9Z1O" + } + } + }, + "request": { + "method": "POST", + "url": "Task" + } + } + ] + }, + "headers": { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "apigw-request-id": "5600dff8-6553-42e3-a0ff-c2c9d04d3de6", + "Authorization": "Bearer nSoPA0PNA2JG8phqPwtCn9ys1G6z", + "Content-Type": "application/json", + "Host": "psu-pr-150.dev.eps.national.nhs.uk", + "nhsd-nhslogin-user": "P9:9912003071", + "Postman-Token": "8ca7a240-0b9e-4c1f-90d8-a526faa533e2", + "User-Agent": "PostmanRuntime/7.37.3", + "X-Amzn-Trace-Id": "Root=1-66290323-47ec5ff50d05147878b956d3", + "x-correlation-id": "ead03d9a-d14e-414d-9e01-217319210ddd", + "X-Forwarded-For": "86.5.218.71", + "X-Forwarded-Port": "443", + "X-Forwarded-Proto": "https", + "x-request-id": "c39f1caa-cd63-438d-bc2b-fafd3f02ed41" + }, + "querystring": {}, + "path": {} +} diff --git a/legacy/src/test/resources/examples/validBundle.json b/legacy/src/test/resources/examples/validBundle.json new file mode 100644 index 00000000..fe040eb9 --- /dev/null +++ b/legacy/src/test/resources/examples/validBundle.json @@ -0,0 +1,749 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "5dfe538a-b922-4e8e-ae61-ab80ee6affe7" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + }, + "display": "The Simple Pharmacy" + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "focus": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00" + }, + { + "reference": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "9bda1fa2-7a5f-4142-a394-5d262f3fd920" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "334AF1-A83008-B442F2", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2024-03-05", + "end": "2024-04-05" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "cae365a5-9835-406e-be57-473fae309760" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322341003", + "display": "Co-codamol 30mg/500mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "334AF1-A83008-B442F2", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2024-03-05", + "end": "2024-04-05" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "2b24d698-0491-4c3c-9f7a-2dd6f18eafbb" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321080004", + "display": "Pseudoephedrine hydrochloride 60mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "334AF1-A83008-B442F2", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2024-03-05", + "end": "2024-04-05" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "4f13a628-d226-4a03-a547-ff45577e9157" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "334AF1-A83008-B442F2", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2024-03-05", + "end": "2024-04-05" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + ], + "name": [ + { + "use": "usual", + "family": "TWITCHETT", + "given": [ + "STACEY", + "MARISA" + ], + "prefix": [ + "MS" + ] + } + ], + "gender": "female", + "birthDate": "1948-04-30", + "address": [ + { + "use": "home", + "line": [ + "10 HEATHFIELD", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + }, + { + "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01234567890" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0115 9737320" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + } + ] +} diff --git a/legacy/src/test/resources/examples/validOperationOutcome.json b/legacy/src/test/resources/examples/validOperationOutcome.json new file mode 100644 index 00000000..4d90c94d --- /dev/null +++ b/legacy/src/test/resources/examples/validOperationOutcome.json @@ -0,0 +1,12 @@ +{ + "resourceType": "OperationOutcome", + "meta": { + "lastUpdated": "2022-10-21T13:47:00+00:00" + }, + "issue": [ + { + "severity": "information", + "code": "informational" + } + ] +} diff --git a/legacy/src/test/resources/examples/validParameters.json b/legacy/src/test/resources/examples/validParameters.json new file mode 100644 index 00000000..4e86b816 --- /dev/null +++ b/legacy/src/test/resources/examples/validParameters.json @@ -0,0 +1,9 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + } + ] +} diff --git a/legacy/src/test/resources/logback-test.xml b/legacy/src/test/resources/logback-test.xml new file mode 100644 index 00000000..5d4ea2c8 --- /dev/null +++ b/legacy/src/test/resources/logback-test.xml @@ -0,0 +1,10 @@ + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + + + + + + diff --git a/legacy/src/test/resources/results/array.json b/legacy/src/test/resources/results/array.json new file mode 100644 index 00000000..56b7de3e --- /dev/null +++ b/legacy/src/test/resources/results/array.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: HAPI-1859: Content does not appear to be FHIR JSON, first non-whitespace character was: '[' (must be '{')" + } + ] +} diff --git a/legacy/src/test/resources/results/bad_json.json b/legacy/src/test/resources/results/bad_json.json new file mode 100644 index 00000000..00fa9f96 --- /dev/null +++ b/legacy/src/test/resources/results/bad_json.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: Unexpected character ('a' (code 97)): was expecting double-quote to start field name\n at [line: 1, column: 2]" + } + ] +} diff --git a/legacy/src/test/resources/results/boolean_json.json b/legacy/src/test/resources/results/boolean_json.json new file mode 100644 index 00000000..88471801 --- /dev/null +++ b/legacy/src/test/resources/results/boolean_json.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: HAPI-1859: Content does not appear to be FHIR JSON, first non-whitespace character was: 't' (must be '{')" + } + ] +} diff --git a/legacy/src/test/resources/results/empty.json b/legacy/src/test/resources/results/empty.json new file mode 100644 index 00000000..8ad8d892 --- /dev/null +++ b/legacy/src/test/resources/results/empty.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: HAPI-1857: Did not find any content to parse" + } + ] +} diff --git a/legacy/src/test/resources/results/invalidBundle.json b/legacy/src/test/resources/results/invalidBundle.json new file mode 100644 index 00000000..84810782 --- /dev/null +++ b/legacy/src/test/resources/results/invalidBundle.json @@ -0,0 +1,431 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1082 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Bundle_BUNDLE_Entry_NoFullUrl" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Bundle_BUNDLE_Entry_NoFullUrl" + } + ] + }, + "diagnostics": "Bundle entry missing fullUrl", + "location": [ + "Bundle.entry[0]", + "Line[1] Col[1082]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1081 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[0].resource/*MessageHeader/0a1fd9ef-a3d5-4e95-84cd-552070a03086*/", + "Line[1] Col[1081]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3724 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/", + "Line[1] Col[3724]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2030 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[2030]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2030 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#15517911000001104)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[2030]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2028 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Unable to validate medication codes", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[2028]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2176 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Reference_REF_CantMatchChoice" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Reference_REF_CantMatchChoice" + } + ] + }, + "diagnostics": "Unable to find a match for profile urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666 among choices: https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-EPSLegal", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.requester", + "Line[1] Col[2176]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2176 + } + ], + "severity": "information", + "code": "processing", + "diagnostics": "Details for urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666 matching against profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-EPSLegal - Bundle.entry[4].resource/*PractitionerRole/null*/: PractitionerRole.code: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-EPSLegal)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.requester", + "Line[1] Col[2176]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3034 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.dosageInstruction[0].route", + "Line[1] Col[3034]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3130 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.dosageInstruction[0].method", + "Line[1] Col[3130]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4325 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[2].resource/*Patient/null*/", + "Line[1] Col[4325]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4738 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[3].resource/*Practitioner/null*/", + "Line[1] Col[4738]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4738 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: prac-gmc: 'GMC must be of the format CNNNNNNN' (defined in https://fhir.nhs.uk/StructureDefinition/NHSDigital-Practitioner)", + "location": [ + "Bundle.entry[3].resource/*Practitioner/null*/", + "Line[1] Col[4738]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 5328 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[4].resource/*PractitionerRole/null*/", + "Line[1] Col[5328]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 5328 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: role-spurious: 'Spurious Code format must be G6NNNNNN or G7NNNNNN'", + "location": [ + "Bundle.entry[4].resource/*PractitionerRole/null*/", + "Line[1] Col[5328]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 5974 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[5].resource/*Organization/null*/", + "Line[1] Col[5974]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 9357 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[6].resource/*Provenance/null*/", + "Line[1] Col[9357]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1082 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "BUNDLE_BUNDLE_ENTRY_FULLURL_REQUIRED" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "BUNDLE_BUNDLE_ENTRY_FULLURL_REQUIRED" + } + ] + }, + "diagnostics": "Except for transactions and batches, each entry in a Bundle must have a fullUrl which is the identity of the resource in the entry", + "location": [ + "Bundle.entry[0]", + "Line[1] Col[1082]" + ] + } + ] +} diff --git a/legacy/src/test/resources/results/invalidOperationOutcome.json b/legacy/src/test/resources/results/invalidOperationOutcome.json new file mode 100644 index 00000000..9a26e5dd --- /dev/null +++ b/legacy/src/test/resources/results/invalidOperationOutcome.json @@ -0,0 +1,55 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 169 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "OperationOutcome.issue: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-OperationOutcome|1.1.1)", + "location": [ + "OperationOutcome", + "Line[1] Col[169]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 169 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "OperationOutcome", + "Line[1] Col[169]" + ] + } + ] +} diff --git a/legacy/src/test/resources/results/invalidParameters.json b/legacy/src/test/resources/results/invalidParameters.json new file mode 100644 index 00000000..54260ed6 --- /dev/null +++ b/legacy/src/test/resources/results/invalidParameters.json @@ -0,0 +1,36 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 63 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "http://hl7.org/fhir/StructureDefinition/Parameters#inv-1" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "http://hl7.org/fhir/StructureDefinition/Parameters#inv-1" + } + ] + }, + "diagnostics": "Constraint failed: inv-1: 'A parameter must have one and only one of (value, resource, part)'", + "location": [ + "Parameters.parameter[0]", + "Line[1] Col[63]" + ] + } + ] +} diff --git a/legacy/src/test/resources/results/missingHeader.json b/legacy/src/test/resources/results/missingHeader.json new file mode 100644 index 00000000..f59f1f0c --- /dev/null +++ b/legacy/src/test/resources/results/missingHeader.json @@ -0,0 +1,13 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "No MessageHeader found.", + "expression": [ + "Bundle.entry" + ] + } + ] +} diff --git a/legacy/src/test/resources/results/null_java.json b/legacy/src/test/resources/results/null_java.json new file mode 100644 index 00000000..27be4901 --- /dev/null +++ b/legacy/src/test/resources/results/null_java.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "Cannot invoke \"String.length()\" because \"s\" is null" + } + ] +} diff --git a/legacy/src/test/resources/results/null_json.json b/legacy/src/test/resources/results/null_json.json new file mode 100644 index 00000000..49593577 --- /dev/null +++ b/legacy/src/test/resources/results/null_json.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: HAPI-1859: Content does not appear to be FHIR JSON, first non-whitespace character was: 'n' (must be '{')" + } + ] +} diff --git a/legacy/src/test/resources/results/number_json.json b/legacy/src/test/resources/results/number_json.json new file mode 100644 index 00000000..f821bbb7 --- /dev/null +++ b/legacy/src/test/resources/results/number_json.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: HAPI-1859: Content does not appear to be FHIR JSON, first non-whitespace character was: '1' (must be '{')" + } + ] +} diff --git a/legacy/src/test/resources/results/psu_nhs_digital.json b/legacy/src/test/resources/results/psu_nhs_digital.json new file mode 100644 index 00000000..f43818cf --- /dev/null +++ b/legacy/src/test/resources/results/psu_nhs_digital.json @@ -0,0 +1,210 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1004 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", + "Line[1] Col[1004]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1004 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "Task.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", + "Line[1] Col[1004]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1004 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "Task.code: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", + "Line[1] Col[1004]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1004 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "Task.authoredOn: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", + "Line[1] Col[1004]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1004 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "Task.requester: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", + "Line[1] Col[1004]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 625 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_1_CC" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_1_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'EPSTaskBusinessPrescriptionStatus' (https://fhir.nhs.uk/ValueSet/DM-task-business-status|1.0.0), and a coding from this value set is required) (codes = https://fhir.nhs.uk/CodeSystem/task-businessStatus-nppt#Dispatched)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/.businessStatus", + "Line[1] Col[625]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 623 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "Task.businessStatus.coding.display: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/.businessStatus.coding[0]", + "Line[1] Col[623]" + ] + } + ] +} diff --git a/legacy/src/test/resources/results/psu_update.json b/legacy/src/test/resources/results/psu_update.json new file mode 100644 index 00000000..a0682728 --- /dev/null +++ b/legacy/src/test/resources/results/psu_update.json @@ -0,0 +1,24 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 851 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", + "Line[1] Col[851]" + ] + } + ] +} diff --git a/legacy/src/test/resources/results/searchSet.json b/legacy/src/test/resources/results/searchSet.json new file mode 100644 index 00000000..2e53ede9 --- /dev/null +++ b/legacy/src/test/resources/results/searchSet.json @@ -0,0 +1,2396 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1227 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1227]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1227 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1227]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1227 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1227]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1227 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1227]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 501 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#39732311000001104)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[501]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 499 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "This_element_does_not_match_any_known_slice_" + } + ], + "severity": "information", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "This_element_does_not_match_any_known_slice_" + } + ] + }, + "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[499]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 501 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[501]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 779 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[779]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 779 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[779]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 958 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_1_CC" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_1_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.courseOfTherapyType", + "Line[1] Col[958]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1186 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[1186]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1186 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[1186]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2326 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/", + "Line[1] Col[2326]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2326 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/", + "Line[1] Col[2326]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2326 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/", + "Line[1] Col[2326]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2326 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/", + "Line[1] Col[2326]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1600 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#322341003)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[1600]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1598 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "This_element_does_not_match_any_known_slice_" + } + ], + "severity": "information", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "This_element_does_not_match_any_known_slice_" + } + ] + }, + "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[1598]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1600 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[1600]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1878 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[1878]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1878 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[1878]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2057 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_1_CC" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_1_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.courseOfTherapyType", + "Line[1] Col[2057]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2285 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[2285]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2285 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[2285]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3438 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/", + "Line[1] Col[3438]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3438 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/", + "Line[1] Col[3438]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3438 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/", + "Line[1] Col[3438]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3438 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/", + "Line[1] Col[3438]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2712 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#321080004)", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[2712]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2710 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "This_element_does_not_match_any_known_slice_" + } + ], + "severity": "information", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "This_element_does_not_match_any_known_slice_" + } + ] + }, + "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[2710]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2712 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[2712]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2990 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[2990]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2990 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[2990]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3169 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_1_CC" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_1_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.courseOfTherapyType", + "Line[1] Col[3169]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3397 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[3397]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3397 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[3397]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4538 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/", + "Line[1] Col[4538]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4538 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/", + "Line[1] Col[4538]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4538 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/", + "Line[1] Col[4538]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4538 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/", + "Line[1] Col[4538]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3812 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#324252006)", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[3812]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3810 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "This_element_does_not_match_any_known_slice_" + } + ], + "severity": "information", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "This_element_does_not_match_any_known_slice_" + } + ] + }, + "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[3810]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3812 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[3812]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4090 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[4090]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4090 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[4090]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4269 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_1_CC" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_1_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.courseOfTherapyType", + "Line[1] Col[4269]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4497 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[4497]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4497 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[4497]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4934 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[4].resource/*PractitionerRole/56166769-c1c4-4d07-afa8-132b5dfca666*/", + "Line[1] Col[4934]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 5225 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[5].resource/*Practitioner/a8c85454-f8cb-498d-9629-78e2cb5fa47a*/", + "Line[1] Col[5225]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 5792 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[6].resource/*Organization/3b4b03a5-52ba-4ba6-9b82-70350aa109d8*/", + "Line[1] Col[5792]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 6406 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[7].resource/*Organization/afb07f8b-e8d7-4cad-895d-494e6b35b2a1*/", + "Line[1] Col[6406]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1149 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1149]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1149 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1149]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1149 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1149]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1149 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1149]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 497 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#324252006)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[497]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 495 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "This_element_does_not_match_any_known_slice_" + } + ], + "severity": "information", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "This_element_does_not_match_any_known_slice_" + } + ] + }, + "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[495]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 497 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[497]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 775 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[775]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 775 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[775]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 954 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_1_CC" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_1_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.courseOfTherapyType", + "Line[1] Col[954]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1108 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[1108]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1108 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[1108]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1545 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[1].resource/*PractitionerRole/815c6eb3-41f8-4f48-9e0d-2983624d4f90*/", + "Line[1] Col[1545]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1840 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[2].resource/*Practitioner/acd5b009-c78f-40f2-a48b-b38ac72de992*/", + "Line[1] Col[1840]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2403 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[3].resource/*Organization/9683c147-ddad-41d9-9858-6e585c3f04df*/", + "Line[1] Col[2403]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Bundle_BUNDLE_Not_Local" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Bundle_BUNDLE_Not_Local" + } + ] + }, + "diagnostics": "URN reference is not locally contained within the bundle urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.requester" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1227 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1227]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1227 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1227]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1227 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1227]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1227 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1227]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 501 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#39732311000001104)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[501]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 499 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "This_element_does_not_match_any_known_slice_" + } + ], + "severity": "information", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "This_element_does_not_match_any_known_slice_" + } + ] + }, + "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[499]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 501 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[501]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 779 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[779]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 779 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[779]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 958 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_1_CC" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_1_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.courseOfTherapyType", + "Line[1] Col[958]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1186 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[1186]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1186 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[1186]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1623 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[1].resource/*PractitionerRole/815c6eb3-41f8-4f48-9e0d-2983624d4f90*/", + "Line[1] Col[1623]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1918 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[2].resource/*Practitioner/acd5b009-c78f-40f2-a48b-b38ac72de992*/", + "Line[1] Col[1918]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2481 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[3].resource/*Organization/9683c147-ddad-41d9-9858-6e585c3f04df*/", + "Line[1] Col[2481]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3089 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[4].resource/*Organization/154dcc4a-0006-4272-9758-9dcb8d95ce8b*/", + "Line[1] Col[3089]" + ] + } + ] +} diff --git a/legacy/src/test/resources/results/stepFunctionResult.json b/legacy/src/test/resources/results/stepFunctionResult.json new file mode 100644 index 00000000..0124a66b --- /dev/null +++ b/legacy/src/test/resources/results/stepFunctionResult.json @@ -0,0 +1,24 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 787 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[0].resource/*Task/null*/", + "Line[1] Col[787]" + ] + } + ] +} diff --git a/legacy/src/test/resources/results/successfulOperationOutcome.json b/legacy/src/test/resources/results/successfulOperationOutcome.json new file mode 100644 index 00000000..84eb7bda --- /dev/null +++ b/legacy/src/test/resources/results/successfulOperationOutcome.json @@ -0,0 +1,24 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 229 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "OperationOutcome", + "Line[1] Col[229]" + ] + } + ] +} diff --git a/legacy/src/test/resources/results/validBundle.json b/legacy/src/test/resources/results/validBundle.json new file mode 100644 index 00000000..d16c7f91 --- /dev/null +++ b/legacy/src/test/resources/results/validBundle.json @@ -0,0 +1,674 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1344 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[0].resource/*MessageHeader/null*/", + "Line[1] Col[1344]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3705 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/", + "Line[1] Col[3705]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2244 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[2244]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2244 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#39732311000001104)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[2244]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2242 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Unable to validate medication codes", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[2242]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3098 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.dosageInstruction[0].route", + "Line[1] Col[3098]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 6061 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/", + "Line[1] Col[6061]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4600 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[4600]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4600 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#322341003)", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[4600]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4598 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Unable to validate medication codes", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[4598]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 5454 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.dosageInstruction[0].route", + "Line[1] Col[5454]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 8430 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/", + "Line[1] Col[8430]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 6969 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[6969]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 6969 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#321080004)", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[6969]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 6967 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Unable to validate medication codes", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[6967]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 7823 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.dosageInstruction[0].route", + "Line[1] Col[7823]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 10784 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[4].resource/*MedicationRequest/null*/", + "Line[1] Col[10784]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 9323 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[4].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[9323]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 9323 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#324252006)", + "location": [ + "Bundle.entry[4].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[9323]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 9321 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Unable to validate medication codes", + "location": [ + "Bundle.entry[4].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[9321]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 10177 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[4].resource/*MedicationRequest/null*/.dosageInstruction[0].route", + "Line[1] Col[10177]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 11388 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[5].resource/*Patient/null*/", + "Line[1] Col[11388]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 12117 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unknown code in fragment CodeSystem 'https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode#R8000'", + "location": [ + "Bundle.entry[6].resource/*PractitionerRole/null*/.code[0]", + "Line[1] Col[12117]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 12185 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[6].resource/*PractitionerRole/null*/", + "Line[1] Col[12185]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 12655 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[7].resource/*Practitioner/null*/", + "Line[1] Col[12655]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 12655 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: prac-gmc: 'GMC must be of the format CNNNNNNN' (defined in https://fhir.nhs.uk/StructureDefinition/NHSDigital-Practitioner)", + "location": [ + "Bundle.entry[7].resource/*Practitioner/null*/", + "Line[1] Col[12655]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 13428 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[8].resource/*Organization/null*/", + "Line[1] Col[13428]" + ] + } + ] +} diff --git a/legacy/src/test/resources/results/validParameters.json b/legacy/src/test/resources/results/validParameters.json new file mode 100644 index 00000000..08a3fa46 --- /dev/null +++ b/legacy/src/test/resources/results/validParameters.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "information", + "code": "informational", + "diagnostics": "No issues detected during validation" + } + ] +} diff --git a/legacy/src/test/resources/results/validSimpleBundle.json b/legacy/src/test/resources/results/validSimpleBundle.json new file mode 100644 index 00000000..08a3fa46 --- /dev/null +++ b/legacy/src/test/resources/results/validSimpleBundle.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "information", + "code": "informational", + "diagnostics": "No issues detected during validation" + } + ] +} diff --git a/pom.xml b/pom.xml index a29fc4ed..ea219f60 100644 --- a/pom.xml +++ b/pom.xml @@ -163,6 +163,7 @@ log4j2.xml package/* + *.tgz primerPayload.json nhs_digital.manifest.json uk_core.manifest.json diff --git a/scripts/download_dependencies.py b/scripts/download_dependencies.py index e29784f5..eef3eb30 100755 --- a/scripts/download_dependencies.py +++ b/scripts/download_dependencies.py @@ -12,7 +12,7 @@ def download_dependencies(manifest_file): packageName = entry["packageName"] version = entry["version"] packageData = requests.get(f"https://packages.simplifier.net/{packageName}/{version}").content - with open(f"src/main/resources/package/{packageName}-{version}.tgz", "wb") as packageFile: + with open(f"src/main/resources/{packageName}-{version}.tgz", "wb") as packageFile: packageFile.write(packageData) diff --git a/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java b/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java index 21b9ce85..9853edad 100644 --- a/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java +++ b/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java @@ -106,14 +106,16 @@ public ValidatorConfiguration(String _PROFILE_MANIFEST_FILE) { try { for (SimplifierPackage individualPackage : packages) { - String packagePath = String.format("classpath:package/%s-%s.tgz", individualPackage.packageName, + String packagePath = String.format("%s-%s.tgz", individualPackage.packageName, individualPackage.version); try (InputStream is = ClasspathUtil.loadResourceAsStream(packagePath)) { - NpmPackage pkg = NpmPackage.fromPackage(is); - npmPackages.add(pkg); PrePopulatedValidationSupport foo = createPrePopulatedValidationSupport(is); supportChain.addValidationSupport(foo); } + try (InputStream is = ClasspathUtil.loadResourceAsStream(packagePath)) { + NpmPackage pkg = NpmPackage.fromPackage(is); + npmPackages.add(pkg); + } } } catch (InternalErrorException | IOException ex) { log.error(ex.getMessage(), ex); From 98c9ccdf073d3ccf6c307c09c75915fe93e58fd8 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Sat, 3 May 2025 12:33:17 +0000 Subject: [PATCH 03/35] revert main stuff --- licenses/licenses.xml | 13 ----- pom.xml | 8 ++- .../configuration/ValidatorConfiguration.java | 56 ++----------------- 3 files changed, 12 insertions(+), 65 deletions(-) diff --git a/licenses/licenses.xml b/licenses/licenses.xml index c3cb5e76..5543bd3f 100644 --- a/licenses/licenses.xml +++ b/licenses/licenses.xml @@ -138,19 +138,6 @@ http://creativecommons.org/publicdomain/zero/1.0 - - Indiana University Extreme! Lab Software License, vesion 1.1.1 - - Indiana University Extreme! Lab Software License, vesion 1.1.1 - Public Domain - Apache Software License, version 1.1 - - - http://www.extreme.indiana.edu/viewcvs/~checkout~/XPP3/java/LICENSE.txt - http://creativecommons.org/licenses/publicdomain - http://www.apache.org/licenses/LICENSE-1.1 - - diff --git a/pom.xml b/pom.xml index ea219f60..60f12ec3 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ 21 21 UTF-8 - 5.4.2 + 7.6.1 2.24.3 2.19.0 nhsdigital @@ -64,6 +64,11 @@ hapi-fhir-validation ${fhir.version} + + ca.uhn.hapi.fhir + hapi-fhir-caching-caffeine + ${fhir.version} + ca.uhn.hapi.fhir hapi-fhir-base @@ -163,7 +168,6 @@ log4j2.xml package/* - *.tgz primerPayload.json nhs_digital.manifest.json uk_core.manifest.json diff --git a/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java b/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java index 9853edad..3b9e39fb 100644 --- a/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java +++ b/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java @@ -4,24 +4,20 @@ import java.io.InputStream; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import com.google.gson.Gson; import org.hl7.fhir.common.hapi.validation.support.CachingValidationSupport; import org.hl7.fhir.common.hapi.validation.support.CommonCodeSystemsTerminologyService; import org.hl7.fhir.common.hapi.validation.support.InMemoryTerminologyServerValidationSupport; -import org.hl7.fhir.common.hapi.validation.support.PrePopulatedValidationSupport; +import org.hl7.fhir.common.hapi.validation.support.NpmPackageValidationSupport; import org.hl7.fhir.common.hapi.validation.support.SnapshotGeneratingValidationSupport; import org.hl7.fhir.common.hapi.validation.support.ValidationSupportChain; import org.hl7.fhir.common.hapi.validation.validator.FhirInstanceValidator; import org.hl7.fhir.instance.model.api.IBaseResource; import org.hl7.fhir.r4.model.CanonicalType; -import org.hl7.fhir.r4.model.CodeSystem; import org.hl7.fhir.r4.model.ElementDefinition; -import org.hl7.fhir.r4.model.Resource; import org.hl7.fhir.r4.model.StructureDefinition; -import org.hl7.fhir.r4.model.ValueSet; import org.hl7.fhir.utilities.npm.NpmPackage; import ca.uhn.fhir.context.FhirContext; @@ -29,7 +25,6 @@ import ca.uhn.fhir.context.support.DefaultProfileValidationSupport; import ca.uhn.fhir.context.support.IValidationSupport; import ca.uhn.fhir.context.support.ValidationSupportContext; -import ca.uhn.fhir.parser.IParser; import ca.uhn.fhir.rest.server.exceptions.InternalErrorException; import ca.uhn.fhir.util.ClasspathUtil; import ca.uhn.fhir.validation.FhirValidator; @@ -53,44 +48,6 @@ public class ValidatorConfiguration { Logger log = LogManager.getLogger(ValidatorConfiguration.class); - private List getResourcesOfType(NpmPackage npmPackage, T resourceType) throws IOException { - IParser jsonParser = fhirContext.newJsonParser(); - - return npmPackage.listResources(resourceType.fhirType()).stream() - .map(t -> { - try { - return npmPackage.loadResource(t); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return null; - }) - .map(jsonParser::parseResource) - .filter(resource -> resourceType.getClass().isInstance(resource)) - .map(resource -> (T) resource) - .collect(Collectors.toList()); - } - - private PrePopulatedValidationSupport createPrePopulatedValidationSupport(InputStream inputStream) throws IOException { - NpmPackage npmPackage = NpmPackage.fromPackage(inputStream); - PrePopulatedValidationSupport prePopulatedSupport = new PrePopulatedValidationSupport(fhirContext); - - for (StructureDefinition sd : getResourcesOfType(npmPackage, new StructureDefinition())) { - prePopulatedSupport.addStructureDefinition(sd); - } - - for (CodeSystem cs : getResourcesOfType(npmPackage, new CodeSystem())) { - prePopulatedSupport.addCodeSystem(cs); - } - - for (ValueSet vs : getResourcesOfType(npmPackage, new ValueSet())) { - prePopulatedSupport.addValueSet(vs); - } - - return prePopulatedSupport; - } - public ValidatorConfiguration(String _PROFILE_MANIFEST_FILE) { PROFILE_MANIFEST_FILE = _PROFILE_MANIFEST_FILE; fhirContext = FhirContext.forR4(); @@ -103,15 +60,13 @@ public ValidatorConfiguration(String _PROFILE_MANIFEST_FILE) { new SnapshotGeneratingValidationSupport(fhirContext)); SimplifierPackage[] packages = getPackages(); + NpmPackageValidationSupport npmPackageSupport = new NpmPackageValidationSupport(fhirContext); try { for (SimplifierPackage individualPackage : packages) { - String packagePath = String.format("%s-%s.tgz", individualPackage.packageName, + String packagePath = String.format("classpath:package/%s-%s.tgz", individualPackage.packageName, individualPackage.version); - try (InputStream is = ClasspathUtil.loadResourceAsStream(packagePath)) { - PrePopulatedValidationSupport foo = createPrePopulatedValidationSupport(is); - supportChain.addValidationSupport(foo); - } + npmPackageSupport.loadPackageFromClasspath(packagePath); try (InputStream is = ClasspathUtil.loadResourceAsStream(packagePath)) { NpmPackage pkg = NpmPackage.fromPackage(is); npmPackages.add(pkg); @@ -121,6 +76,7 @@ public ValidatorConfiguration(String _PROFILE_MANIFEST_FILE) { log.error(ex.getMessage(), ex); throw new RuntimeException("error loading simplifier packages", ex); } + supportChain.addValidationSupport(npmPackageSupport); generateSnapshots(supportChain); supportChain.fetchCodeSystem("http://snomed.info/sct"); @@ -227,7 +183,7 @@ public IValidationSupport.CodeValidationResult validateCodeInValueSet( String theCode, String theDisplay, IBaseResource theValueSet) { - String valueSetUrl = CommonCodeSystemsTerminologyService.getValueSetUrl(theValueSet); + String valueSetUrl = CommonCodeSystemsTerminologyService.getValueSetUrl(fhirContext, theValueSet); if ("https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationRequest-Code".equals(valueSetUrl) || "https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationDispense-Code".equals(valueSetUrl) From c77388ee59b94951f331e03d5eb3a53616260ae4 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Sat, 3 May 2025 12:44:19 +0000 Subject: [PATCH 04/35] two versions of hapi fhir --- .../licenses}/allowedMissingLicense.xml | 0 {licenses => latest/licenses}/licenses.xml | 0 pom.xml => latest/pom.xml | 0 .../configuration/ValidatorConfiguration.java | 0 .../controller/ValidateController.java | 0 .../fhirvalidator/handler/HandlerStream.java | 0 .../models/SimplifierPackage.java | 0 .../service/CapabilityStatementApplier.java | 0 .../service/ImplementationGuideParser.java | 0 .../service/MessageDefinitionApplier.java | 0 .../nhs/fhirvalidator/util/FhirUtils.java | 0 .../util/OperationOutcomeUtils.java | 0 .../nhs/fhirvalidator/util/ResourceUtils.java | 0 {src => latest/src}/main/resources/log4j2.xml | 0 .../main/resources/nhs_digital.manifest.json | 0 .../src}/main/resources/package/.gitkeep | 0 ...re.stu3.currentbuild-0.0.9-pre-release.tgz | Bin 0 -> 226203 bytes ...al.medicines.r4.test-2.8.16-prerelease.tgz | Bin 0 -> 127233 bytes ...k.nhsdigital.r4.test-2.8.17-prerelease.tgz | Bin 0 -> 373290 bytes .../src}/main/resources/primerPayload.json | 2 +- .../src}/main/resources/uk_core.manifest.json | 0 .../nhs/fhirvalidator/HandlerTest.java | 0 .../Validator_nhs_digital_Test.java | 0 .../fhirvalidator/Validator_uk_core_Test.java | 0 .../resources/examples/invalidBundle.json | 2 +- .../examples/invalidOperationOutcome.json | 2 +- .../resources/examples/invalidParameters.json | 2 +- .../resources/examples/missingHeader.json | 0 .../test/resources/examples/psu_update.json | 0 .../test/resources/examples/searchSet.json | 0 .../resources/examples/stepFunctionEvent.json | 0 .../test/resources/examples/validBundle.json | 0 .../examples/validOperationOutcome.json | 2 +- .../resources/examples/validParameters.json | 2 +- .../src}/test/resources/logback-test.xml | 0 .../src}/test/resources/results/array.json | 0 .../src}/test/resources/results/bad_json.json | 0 .../test/resources/results/boolean_json.json | 0 .../src}/test/resources/results/empty.json | 0 .../test/resources/results/invalidBundle.json | 0 .../results/invalidOperationOutcome.json | 0 .../resources/results/invalidParameters.json | 0 .../test/resources/results/missingHeader.json | 0 .../test/resources/results/null_java.json | 0 .../test/resources/results/null_json.json | 0 .../test/resources/results/number_json.json | 0 .../resources/results/psu_nhs_digital.json | 0 .../test/resources/results/psu_update.json | 0 .../test/resources/results/searchSet.json | 0 .../resources/results/stepFunctionResult.json | 0 .../results/successfulOperationOutcome.json | 0 .../test/resources/results/validBundle.json | 0 .../resources/results/validParameters.json | 0 .../resources/results/validSimpleBundle.json | 0 legacy/licenses/allowedMissingLicense.xml | 8 + legacy/licenses/licenses.xml | 166 ++++++++++++++++++ 56 files changed, 180 insertions(+), 6 deletions(-) rename {licenses => latest/licenses}/allowedMissingLicense.xml (100%) rename {licenses => latest/licenses}/licenses.xml (100%) rename pom.xml => latest/pom.xml (100%) rename {src => latest/src}/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java (100%) rename {src => latest/src}/main/java/software/nhs/fhirvalidator/controller/ValidateController.java (100%) rename {src => latest/src}/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java (100%) rename {src => latest/src}/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java (100%) rename {src => latest/src}/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java (100%) rename {src => latest/src}/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java (100%) rename {src => latest/src}/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java (100%) rename {src => latest/src}/main/java/software/nhs/fhirvalidator/util/FhirUtils.java (100%) rename {src => latest/src}/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java (100%) rename {src => latest/src}/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java (100%) rename {src => latest/src}/main/resources/log4j2.xml (100%) rename {src => latest/src}/main/resources/nhs_digital.manifest.json (100%) rename {src => latest/src}/main/resources/package/.gitkeep (100%) create mode 100644 latest/src/main/resources/package/fhir.r4.ukcore.stu3.currentbuild-0.0.9-pre-release.tgz create mode 100644 latest/src/main/resources/package/uk.nhsdigital.medicines.r4.test-2.8.16-prerelease.tgz create mode 100644 latest/src/main/resources/package/uk.nhsdigital.r4.test-2.8.17-prerelease.tgz rename {src => latest/src}/main/resources/primerPayload.json (99%) rename {src => latest/src}/main/resources/uk_core.manifest.json (100%) rename {src => latest/src}/test/java/software/nhs/fhirvalidator/HandlerTest.java (100%) rename {src => latest/src}/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java (100%) rename {src => latest/src}/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java (100%) rename {src => latest/src}/test/resources/examples/invalidBundle.json (99%) rename {src => latest/src}/test/resources/examples/invalidOperationOutcome.json (98%) rename {src => latest/src}/test/resources/examples/invalidParameters.json (98%) rename {src => latest/src}/test/resources/examples/missingHeader.json (100%) rename {src => latest/src}/test/resources/examples/psu_update.json (100%) rename {src => latest/src}/test/resources/examples/searchSet.json (100%) rename {src => latest/src}/test/resources/examples/stepFunctionEvent.json (100%) rename {src => latest/src}/test/resources/examples/validBundle.json (100%) rename {src => latest/src}/test/resources/examples/validOperationOutcome.json (99%) rename {src => latest/src}/test/resources/examples/validParameters.json (98%) rename {src => latest/src}/test/resources/logback-test.xml (100%) rename {src => latest/src}/test/resources/results/array.json (100%) rename {src => latest/src}/test/resources/results/bad_json.json (100%) rename {src => latest/src}/test/resources/results/boolean_json.json (100%) rename {src => latest/src}/test/resources/results/empty.json (100%) rename {src => latest/src}/test/resources/results/invalidBundle.json (100%) rename {src => latest/src}/test/resources/results/invalidOperationOutcome.json (100%) rename {src => latest/src}/test/resources/results/invalidParameters.json (100%) rename {src => latest/src}/test/resources/results/missingHeader.json (100%) rename {src => latest/src}/test/resources/results/null_java.json (100%) rename {src => latest/src}/test/resources/results/null_json.json (100%) rename {src => latest/src}/test/resources/results/number_json.json (100%) rename {src => latest/src}/test/resources/results/psu_nhs_digital.json (100%) rename {src => latest/src}/test/resources/results/psu_update.json (100%) rename {src => latest/src}/test/resources/results/searchSet.json (100%) rename {src => latest/src}/test/resources/results/stepFunctionResult.json (100%) rename {src => latest/src}/test/resources/results/successfulOperationOutcome.json (100%) rename {src => latest/src}/test/resources/results/validBundle.json (100%) rename {src => latest/src}/test/resources/results/validParameters.json (100%) rename {src => latest/src}/test/resources/results/validSimpleBundle.json (100%) create mode 100644 legacy/licenses/allowedMissingLicense.xml create mode 100644 legacy/licenses/licenses.xml diff --git a/licenses/allowedMissingLicense.xml b/latest/licenses/allowedMissingLicense.xml similarity index 100% rename from licenses/allowedMissingLicense.xml rename to latest/licenses/allowedMissingLicense.xml diff --git a/licenses/licenses.xml b/latest/licenses/licenses.xml similarity index 100% rename from licenses/licenses.xml rename to latest/licenses/licenses.xml diff --git a/pom.xml b/latest/pom.xml similarity index 100% rename from pom.xml rename to latest/pom.xml diff --git a/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java b/latest/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java similarity index 100% rename from src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java rename to latest/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java diff --git a/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java b/latest/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java similarity index 100% rename from src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java rename to latest/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java diff --git a/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java b/latest/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java similarity index 100% rename from src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java rename to latest/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java diff --git a/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java b/latest/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java similarity index 100% rename from src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java rename to latest/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java diff --git a/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java b/latest/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java similarity index 100% rename from src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java rename to latest/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java diff --git a/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java b/latest/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java similarity index 100% rename from src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java rename to latest/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java diff --git a/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java b/latest/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java similarity index 100% rename from src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java rename to latest/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java diff --git a/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java b/latest/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java similarity index 100% rename from src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java rename to latest/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java diff --git a/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java b/latest/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java similarity index 100% rename from src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java rename to latest/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java diff --git a/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java b/latest/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java similarity index 100% rename from src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java rename to latest/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java diff --git a/src/main/resources/log4j2.xml b/latest/src/main/resources/log4j2.xml similarity index 100% rename from src/main/resources/log4j2.xml rename to latest/src/main/resources/log4j2.xml diff --git a/src/main/resources/nhs_digital.manifest.json b/latest/src/main/resources/nhs_digital.manifest.json similarity index 100% rename from src/main/resources/nhs_digital.manifest.json rename to latest/src/main/resources/nhs_digital.manifest.json diff --git a/src/main/resources/package/.gitkeep b/latest/src/main/resources/package/.gitkeep similarity index 100% rename from src/main/resources/package/.gitkeep rename to latest/src/main/resources/package/.gitkeep diff --git a/latest/src/main/resources/package/fhir.r4.ukcore.stu3.currentbuild-0.0.9-pre-release.tgz b/latest/src/main/resources/package/fhir.r4.ukcore.stu3.currentbuild-0.0.9-pre-release.tgz new file mode 100644 index 0000000000000000000000000000000000000000..dfa8424b8402bad7b9baa30e3dc2f8383ab559da GIT binary patch literal 226203 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 OL^khh->&oXNDoq-Zg5y9Z(lr&SpCU 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 UfhJ85AH8zkF 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

      Jqi-EZy)C|00q! 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 literal 0 HcmV?d00001 diff --git a/latest/src/main/resources/package/uk.nhsdigital.medicines.r4.test-2.8.16-prerelease.tgz b/latest/src/main/resources/package/uk.nhsdigital.medicines.r4.test-2.8.16-prerelease.tgz new file mode 100644 index 0000000000000000000000000000000000000000..9409b9c4a9fabe92e7d2203ed5f2fad7c778057a GIT binary patch literal 127233 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®+nCS?9i^ZSn zUM*Fd@YjVEcB@)_-1p&yEyoy_wkhKU;om9UY62|h9?hPZQJ{Q5My)!~Ht+73<4(64 z#P0__=v2GiKCc${w(q|k^9tonflpiZ_%|9b7m8+t0FN%GC^;p%iDy^N4>?SaPgnvM zvk!*?&c6Wi2_HJ|SBLT>M%_rC(n3x%XB1!=A)2&pm|FWHw#;J1aQo?aw^}dW0{-Kk z;bWp#O}Y*mShDWRdVIT!(D>Y5w(DEk78E{=AOaC$^43DvQJ-HvIGe6-?OUbUjRAcd zVZo!14^MPnmoZ2mjC&0u5&^%fX9-=*NV~FxD+uImtF@@b6W9_O^7_uGqq!Il^-+0x zy}FT@IS5wb!tmXqdJ32%{M>+zeA8=Z$lc|&GFPe%k$RQFrb62C^QjZ*5HUI#lnb4vFG-k zH3BvTXUVB+_lJ~q6C)l`tDQ>DW8sHLbZQ)W&1Ss~0mt?oS=o&d)FV#xBgFnEOe3an zuN}|(@3wW7#Eux(=${DKW6$>@3Es1%J_pyi2s{CvMNoJCB$}16B&N$B0tVw$l>u9_ zbLUcz6qa3{xMK85$Vn&XFcr^qCHW_2_1}2{7O)~BjV$Bi|28xE-l~?i@%-46eQapL zwrUd3(L*?XUevTBFe9qY8x1BsxB01rgcB4td53Zy%RM?Ba$;h&8JPf=H^DjVc)w^>=R)AM8hqxygH2Re^NfqGL#`3h>WoGc9Ya1`a69!%`gz1- zxEcp-cY(IYfU@ms!~R~3h_@=dO0EzZ3jBo}#rQF;bang~VBHV$`xke4q#D0*j_^UN zM#X72$2Z?{1vVQ$6V3~gd*lgce=01Zp#lRCCM$HpLY{4)XM(y7xv`}w6O12_{5LkM6v65L(RX;iV(I-tmd1Y`mt1{i)PJ|Lby zQ;+gHtXXO)rk@lE_FGMhLgWI3@-IcS2nTqmQABP~MjNgrj(z%oV~r>Enc_NE2Bq|E zNP`Evlo{eNg`wGY_W_;)n~GYx7HFX<;PpOPprI+ol=oi|UhVfnpo~4`?Q`0dnyp2|s zK>wT9C!ZXHC8W*|8YxjqYaQs1}A>e$ru&ljerLBgrJ;F%Iv^Q3eH} zIY>{vQ17QezJVB-1im}{F@ovLqsoj#=`=VT@j0e68>OD&OxiuX`#3Uah6fTBa%z6nu&Z)pv$PZ+hA1R0Jbg2* zT|GH{EB{c^lS72^n(5i_APgLa79%{CH+kv&3> zHDtoT{w~P4`A-uFs!*+b4ZlH!9ps`r+lTeexZgV8$qDJ3TS3>R+Q+xb(O~W;Xo4sY zEZZIA8}qtP?qv0^quj91Y@K{;Qc)Ci3|$&MMsFW5NxXC^XeD#!G{l9Yw6X_mLf#pP z)AJ$%W!+HtxZtB8|KmyI)Pyrz;FvGC_ab_1E@AdEVZu#?NX<`GaBQ0vnf%wdut*QS zXRyT7*jLU5DzIiBNl6}_QCkc0XpemV5^mGAK@|Ci_nyyEiPbjvQV7Q<6KO5@`yBiYEuP-py} zf0=xS>ULF%xjcA;ZvuvE#1o{A8sZ?`1j>rE0{v&hRn$CZv9x^^qx2@#KS|jp8Nz5A z$tQMy9yKFR)YquLgRf3C#2UFV!P;r~G#m3*Sq zGD2wriW;WH!Km&?Jk&fGa2-;#F-n-*WcG~1irf%Q{_~=(FYU9d^!Dz(PkCYkiqtOfl+wz(7P*E|DkkNy+csfrF^(YWxMLo*Xc2&OEj;X z-P-TZTD?-l@~{o5gO9h(eof<-zfXo4b3jI@BauT31R`OQ(!B(tWeZ3=VVJw_cgQ`@ z0TSJTalCz@r3{nL>gZ;O@2S3{x3-P)n4__Fm94yG=xn+)lB^F@RSk7#?a*C9A08!B ziUDnBR}S*FFRDI^L|)x$t`+jv0IMpX=dSmoUbBXK2Vd_n z>^vmru2I3goqbivJ&4mU6J1i3PxM0-mo7sUykt+%j1m*Yn`}CG1)u??=0({ z`oQv@af&hTAO#g>JYGq9>tq_X<UHSlRM`yu6J;WC)$kH*QZJr zGH!4deTxe2(FH>1GMnMLza1h2&RW~Rcle}2+F4yua(oTPfvMUr>LJHU8dOB|t{iz> zLX?%$*FTpkL`#~HvX)<^$a7<6m{H48Op?#oZhV$(JXCQW;>?0ppLp;wb13L;bgK)A zae)pU2!gFgz?*@;nCL!}fD@`xef&-2NKA;a-A*B_h}&Qunj+fvztFFS@Z1+sX0e1}ZQ2P#vcf`ivBUC_o*j3+9ekd>M?W&<)7xXlKe#l_nBSN%=2tC6eKU8M{%KF)Olk4X7x+LW<-j!x8IH36lx6_O>&rjnjeO`Bvirdo&^ zBCMv4{)_VA+Q{dRFK_1)#0vtJ_O^l}2Nt|f?{ZzMnbUHqasWl;8d>dq+U#|kH8(!> zC);^L)?QhD+%AEUgoez0MF`PJ!ntMo2iHadw@ZfOdURBZ&_!vomI2G#$vg2lL{Gi+?18lw`o2;Bhn~AJ2fDOLG^fY_ znlb9{2f5j^&HiWa7x}xuC8MiWnLnUB9udFLQvHyGEuiLG?ytfg_G^j2V3LcJnlN$q z=oi`8i#GVB&$ILRaclS*1SlS!b_dRaYmeOV5o0>@4%+!%FkJChUs^4ep=}B9Mo;@v zh%Z3CdAv%$9)bVj_u`8F{YF$&yZ`inJS#uyo4ux z{At%oRCr=x)yVrzA>wQsVB^k({=H&S)WQrf{MOy(Y1cL?k6z5=yz0vxSm6$}P$^on z$q{+LeD2 zrx6S{B%@C4q>ut($W(h*%WJ6cHxN(c&O7`3MbBH`K<=N&_9}*|@tlfLJj$+P28}z^ zoA8LH`$bD=lw`v}(78U|ZJ<({?KPkvrsK-P3zS_ZtvFORMYZ5|B!~yvvKwg2)~dQN z)~L+4>Qh^Y1+-Ln1LwU-%WudB-H_0nRVy|fiq-6Ykm0n!ROZ-wcUIm)S9ug{ewus5 z&Z|DeiXDYklJreAF)5xiH@8aNqk253Ed`H41&>JAxS+GqQXFEDPoG)WVPyQ+k~w}X zxp97XII}SyYPMwQJ(t!qcxk_n2N#NcRE`I=+32gb8aLi#q~k2L?ED2Mtqm}$zW)2O z>dL}zF(Ue;LH3aO^&Q#6v6R{xu2lisWPXmiCkG(>G{HKiVEWNGmDEn!EZN^ z&)k@Ywe{o!D}MP|(=L8_=Ho&03btW`^K#JohH0bd#E|8i#Ve2ZtNl@X-K3=kaSKyOmK{4;f?=UhF(FrH=%d2Lm`f>dM-JeNVb=gDK{mIPvyrOS)@^;K$7@`y-d zK`UxeSz;J;{#GOPKCP;&{isxs>6`}XB7!xO)NN@xB_p!5DqCk8Ob$q4HOu30U8dTJ z8|Ix2J_XS z@uu7=Fz&$fQSEDp4Wo0J%;4r`J63~~nilhO&Z)Bx>&({bRL~+eLzusGVbGFD(-!6~eQ2uTX)XmS`_wsOBsu$-FHbHmKskwf80T}N0L zA9KV=I*x^mgxBsf_c)XlQy0pfQPWtAk6lvV)xb?lpM+0CsOjjh+mx#v!d{VI zA)saat+_R&8X14n5}He%x^oZJY;Kyzrmfuk?)S~LhI?ppOS+2uv>1u4b4ll7sEY?oc4dM{lEjj6|_$KyWMLMt<_o8NT1%9kBQB9v{q5> z>91LLq=>UICzHNKgtH(WHpTEAK~DUWRw?B`UU0!V;flp{;cSJGk4r;vKa$nUXGMrx zD;F*2#%LQ16oNBE+aX+7g>4QZHqgr><%F9E#!8pCNFvbyH4PXyI+5hgvMd zRAF8TtEQyTXiAk6@*_quSg@=yj7Gt9|gG7Ze?_|`XO;oZ_GbA)?n*PNm>0I5V ziOPrUr1=!neaRA-F{%rnc*#QY@m{!V50ZQm6%sg_Yy`xFb!V9xv29gmD)#x}8;MsZ zZDevtVwlwK=RDELoSJohuZ@8og`dm;bZTTRy0(0{lc28TScK3%grUpaG#v<7Hy9u? ztJ3Gt+E1C5@jxf5g`JQe{RxHXom=ltm|jf;-z`VW&x=0c1%3H4TgDtxTqV>cOrs%H zomXHmaU>BBAu{>g6vPL0vz}0~lXQr|h{{!_+^F3BoA`VrJ33zMY!*3p{X3agN5erE zn@5d`eSd;!Jd{Hjm(|PJFR%iBZYM?@by1hp{YO}Bz3pdhEm93TuhD&K&U8z3Y<47F23&Qy@ zaeU7vUQK zZMAREa6Dxe(cN{dY{F~9Cs<^*MLv;J^eb%0Fgl6+CCe;2vV~MkQ4VxOgQQ`C5dv2t zp&gbe6%?tkmux;HiGFmi?QQnB3AN3BsBd6V7t-Xb6Yj5+gX$>LhldaG>IshfwY1;H zevE0YYqPy_K(And3P7*Pkp2HtzdL!zCW8BW*A*bvw8%h~V(^#rp)r_87BN}^{hv`J z9Sfq)KA;x^=~iM>L#TA!Ms{g#WhHI2D1Wrg1GGPu(?frkCFcrj&(;X_BW%4^Mk^S4 zeXJP~h2?6IP_T3hdGY$OBRycESODx z@h`T}X7k|190UGceAPc$3e`UIRe*}027l7#_Drl(Z#2_&6vc{bt3MxYZIG%(lE*LA zV|Mwk7eUQ|RD+txg_@DlR@JzigMK9pFEgGP6+JMlW=*9sPW{Qj5qOKX7hSldx-n{S~|NPSR!c)WWpHh);>_FSv+t z*PA$JCGkQ#3f;-s5ZQ$e``kyPW~rvjTwL_4&VEiQ}N-w8!B3wn~gx+P=lYHq3BoX#%?RwyiN5*EH2Kx-tOxrKoPa^S<9J zriuXgr=9t-8Q9}PQ;w3B>*8U9*=vkF(RY3s@7l)D_3n;4gwYG1n52Uw32s77xjs0 zRbI#2oe_AAD|;Kl2n!B?KAamFk2YqvlT1-_-qEHgEMzko!f6Ze|2+o{0Y5IRrN%Y- z3%G0`^=g&3PXL$?=kavrHGmH%!{*(ajcN6LQP3TNW<#xfMo{oqp%uT-PlGCI|or0}yAeq_d|tcYsA`AXbspOCd7OUJk;pd~h&e*P%1_h zzv2Uz5r5BvR5ZFtJTtcA@R~bOX(iOq`kL}T8VnDOrp(UL&myc#8ngFaq9|!oCZ@znLr|67&$kF5oHX`lQ$KBm~})>%#(Qc=G(9 zE2Ssjw6k*gCqKIG{S{-<^Hg#ntdiG_sGhy6T7T>Q@UckjINExZ$~>t z<^l4F2ByS(cK0TSW7~a0XZlX*z#CKI6{{hMj;-)}vt!x!w&)52oBMiGxUHT2#AnKJ zvm!6>QOmFok<6QzehH`7l9VbEK zk0W%X*zW%?b@PYF1=JIE3OxE>?}4w~`b1Xj2s0T0nm0Hn%K!Wy}`1s!4q2AG3v zq79uADuhZU=2y$O&MOVyNk9d+SQ`SMtdefzhuZNUGF?GF^Pf267I3-#MQo3Kik-&d z&6IK6e_cO{W0V>g`ag#@G;T{~=e;Ht;BwT481=oq2Nd#n^?|$7Q98akYY+PBQ2B9*-KRV9~+| z(U|4jUC93Glq_zY>8mu;qPIIb?`CP0bQOcT|9btPJU=g3e#xGXG|yky5##VDb}w_@ zk@6GGdRYM@pBWr}sU9Yel;Nk~HW4HJSQjjJRG0k~`{sy2`yPoMgY@Mp=RF@EKt}Q| z^oV*Ld}_fhwu9D$kP6ZSNeN=!rw_&Cql-B8?dxvnUeGP}ND4BVKVT~=@HGc9k61_; z_^hH5_-v>SbY*jbF+W>QFt6Y$t$2m5d=>rE+c^&t#Do>Lr*j7Zp&eG6eOeAX_irWy zsuLg{rrG(gH1qGr;+`&x^YV9mnctVK2JVK1_m2tJcdI*9n+4wetm72LB-pUH+kutq%F5d48>YBYef_GID`d;noC0$}p(Rm}LU&>G45nNMEnrJeJcFFI~bn~EVV zO}$X~FH#pXlFChgSbMZG0rpiu-ovTy8udGV6sP%N>I&d{6nIrQrSVs4*?bwn+g0N6 z%qzs7?DA$iXP}csNre3j$kmL0(c}feEUVDOrDO9qoVH5H$`UR|`;?{Je;_jmk2<6s zU%j?Wsv|QXO{xYeL?O^<3qguOf=31K7kJ(i7kI8AMxC?; z?}t8TB3M%`jb?D-FZsI`{u~eLXA~j6U92Ixbz{L-T~mN`^C4HoU5-2VtCWL$%CYvS z41ULV0N>f%;*$lyS-S2LZ*c*C5x3%n zmkzDW5SyU?ZZH+`TXT3LQiu%}u)w`Y_P@z)ERF-S>#=#DQC5*=UL^c1L%Yu}U4+sU zaco>sO61WEPHpp(?ngHtzhm|uoY_at!dL|mka=vpA)sMo@+bS|UR?%Lfq$H5I%GI7 zZKiVn(D)v;%1QK?eBu5CeUD98iz}i@5&gobDp;|*LaNbLVvoym+iOfJ2T2ttJ#;LF z7d+ng<%oW_=u*%QRyBTG!GfLcL0vmw3R^97*P5VFouS=hdR~FmiL8UXYbFqw^vo0y z4bISP@JByRO}zHHa>lB`X*gp-!MAZSsXu&!SBV4%U+lIntD(wpedg}KyDy>ZE#r~( z+-0od>+^Qo z41Mm!db}#=xi?kS)ZUXL>jdG^Jq?|1ZPi09;TP`{(e8kl-_=5eZn3b(;*x?VhUE1J zu}HsjI%J=vWZJ4OdllbS(6Hiw!S01LhMy$gYwLG^^S)0WQxi+>abGLpcytn9E#H}V zBD9j?JfCQT4iC$pygdf{kvxHQ`?B)N4wfcgMBqb*--Clwni^;5Gt`@98f4l8-z3qf zr29--hbe4OBQmoB9eeogPAD28#Kf z;@nsT^xmDIvGm77b0+6x+3ELY?SBGOn6Ng?0iQ4azYH{gMu7|D6W*i)tVq3BXPJ|f zx(MyJPKuMUpvfpHV=|yffo$+nfMH*ujvz^g_vrd8Z1E!=zC$`YvBRul zOS9|_CYS;{{lqjS&`|sAvMlW*P89POq1M;aTt}2W(DN1^)?AfMefCpC9*1;{98A!d z_jo+o;Y6^!*<+iq{Tna%3Eo;6rfbo+8yZMxQ#}1R;3t38{*?3@xyC#}*{L}ya!4q# zdP_tm;EVEcO{(-xPLoZa?NxB5oFSf*+O~f^Q-1E+a=5i6b`J22dsX{NM2bH$HfjYH zUuLs4RHi3YQ`JnJPo>pxF86MuL{iZLk|uCzDp6JKNia<_fbZS6!^^`BB+mb&Q7n0A zBkdn1Vhmpr=4vP@T^sfF8GGj9)atDweCb1TrN7W<$FYDcUbN8&cgjRHRsu>wwFn8W zkDG-2JgKTlH)v|S0L$t`<1^(+}CSA9~56^wT6rWWHZ1Kv}nR^EQ zYd9C4$qUCMh$6clW72$NHVq-@FM_2n~{+yn2pXJ7WATTvS7@*#vdTvJ6?PpQ~Y9=lz z>F^0T%mjz?)R&+D0zd)W(K5Ip@#_L;g@!3J4vFMQU?TF#h@uYA`q=`(-mPM^GV@HG z)Jh(?oUJNm50L|r3LL@r972AnAo&?r)GI+nOKBglDAL$!*VOZx6UR`4qfx?~j|J!=Zl8yE2Hh4EAc$S0ay0YK2T-|L)zzzD_>5t{5$o*7UPn zOu4#>xgNYP-;IeiB7&u+&r984Sj%tL5VW0ChV*mjuV$s&70A}i*M@|jc^9?(oBOln zu@m(S1nNORqbynjUTW9#ZaTr*LuToAp;7E(vNceKrI61a?Z|r0v5JhczCORa+h%`{ z_uo@p+3RTgb>JuRb#Ph~7CIt-FMPC&#|>@m-D;Np}{8FFQbj~lN@_tbq3qux}| z_R{`C;&Zvz3htW};^9LKZyEN&+?dbS69>Q;r95(70;wVE4E}togA|F>bXu@G_Wjr7 zpybre(}!yzLDzy8J3*~!>s7^4EJA@cJs7~geHHp{L()N_!OQZXN%b>{P@=lA&z z663g=Jw?7ue)!YeCzTXm{@CHSC|l_xJH$@SWG+K$D75se@;(x&ZC9-;t%>dA$(Bwc zMz&nT6B0e`pW@4-+fM2)#V1&8t;vSGW=Sk9Wi-!K>RqhJ)}Xl~9d4N11gsA*F`!|t@%bSoywEGFN{N(u5k9AVKkRPf*XPDnlT$3@yw?jVlOa@UENsS!&29((nW}^K&Y^5lwo@&ONnnG99UIxhx?jWD-dqLS=(S~KqxIw zp2&N7@qb{hmQ@|6HQUHA`HLh}#KLmk5=ft9uv?(m)Y5_xlf(&{AYxleG%!&{S+@W|kr;>(2d4XO-QiReLpN?VCA$@fBGkjHbk( zChXy(Z+&`5y$j0Ve$}1DR6sfgeTtZk-K(|$|AX9>h(I@)e z7tM<{h(yjy(RK>mK5xjnW7p=vQjoOr7T(AqV8TgXV{zZo*87bW`~Ia1Dlh-$%G>(7 zk{+kR@gLAnGYx(Q&3~b|*ci51`x^Ld{DVt^B6Q*SoR8`h%Nuqg7!^XUsKnGRrjbm( zrH+X5Q-;T9Y1txUHBj<^kU1wwCcX?Cd_%VW2%mX_F}JFBkWR}rGj{;%!sWdIjA{=* zdUtvxe!6LSV7$qWeM<|JZH3_M^u>);lqN`e@$DRo zKpxXzLxse6}<`?^XRq*UH=^b5rY(bm$L zewEP|F~aJF-&!XBmnF5UHCq`J7q~^mAGnR}&b`u{UuF#z1>)c{Xf9NyRZ~+_1NBkL zcih&&g=p)GOd11-R91+T?4^X8QOu3{ zw+yq6^t^IRc&y&p#H0>sC$*U*^`K9MdGK&?-i@hp(n7*g4XGFwwfhaihCogNOAuOI z1rtt`s8t14&1WOA*6FTg3>6ylA1de;ls`C7_;{!zLS+JxUU1UdbEVe-|3w&GIzO6n zpiI8B^Imhaa9ugFe}aXI8iKdJqBfY!$zy&-A#%=ZMN$0btm?6Hga|tHJOEP2LaI2bIfmv>F+-}Vn69w^howNWru)r>kv$N9cC`Ie z#jnn*G$SFuWjmGSQG3;Sim~4Xf{H{`NN7;pxi%q!a}sABM3&DOP+7o2;k`gX+DMNS zKgpS`S@~clJjmN72O-`~DsTu5hi%zs2smc80V9aW`LcB31~e*>F|3uFTGvO$l8>jR zM{A@dU@-9ifgL7jV+%9sHK z&Q&PE>`8p%VTapP)SB_K=E3lR9+r$-Yc1polH1#bu)4ULcpnq%LQxlCJ6*f&O_LJC zMd0L0@`VFMr1eW-jy8E(3k(0ww+%~|5p$OwQ`cOX9CsQne~lDO{>ls#zg;=St(CR+ zE1Tc-t(D0*{F9Xltk^5tD;ukywguRV&^2WmrX4n03*STZM6-F5ddPZ`Jn^Q9x56+X z`4PF9<|NEclXP`x2f9;!YU$l1l4ci=#u+sJ<}c>oY|IyrO_>PuxNZ?ed>b~GGX%Hi zVDr%kt$_2;;ntyu_6Gcfz_iKe+zWwro_y|sflNUpvyx>SH`!13yo!tm-|vutaPGKs zC^2mWy>H{aK3)Z4qtWAQ3t;g2qveJY8NQ8UEbAS9{{|8+Gl%@dXC#kP>HlFu-{}wS zf5@I%T~7V4Q;vPoZcs48<^v7R17$e=_rIKGRxUC*N~yBsA~5I6kzWM$tXF?-2%xbO z@S#mbSmkK-cnM@I8`QgYuKhu#YgGdWvh*s}Q~zfQd$aVY3xv2^POwt+)^%G4SC>oI z0Ejz`UCNR8Oi*3U0-2BeZ>f-XU>)d{C=rF9i+z(dwn>~dpsJ`mjj)z1B@`;X)&bO+ z3#+CRrP~V|Z6#o&xJA?{!mH)fDff30 z%#?a&Od|~>#ZXKP+|0fn{~Z#;%51i$5Q?I??t;`ov-ReA;q2?f*XxOuAynRMFEiH8 z^`c_CJ$(vGK2@iZ!DvY0{mYp{MrC~1wSh(L#c*g4?1z(w#ARRp?F^sk@-^oFW#?!I zo=o`~QH93wous7GB~k~LA0Ye=$o(Wr>~In-in*L~f(viiQrKNEfIlafG&~0dk_04x zDTbY4In4cH+qBOZ3E0Tc?gQaJ$u`s038#<5=;%H0;crDn18=<{GL>-3StG(mZayMw zfE0-Wu5RpYrQlv%VmefiOaFTYQq(%r=;g#RbRngcmQ#!Qu;`og+J6ME(&Uu_#xQE< zWRa^)bibHnOiqGaZ;IhmDg>Ojj}=CQ0K#*N)Qk*Oko#_FN(y(t2_KP0T1Uv+V{WW( zoB@-Jis4UD=uy0k2+cfsc6nc^ciI;xoSq|=2*2+uo+`lMB||3b!&DxXP91JQu9}e- zp{}`JVYZfPaOhBcHk|g?{Gv@(V?73Whh{(p zJ?dFeT_MlBgn`G$MN!@TI=KD5*ngA{ljEPfKTv(+NuAr>PElQ1MhAi`A39&diueG0x`_g_Iw>7o zcy+lcyPy{P|MB#WLAG>Fv~C-_ZQHhO+qP}nwr$(CwcEC>-PY;%yZ4;Ps8w^#6|sI) zRLsh(9P=4~d+_LR^X~Z4{oJ^oM>CP!60RZ#WSLgL%y2&M`j9Q_7j>lV89Z6C-gdch zl1<*&NpfwZ1z2;Yy;&zXhKUUm*(3alzD;v$oPgarNaL8sE5VYjO}!yd#t?0ygDjf0 z=eb%iy{z(+Ui5IleB-BBCTr`5D=_gio14#GE!s7!Ct_NXMbJs{qy(I-F7OyL@jbwv7 z7@>0U-hvx#Yg&Wv5eIS$+b{s~dxm@Fnz~_AkRtL6yc8J7NBQ~?%QAv36v@qI@S%dt z$$+pSUgY@{kVa(v!WHt$PbsJ(7R~2WA_|&i&z#|Mslo#BAOTq(zPyT)>9>vM*qyqq z(dy~L-`1EIguI&v0{>`32y<3#HT>7HI|@!f;5K&>QKd9B>!3(za!F{$uu@i2nvvmZ z;AZ?Fepc&8`t;Wi^k{7WW!)Lxcx55(LPzHQjA!!H2f4QNzX5493D=2!q&X+OXx?5G zO&8!daZfSnS>KJbN@P;^#=gl^4$I#|05QbhY#ZYcV5nUNY;i@&czP;Tw;-a~=`O}J zZQ8xj|8dDWGNgdLKNzBlJs=6wNj`qFk2W=+l@>}F#dB1Y^UYd=?I6=(Wcb%eKZ~RH z&_y~H+uUj;lA^5jR|4G~DD-*l5bV2K>m*f`H)m$6GIC>@<~z*#1XUR+tAix9EkouDBf;`p&rdV6RGm&Aq(kyPFwylx*8NA zq#CCKBea45O)y~tA+)j}#&0y|4ySgz#BcQ8k3iJueWHffz;9Hg$(2sI7B}YkFGYRS zkc9^ueC@Cs0A^Mq06A<}#PzfqJ8ub#F9v2Jhdpz?T4eiV$_KH)LB956P9V;zH-7vw zo|84^SSku`$3{r(NmkXzdSePBkoBfam-|`|2260_5l-bPFhLz{Re4XHj0r!cj3-oJ z2t=_KL43rIL~6OChP$KgZ*uJc=7zefwi<4_!*@poTeqLH#6vO0+<8({fSzs zZ7$d>Ctjr_4aGUQ!V_ayp~a61>coSQ&?wks2W30QSx}x?w^R_*yrIXpBDZXXQCEse zdNBq$756d{KVXRFz`ewwEcwM$Ve~hw90A>Xn$ddS`xId=F3b^I)7N&u${dyc59DAd~Y}va}Gi` z&i(cO^_#L;;e|Um^$HezuGX86Lvxhh^v5VRE0klKCg6b!iS0?kKD|UC3K&)x{jaH4 zu%T(2nVqY;b}z%uSmb(6EWRA;JTCqlRjhJ9WtQnaE?MPXU}XO9T)C|$@o3D_4HR)f_k&N0&x8F9&^6=h1QdJckTRyu+Yc3mFj07v@986{j z?RQ*sx^^C)$|1#EL_q~@z!0HJ=GKP-mV%kkvdbrS_r%6F;f2kKuL=mB4Z`P0pI@Pk zohMz4*cMog3zmi|3x&(DiB}Ju!f#)&Y7%v}jkssEAhC7Brfklh4D+QU2N4ksbk;uO zxPV1%)@87BiRVTm(|8?6t6Y}eqafMZf>vup_804r)Z_xz*)EWalnV>@pb#Lw%k}=Q zGK15P3)`GLfE1Q&QKK*79(FaeM¥w8~#>Fw^r!Ts?(-HA)pH=|x4(vCxM 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%0DoPEITW~(IR-~J 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�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

        Jqi-EZy)C|00q! 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 diff --git a/latest/src/main/resources/package/uk.nhsdigital.medicines.r4.test-2.8.16-prerelease.tgz b/latest/src/main/resources/package/uk.nhsdigital.medicines.r4.test-2.8.16-prerelease.tgz deleted file mode 100644 index 9409b9c4a9fabe92e7d2203ed5f2fad7c778057a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 127233 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®+nCS?9i^ZSn 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¥w8~#>Fw^r!Ts?(-HA)pH=|x4(vCxM zYMQ<4z5d2+c%B^5`2pc-RaUJiou)eZj9J~R0D%ye4}Z}AExIH#@}zTrQ76#1bCSvA zFn6OoF77R&h9^VE6|Bg&h+y)2n z4;&V|dr+1$Rss1&mg-+$V4OV| z`vZD>@`pbas>s5k!t8{B`cWhOqc(%alyJv|K-LZe!di%&dJb%L>;~u)Yx2D_L23FA5+KNXebpmi}ocR zAK9@l?%9(!ZqX7rqk=}5^6oD|S?PGs1%HW)D+#Iu?Ib6?gdWPmntDiU2?5PHh0%PG zGn;1y?KNDFop9pq+VTWI=iP5>!*_$~TrMDSWeXZEw5JNaZ zzy=T~;EU0hG=z=7a5C}0lqNqBUn#Utf*imw531Ap-lbL>BoK%ZLwWsF%R!3OvM{bt^gy#TQy$n9Qtqe$-Lt)Y1vhjZw*;)Yq@#WSXTtuGLRRNQ2ow1K?VkzhU$XvqHvRuc2!o*o477Np?b z5(HElgP3`Yxtwn9$3_3Cf zQd8gQ2FDbtFnCj@H>Dp0R)J$}H**;nE4p}ri9U`@d85>_j-9i1$Bu@A-w5&Ow`NN< zb_hy0je8|oAxPverFk+lgEi8p7ceczs;$7s(K(}zHM-{#Z?pgxFe$WtJX^>GXB<#m zV+WY3eqU@mey;J{JbNKp8%%s&h||xbPQ;VuW|+#*FgH|hAF;zabW;5VlJf{zplX~y zZfQ;HI{-wz5D*VyfgVJpqL#Eb7khz#pCV}BRH}|eg>psRsu&KehTR_aCyf%-z)?o+ zLO{BWsJH#x`tQU?)N1M9%|DwqS>Gd4#Nu zzCQ?)hIi12lGb3Fen^PF3Xm98sy$v&yv;?BJ$2lX>4(9cwwDc?8>M}1_n^&VIwq_I z=w55YfZ#J(FMg^QCN*vzTSJb$r|=Y{_s4hQ{Zp|I8N5$fr`#}3wjf#`HEAX9f?(!H zlVJwPi19)K9jUP|s=4@9V-|M)+&fqS z`GyiwkOJW`U_NF1o}q|#_JJPrw+bm_*0%7BP0D&zDZp`+@kV4YmO%HhquZ~{C?Hbc zp(;PB95~hg`-XO)6$ka{CZ|RrQ3e&EB{Scb)c!>BpEhU;F%Tb_-*3d?*4RJvvUgZ) zk#y{5H-!fpF(yM2hsQeLQUoJq-+c?fc3TkGmggPNmZRwRn3^1@*-7>-h{1brMz#5D z-gq^+7;aJ7mvEa|r^qeloO$uUxL}kMBymPCb)c-Hs~5yJDOR5Ua~76;z&amd;l;Sv z8gJ>g>+3l4Ymsv$V5;H+Ypk5p>R|lkJ)c?I-dZzoxG~xiWA$ zJGI@>dA)=)(L!Ty1K!?h(4^nwxqurn^FD~R=YqO2V2T0NG64G>)z%BIuc5Dz!>B|p z50oE!Jhy=iZG*0&`LQEIHk#N%5Sn=7cdhri%~F3s5_$u%2C;YI-^E& zMh%z^{9iDZ@WjtvC@7UI_sQ4MyQC`G)IGLcgguoYCpd(dqS)P#!OI_;UAZ`}e)4BaYcG8qs2`~3VG)DD3NX0* zw(q%G+4-00n^fj0+S|Yo%x7;6=(5^?(!l~2joaAMN#BNpb$PS4wiip2Ux$-59c(Ys zh#=ltDA3r#ar2m1qmm*i-fBfoyy+trZ!M$tYlMIfH(_dR_KSST+hH{z_rJ~b{S)Oh zZwUl?J-Q$SSEEUiP>SnnAI|nyyu#j9y~Ot=1Klu8|1hLQqiKu+5V&FYS1JAo1@QYP zzJmjWh^uAnjzn>EfoZ<(`+A`}?3&Ru`XcM++eU?%N7%na zNk+al&|=yF56mw1iH-}^le)+_$ph24nPo2l%znnW5R-S^y$a^pTJghE>zve)3$;R@ z0Sf!{egmK|NNiI3^v&)6hU=*}sxARTAh1fF;{66IZ9uS#%`ab$>8dPUfJOOmxw~W$ zZ(_m)gaxDq3n+GZv>_BlYKM@m2sJlA{yIRe9c^DlYb9`NCDU|Ro0y8Tolf7tYlyiR zYn*dnElWW%Gh$fX6Qzl~5O$qPmtQSuO9eqgRH|-jOln)v%TK2J>GjNBioYw>JD;L+ zW3Qh?({iCCbj>RwI@Dst$&Og5aE?snEcRMO(@=&H-`dJoF<6`?r0@L`x@}i2-3C=_ z&`PanYSo701WPQ=Qk^h5@hOyv)j#=UzV^!G(OsJ{Gj@)+k8IuG;Q@k3zedTHT=GoR z;u-x5m<*fg_j_sURnd;G93WVn<0EK-<&y{)Kb*_!tqtD4c`GvNz>FLq~1K4%qLWs+GIviNGXOtGoJsL-@Ca-9*rK7F|M zQ8nVdpPLXp^*ZeL`bOPar`^pS0=6G{SV}E;2YrM#6iRMVX7JbD5w3~W1Q99Mb&O&T z)}Jho1(z#S2#J2{^lpQTb`^Etu`5_aA_A4~je1TX0}GU7_;4!*K1!1dgpnHf^4V@R zY4hft?swb+N*+?HMgVaKA?qg#_AgL_N&s0@qZ=acO9Y%wAVSc3gkk_UkYegr6Y?h| z17M96EYww1Hc-YyaSZ*i|6=LhelFKBi6jSkl>Fy1CUYlYY+e?i2`LC z`x_ur1ws}o>vrqqAwy%8pg~=#<#pEkx(Y#Eo^~dMJYDAY)%$+0psmn3zwa7-#h!;V z81LRM5sj?^sTc*+dvx?@KoIeDoQk}d>c5CK8n5nka_gsUf8uW(U%z?m*WwZjclAYk zV#)h`I7S56PbfHpvJ4P8;X{P12f z`tD4~3InIZJ*LdDV=0Ie_bABAig3|+Qki9}EuGpXAH_d5-X0L1oq*)@uMV5IFFl!crN#XLP-H?g!rrh>-|kuh_Xb!7s_KlXzC;mX#-?qghU} zh);6_RI)X+#AI}tlzt+1Qc%LRwgj`Cgp=hcRW!Rj@-GWLt9YkF^Ryh!&JD=T3^ZLb zaDU46sDOGfDDoUQD0v`!^8Q=9cJc!Y#_`#<7eb`Nx%&i#*L){HHpVvzo};t>CH7lk zaHU~`3E)HPg+Rp<<{xyD-OoEK9X6g{Yc0O^gBxZMF7MU=8z-krzn&z;`#gbzT73jv z7+r{wnejQN!HZ@6)z1bd@~ThH*p+;C?@8owtu;Qi)|l|E^G0ZNiW-uHSkIy$FlL** zqo_3bCAKbG3I)3Cq7x^3nxLWV8jkB{gZ8wd*(TOdHRHK<{++R_J)vUMP(< zSKA8LKY0Ghcpg%*=^8YtA%RO{(O$9Ffa_(;ZLfZl(_X>p1^sWTsBP0$M~v1AHjO1< z3X>VtyxO&$2=fw(&3{>m9V}*BV(7*i)VP#qf|mA{$~s3G^a1;emG7u{3rR)Q_U) zpZRje|9Jl*i#mb)u5QefYnk+z?$aS-fn%Q9INYe*s#rXzKapbxcj~KVfN{$paU=T; zd;g2X1HK1!7RHj~PN<*#hGL?`o`%Y^sF8@z6jIie$*UEIlh$npCI_Rhip+DF?pY&p z&oDS^$6~;4)k;kFnp963*gDWUl})RAFfST0XB6w6OZBFnRJCm@kGvO6wEs%lTrdOr z-;(wRl&@d(eL!EV2z)L|4NfP3KQObO_Wd%1A)lsMc^f;+P7VsWGj*=bN3dsN>BW0b zf5*ziB#~OgS^-{52B_hbwZ#cEX8D6XPN{zDB zIxhgc!9};Bq(y17;wM>+3uC5TR!1Xe$PZZt3Pd$JTDgFho-SF3}D*msz6ps9kyoJj)>3#|;@%gNnucJ?@ zO@Pvi$Szsv$AOSSUgykpT|}H@>_eOFZIeF8>wd>80TE!ra)hV&E#IS#YHyz}#G!G{ z9?Sq%ARCAs#7?~)^bUM?fv@w25?VKb`_MiNWcPjn`CX`Gr?#Cq{V{boy=I-rmoCy6 z#X+>A@F7SOGh%e;k@${0R9cGpI=X1aZm_NI@@hfYY%a+J*_s>aMzWqt7j0q%M3;}G zTtEbrS-N7k<#sPXsu8$FV;*x^Hcp1%J~y3ODd^gf?Rw^D`?CrwIIrU=0T36FBMIs}lV@Lc)Dy`rik zGVT?(u4rpBfi32%RxNwt?fEJbn=fc`wUj*Ex4|?i2F70$)H>pb5x2TJhodexrCVTYx{;38P zCZIUSJV~W?tps4=Au$%8YHXKCr1}tvakBe(OIZ|))22L>2G0<+x~YJ8egN1Ed9~y& zi5@5Melx58lsrJ|3jOJOZ$hs z@5}98ZylD{n{?M)hp+TD$s7O7y#7v)Pkg7H&ChJYcbda-z0@ibs%fh;4_@Oh1KJz> zsOb#4;P|r}&9gyzlwN($QOQ+E!)u{w=9Q^XoI}Ibi}RL^-6H!i{Jlbw z*BtO5X)8Ub!QMJRmH+_vE*u~7`3c#B{&l{=f)L%vQ$x za7eEW@a7)~h$x`2j4}X zVU_^lYzBt|0&RXv>$43yNvL8Ky^zhc>$W)9iBe_#L1Vd%KO4p|A5fRFC2c9J0lC&f90e>Sc@&ymhaFUgVzp7&SnhxZ4&2TR5Z&=lyoREH1P<_^JMv`GxlbEBvV&<3O(G25 zdmgIRBC;Uj&^-PLPyx52wD#C%8VPaUaQjV>Yi3&X`!-@s8ua^bxJ(-PBgZl`Uvrez z7H=ad$klE=iGiOHwZ-{olC{P9Za-8MAL0X+u;oLbs$Htc`cX#b2gZ+z zeoc20jyH0DzGwKqEfUSs@&}34(f!^9=%qbRPeq12!xL7&L?0WjuQ#-*x@*!--NC{h zZJHSv2pCe?6UQbglPlnu~~#5?1zg8IJfciofv-N1`1(slqQjUwN$SUW7YC=oMc z+vmCm?t{NVIjUP07>-A{pG)LJARU*K+Jc$0NNppsugYxK0^Od8s8+;OluiZX`~-X< z8K;9#m-uikoUi6|rP2q_nGqh;1LSp_+oRclYwCjXJ@h0yy&H`}Q|8?Ht{>BnDbpI% zC`zDSL=}8v6+r}cWUg!np6A8B+GGT^opdbtV(eDH1$7c~Q}<5J>1NuX4w>WSC4ROQ zBlgN#X@Zh3q+CT4S-w(FAly=(i(griDyA&8%UP&ddO()anMJQIzP&BEJxB48Ite?) zy_yiS>p;24Jt3u+>Tv}{3dI+tcoSv%;BguNFH#o9hS9eSjmEt;%e@vIbs`mEB^svn zrQtGN`F?(%@2Op=e+R6VUT-iM3c1<%;@l2PYE4FJ-5LSe6=ydP41@H1bmJOV%lOa6 zY|xb6z>D6XOTwt| zGr@|!N&YX)z{@nbgwZI)?(yPXQXB|&xpc3&BG=W5e!%8aUg%V=vZ zk2UA_-d3Kjy(Njhy~n}XdQf`{fbESi{#N6s-+1;glKl|wtWnofbrhBIcX59=L7WB5K2W^Ua!bZ7U(TH(yd?JBLO3wd2&6Asp;796Taj zamkj5a^&lpL|!Pn8bEwqi^SF>SyqE5DnZeDBw#?6#{vrbfjGQgr&dJ?roSM7xtknVAch5hB-$ z<#uhaf(J+qz@6Lz@&0ezxCZ@>S+(5UF8`ZS{fX~~YZD2;i`*r@q zv2z~Jx&DxIIEs_4)gw4#|E6Ebp7HuQ{5g!lJewn(B{|`~>X2zt^Nu#?Dz}h2*dZ>; zLS}#Eg#o#aerzLaEnySJ39qbEQV~d1e;$<{BHdf=p>&MaI{(ZPPccn6)_Kb(lJF)` zLkV}>?|{X3+;H&$_B;SLQSsgEyFV$He%gQwDwXv-7D31$IfVJ0l1Lc;G8-!=$}pxe zqg=VBGmH><-mn1G6DEE_@RPcpg-+^FA(5L8r1bfiatJqk=Rsy%0DoPEITW~(IR-~J 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�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

          Jqi-EZy)C|00q! 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 diff --git a/legacy/src/main/resources/package/uk.nhsdigital.medicines.r4.test-2.8.16-prerelease.tgz b/legacy/src/main/resources/package/uk.nhsdigital.medicines.r4.test-2.8.16-prerelease.tgz deleted file mode 100644 index 9409b9c4a9fabe92e7d2203ed5f2fad7c778057a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 127233 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®+nCS?9i^ZSn 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¥w8~#>Fw^r!Ts?(-HA)pH=|x4(vCxM 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%0DoPEITW~(IR-~J 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�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 C*4h97 diff --git a/legacy/src/main/resources/package/uk.nhsdigital.r4.test-2.8.17-prerelease.tgz b/legacy/src/main/resources/package/uk.nhsdigital.r4.test-2.8.17-prerelease.tgz deleted file mode 100644 index a9ce96475e63b85ab4910b64df57c30800497344..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 373290 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 |Jm;7;1>i0Q=Z;# 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%0AIsM}#BIwr9JvH3vdx{CO;gk|xZmLtOA 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 z`*crsvlakE$d4Ill`j&}e6000000000000000000000Q@&k S0R#|0fB^v4D!x|$I41zvkqg2A From 1ee513450184f6122f5a6d870369b424e30134a6 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Sat, 3 May 2025 13:52:12 +0000 Subject: [PATCH 07/35] fix makefile --- Makefile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 4d087096..1379ddda 100644 --- a/Makefile +++ b/Makefile @@ -34,7 +34,7 @@ lint-githubaction-scripts: # test targets test: download-dependencies - mvn test + cd latest && mvn test check-licenses: check-licenses-python check-licenses-java @@ -42,7 +42,8 @@ check-licenses-python: scripts/check_python_licenses.sh check-licenses-java: - mvn validate + cd latest && mvn validate + cd legacy && mvn validate show-unused-dependencies: mvn dependency:analyze @@ -67,7 +68,7 @@ deep-clean: clean # build targets compile: download-dependencies - mvn package + cd latest && mvn package download-dependencies: poetry run scripts/download_dependencies.py From a75fa3771a8f4bfd1fa711876b1417990eb1478d Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Sat, 3 May 2025 14:03:31 +0000 Subject: [PATCH 08/35] deploy 2 lambdas --- SAMtemplates/main_template.yaml | 61 ++++++++++++++++++- ...ndlerTest.java => HandlerTest.java.ignore} | 0 ...=> Validator_nhs_digital_Test.java.ignore} | 0 ...ava => Validator_uk_core_Test.java.ignore} | 0 4 files changed, 60 insertions(+), 1 deletion(-) rename legacy/src/test/java/software/nhs/fhirvalidator/{HandlerTest.java => HandlerTest.java.ignore} (100%) rename legacy/src/test/java/software/nhs/fhirvalidator/{Validator_nhs_digital_Test.java => Validator_nhs_digital_Test.java.ignore} (100%) rename legacy/src/test/java/software/nhs/fhirvalidator/{Validator_uk_core_Test.java => Validator_uk_core_Test.java.ignore} (100%) diff --git a/SAMtemplates/main_template.yaml b/SAMtemplates/main_template.yaml index 3411097a..3c96d3b7 100644 --- a/SAMtemplates/main_template.yaml +++ b/SAMtemplates/main_template.yaml @@ -75,7 +75,7 @@ Resources: - x86_64 Runtime: java21 Layers: - - !Sub "arn:aws:lambda:${AWS::Region}:580247275435:layer:LambdaInsightsExtension:38" + - !Sub "arn:aws:lambda:${AWS::Region}:580247275435:layer:LambdaInsightsExtension:56" Environment: Variables: AWS_LAMBDA_LOG_LEVEL: !Ref LogLevel @@ -88,6 +88,49 @@ Resources: - LAMBDA_INSIDE_VPC - LAMBDA_CONCURRENCY_CHECK + FHIRValidatorNHSDigitalResources: + Type: AWS::Serverless::Application + Properties: + Location: lambda_resources.yaml + Parameters: + StackName: !Ref AWS::StackName + CloudWatchKMSKey: !ImportValue account-resources:CloudwatchLogsKmsKeyArn + SplunkSubscriptionFilterRole: !ImportValue lambda-resources:SplunkSubscriptionFilterRole + SplunkDeliveryStream: !ImportValue lambda-resources:SplunkDeliveryStream + EnableSplunk: "true" + LambdaName: !Sub "${AWS::StackName}-FHIRValidatorNHSDigital" + LambdaArn: !Sub arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:${AWS::StackName}-FHIRValidatorNHSDigital + LogRetentionDays: !Ref LogRetentionDays + + FHIRValidatorNHSDigital: + Type: AWS::Serverless::Function + Properties: + FunctionName: !Sub "${AWS::StackName}-FHIRValidatorNHSDigital" + CodeUri: ../legacy/ + Handler: software.nhs.fhirvalidator.handler.HandlerStream::handleRequest + Role: !GetAtt FHIRValidatorNHSDigitalResources.Outputs.LambdaRoleArn + SnapStart: + ApplyOn: PublishedVersions + AutoPublishAlias: snap + Timeout: 600 + MemorySize: 4096 + Architectures: + - x86_64 + Runtime: java21 + Layers: + - !Sub "arn:aws:lambda:${AWS::Region}:580247275435:layer:LambdaInsightsExtension:56" + Environment: + Variables: + AWS_LAMBDA_LOG_LEVEL: !Ref LogLevel + POWERTOOLS_LOG_LEVEL: !Ref LogLevel + PROFILE_MANIFEST_FILE: nhs_digital.manifest.json + Metadata: + guard: + SuppressedRules: + - LAMBDA_DLQ_CHECK + - LAMBDA_INSIDE_VPC + - LAMBDA_CONCURRENCY_CHECK + Alarms: Type: AWS::Serverless::Application Properties: @@ -109,3 +152,19 @@ Outputs: Value: !GetAtt FHIRValidatorUKCore.Arn Export: Name: !Join [":", [!Ref "AWS::StackName", "FHIRValidatorUKCoreLambdaArn"]] + + FHIRValidatorNHSDigitalLambdaName: + Description: Name of the FHIR validator NHS Digital lambda + Value: !Ref FHIRValidatorNHSDigital + Export: + Name: + !Join [ + ":", + [!Ref "AWS::StackName", "FHIRValidatorNHSDigitalLambdaName"], + ] + FHIRValidatorNHSDigitalLambdaArn: + Description: Arn of the FHIR validator NHS Digital lambda + Value: !GetAtt FHIRValidatorNHSDigital.Arn + Export: + Name: + !Join [":", [!Ref "AWS::StackName", "FHIRValidatorNHSDigitalLambdaArn"]] diff --git a/legacy/src/test/java/software/nhs/fhirvalidator/HandlerTest.java b/legacy/src/test/java/software/nhs/fhirvalidator/HandlerTest.java.ignore similarity index 100% rename from legacy/src/test/java/software/nhs/fhirvalidator/HandlerTest.java rename to legacy/src/test/java/software/nhs/fhirvalidator/HandlerTest.java.ignore diff --git a/legacy/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java b/legacy/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java.ignore similarity index 100% rename from legacy/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java rename to legacy/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java.ignore diff --git a/legacy/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java b/legacy/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java.ignore similarity index 100% rename from legacy/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java rename to legacy/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java.ignore From e8a04a1e405d74b9f51eac281c8f9a33db9d0d22 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Sat, 3 May 2025 14:03:39 +0000 Subject: [PATCH 09/35] fix sonar --- sonar-project.properties | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/sonar-project.properties b/sonar-project.properties index b6d4e47e..1f9904fa 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,14 +1,14 @@ sonar.organization=nhsdigital sonar.projectKey=NHSDigital_eps-FHIR-validator-lambda -sonar.sources=src/main -sonar.tests=src/test -sonar.java.binaries=target/classes -sonar.java.test.binaries=target/test-classes +sonar.sources=latest/src/main +sonar.tests=latest/src/test +sonar.java.binaries=latest/target/classes +sonar.java.test.binaries=latest/target/test-classes sonar.host.url=https://sonarcloud.io -sonar.coverage.exclusions=src/test/** -sonar.cpd.exclusions=src/test/** +sonar.coverage.exclusions=latest/src/test/** +sonar.cpd.exclusions=latest/src/test/** sonar.java.coveragePlugin=jacoco -sonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml +sonar.coverage.jacoco.xmlReportPaths=latest/target/site/jacoco/jacoco.xml From 83b23741c4445ca3fbc4a2becb8450c210e9b2c0 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Sat, 3 May 2025 14:10:39 +0000 Subject: [PATCH 10/35] deploy inside a vpc --- SAMtemplates/main_template.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/SAMtemplates/main_template.yaml b/SAMtemplates/main_template.yaml index 3c96d3b7..cfb469b9 100644 --- a/SAMtemplates/main_template.yaml +++ b/SAMtemplates/main_template.yaml @@ -119,6 +119,11 @@ Resources: Runtime: java21 Layers: - !Sub "arn:aws:lambda:${AWS::Region}:580247275435:layer:LambdaInsightsExtension:56" + VpcConfig: + SubnetIds: + - subnet-0df16e0ac5f81607f + - subnet-0fee41653b358c179 + - subnet-02f13219e4528459b Environment: Variables: AWS_LAMBDA_LOG_LEVEL: !Ref LogLevel @@ -128,7 +133,6 @@ Resources: guard: SuppressedRules: - LAMBDA_DLQ_CHECK - - LAMBDA_INSIDE_VPC - LAMBDA_CONCURRENCY_CHECK Alarms: From 15e3e3e131a235471c2e582856e9d5c08aa1a3e0 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Sat, 3 May 2025 14:11:58 +0000 Subject: [PATCH 11/35] use correct simplifier packages --- legacy/src/main/resources/nhs_digital.manifest.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/legacy/src/main/resources/nhs_digital.manifest.json b/legacy/src/main/resources/nhs_digital.manifest.json index a26b3c6a..c39ca89a 100644 --- a/legacy/src/main/resources/nhs_digital.manifest.json +++ b/legacy/src/main/resources/nhs_digital.manifest.json @@ -1,14 +1,14 @@ [ { "packageName": "fhir.r4.ukcore.stu3.currentbuild", - "version": "0.0.9-pre-release" + "version": "0.0.3-pre-release" }, { "packageName": "uk.nhsdigital.r4.test", - "version": "2.8.17-prerelease" + "version": "2.14.0-prerelease" }, { "packageName": "uk.nhsdigital.medicines.r4.test", - "version": "2.8.16-prerelease" + "version": "2.8.21-prerelease" } ] From 7e00d36d28fa5ba243ed521da0f9f9281afdf9c6 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Sat, 3 May 2025 14:49:58 +0000 Subject: [PATCH 12/35] fix check --- SAMtemplates/main_template.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/SAMtemplates/main_template.yaml b/SAMtemplates/main_template.yaml index cfb469b9..28eb829e 100644 --- a/SAMtemplates/main_template.yaml +++ b/SAMtemplates/main_template.yaml @@ -133,6 +133,7 @@ Resources: guard: SuppressedRules: - LAMBDA_DLQ_CHECK + - LAMBDA_INSIDE_VPC - LAMBDA_CONCURRENCY_CHECK Alarms: From 7812f1e8ee17ea2ac603857d7a5d7273c475d730 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Sat, 3 May 2025 14:57:07 +0000 Subject: [PATCH 13/35] fix export --- SAMtemplates/lambda_resources.yaml | 4 +++- SAMtemplates/main_template.yaml | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/SAMtemplates/lambda_resources.yaml b/SAMtemplates/lambda_resources.yaml index c3802884..9e7bef28 100644 --- a/SAMtemplates/lambda_resources.yaml +++ b/SAMtemplates/lambda_resources.yaml @@ -60,6 +60,8 @@ Parameters: 3288, 3653, ] + ExecutePolicyExportName: + Type: String Conditions: ShouldUseSplunk: !Equals [true, !Ref EnableSplunk] @@ -132,7 +134,7 @@ Outputs: Description: Lambda execution policy arn Value: !GetAtt ExecuteLambdaManagedPolicy.PolicyArn Export: - Name: !Sub ${StackName}:FHIRValidatorUKCoreExecuteLambdaPolicyArn + Name: !Sub ${StackName}:${ExecutePolicyExportName} LambdaRoleArn: Description: "LambdaRole ARN" Value: !GetAtt LambdaRole.Arn diff --git a/SAMtemplates/main_template.yaml b/SAMtemplates/main_template.yaml index 28eb829e..63105656 100644 --- a/SAMtemplates/main_template.yaml +++ b/SAMtemplates/main_template.yaml @@ -58,6 +58,7 @@ Resources: LambdaName: !Sub "${AWS::StackName}-FHIRValidatorUKCore" LambdaArn: !Sub arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:${AWS::StackName}-FHIRValidatorUKCore LogRetentionDays: !Ref LogRetentionDays + ExecutePolicyExportName: FHIRValidatorUKCoreExecuteLambdaPolicyArn FHIRValidatorUKCore: Type: AWS::Serverless::Function @@ -101,6 +102,7 @@ Resources: LambdaName: !Sub "${AWS::StackName}-FHIRValidatorNHSDigital" LambdaArn: !Sub arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:${AWS::StackName}-FHIRValidatorNHSDigital LogRetentionDays: !Ref LogRetentionDays + ExecutePolicyExportName: FHIRValidatorNHSDigitalExecuteLambdaPolicyArn FHIRValidatorNHSDigital: Type: AWS::Serverless::Function From 2dfffbaccfd023c63dc49a66c40b29db157d17be Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Sat, 3 May 2025 15:46:16 +0000 Subject: [PATCH 14/35] create security group --- .gitallowed | 1 + SAMtemplates/main_template.yaml | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/.gitallowed b/.gitallowed index 9f33d492..30913cc5 100644 --- a/.gitallowed +++ b/.gitallowed @@ -9,6 +9,7 @@ id-token: write # Allow CIDR blocks in CloudFormation templates and related files CidrBlock: "10\.\d{1,3}\.\d{1,3}\.\d{1,3}/\d{1,2}" DestinationCidrBlock: "0\.0\.0\.0/0" +CidrIp: 127\.0\.0\.1/32 # Java corretto is not a secret .*java corretto.* diff --git a/SAMtemplates/main_template.yaml b/SAMtemplates/main_template.yaml index 63105656..7ed4687d 100644 --- a/SAMtemplates/main_template.yaml +++ b/SAMtemplates/main_template.yaml @@ -104,6 +104,15 @@ Resources: LogRetentionDays: !Ref LogRetentionDays ExecutePolicyExportName: FHIRValidatorNHSDigitalExecuteLambdaPolicyArn + sgwithoutegress: + Type: AWS::EC2::SecurityGroup + Properties: + GroupDescription: Limits security group egress traffic + SecurityGroupEgress: + - CidrIp: 127.0.0.1/32 + IpProtocol: "-1" + VpcId: vpc-078cd165c7acf6f63 + FHIRValidatorNHSDigital: Type: AWS::Serverless::Function Properties: @@ -122,6 +131,8 @@ Resources: Layers: - !Sub "arn:aws:lambda:${AWS::Region}:580247275435:layer:LambdaInsightsExtension:56" VpcConfig: + SecurityGroupIds: + - !Ref sgwithoutegress SubnetIds: - subnet-0df16e0ac5f81607f - subnet-0fee41653b358c179 @@ -135,7 +146,6 @@ Resources: guard: SuppressedRules: - LAMBDA_DLQ_CHECK - - LAMBDA_INSIDE_VPC - LAMBDA_CONCURRENCY_CHECK Alarms: From 236b643596f1d58c083f3b4779429fec06bcc9b8 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Sat, 3 May 2025 16:12:55 +0000 Subject: [PATCH 15/35] more policy --- SAMtemplates/lambda_resources.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/SAMtemplates/lambda_resources.yaml b/SAMtemplates/lambda_resources.yaml index 9e7bef28..69f6fbfb 100644 --- a/SAMtemplates/lambda_resources.yaml +++ b/SAMtemplates/lambda_resources.yaml @@ -92,6 +92,7 @@ Resources: ManagedPolicyArns: - !ImportValue lambda-resources:LambdaInsightsLogGroupPolicy - !ImportValue account-resources:LambdaEncryptCloudwatchKMSPolicy + - arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole LambdaManagedPolicy: Type: AWS::IAM::ManagedPolicy From 87bcafab0bbbe11b70e383f567579dd29327c087 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Mon, 5 May 2025 09:37:21 +0000 Subject: [PATCH 16/35] allow all inbound --- .gitallowed | 1 + SAMtemplates/main_template.yaml | 3 +++ 2 files changed, 4 insertions(+) diff --git a/.gitallowed b/.gitallowed index 30913cc5..f5db9f20 100644 --- a/.gitallowed +++ b/.gitallowed @@ -10,6 +10,7 @@ id-token: write CidrBlock: "10\.\d{1,3}\.\d{1,3}\.\d{1,3}/\d{1,2}" DestinationCidrBlock: "0\.0\.0\.0/0" CidrIp: 127\.0\.0\.1/32 +CidrIp: 0\.0\.0\.0/0 # Java corretto is not a secret .*java corretto.* diff --git a/SAMtemplates/main_template.yaml b/SAMtemplates/main_template.yaml index 7ed4687d..45aa5bf5 100644 --- a/SAMtemplates/main_template.yaml +++ b/SAMtemplates/main_template.yaml @@ -111,6 +111,9 @@ Resources: SecurityGroupEgress: - CidrIp: 127.0.0.1/32 IpProtocol: "-1" + SecurityGroupIngress: + - CidrIp: 0.0.0.0/0 + IpProtocol: "-1" VpcId: vpc-078cd165c7acf6f63 FHIRValidatorNHSDigital: From 132d16f16402991f5cdde88530fa2927048f1acb Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 6 May 2025 07:33:18 +0000 Subject: [PATCH 17/35] compile dual --- Makefile | 2 +- dual/licenses/allowedMissingLicense.xml | 8 + dual/licenses/licenses.xml | 166 ++ dual/pom.xml | 390 +++ .../configuration/GetValueSetImpl.java | 12 + .../configuration/GetValueSetImpl.java | 12 + .../configuration/GetValueSetInterface.java | 8 + .../configuration/ValidatorConfiguration.java | 256 ++ .../controller/ValidateController.java | 117 + .../fhirvalidator/handler/HandlerStream.java | 88 + .../models/SimplifierPackage.java | 13 + .../service/CapabilityStatementApplier.java | 51 + .../service/ImplementationGuideParser.java | 43 + .../service/MessageDefinitionApplier.java | 145 + .../nhs/fhirvalidator/util/FhirUtils.java | 44 + .../util/OperationOutcomeUtils.java | 39 + .../nhs/fhirvalidator/util/ResourceUtils.java | 37 + dual/src/main/resources/log4j2.xml | 16 + .../main/resources/nhs_digital.manifest.json | 14 + dual/src/main/resources/primerPayload.json | 467 ++++ dual/src/main/resources/uk_core.manifest.json | 6 + .../nhs/fhirvalidator/HandlerTest.java | 51 + .../Validator_nhs_digital_Test.java.ignore | 310 +++ .../Validator_uk_core_Test.java.ignore | 179 ++ .../resources/examples/invalidBundle.json | 376 +++ .../examples/invalidOperationOutcome.json | 6 + .../resources/examples/invalidParameters.json | 8 + .../resources/examples/missingHeader.json | 696 +++++ .../test/resources/examples/psu_update.json | 54 + .../test/resources/examples/searchSet.json | 711 +++++ .../resources/examples/stepFunctionEvent.json | 75 + .../test/resources/examples/validBundle.json | 749 ++++++ .../examples/validOperationOutcome.json | 12 + .../resources/examples/validParameters.json | 9 + dual/src/test/resources/logback-test.xml | 10 + dual/src/test/resources/results/array.json | 10 + dual/src/test/resources/results/bad_json.json | 10 + .../test/resources/results/boolean_json.json | 10 + dual/src/test/resources/results/empty.json | 10 + .../test/resources/results/invalidBundle.json | 431 +++ .../results/invalidOperationOutcome.json | 55 + .../resources/results/invalidParameters.json | 36 + .../test/resources/results/missingHeader.json | 13 + .../src/test/resources/results/null_java.json | 10 + .../src/test/resources/results/null_json.json | 10 + .../test/resources/results/number_json.json | 10 + .../resources/results/psu_nhs_digital.json | 210 ++ .../test/resources/results/psu_update.json | 24 + .../src/test/resources/results/searchSet.json | 2396 +++++++++++++++++ .../resources/results/stepFunctionResult.json | 24 + .../results/successfulOperationOutcome.json | 24 + .../test/resources/results/validBundle.json | 674 +++++ .../resources/results/validParameters.json | 10 + .../resources/results/validSimpleBundle.json | 10 + 54 files changed, 9156 insertions(+), 1 deletion(-) create mode 100644 dual/licenses/allowedMissingLicense.xml create mode 100644 dual/licenses/licenses.xml create mode 100644 dual/pom.xml create mode 100644 dual/src/current/java/software/nhs/fhirvalidator/configuration/GetValueSetImpl.java create mode 100644 dual/src/legacy/java/software/nhs/fhirvalidator/configuration/GetValueSetImpl.java create mode 100644 dual/src/main/java/software/nhs/fhirvalidator/configuration/GetValueSetInterface.java create mode 100644 dual/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java create mode 100644 dual/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java create mode 100644 dual/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java create mode 100644 dual/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java create mode 100644 dual/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java create mode 100644 dual/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java create mode 100644 dual/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java create mode 100644 dual/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java create mode 100644 dual/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java create mode 100644 dual/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java create mode 100644 dual/src/main/resources/log4j2.xml create mode 100644 dual/src/main/resources/nhs_digital.manifest.json create mode 100644 dual/src/main/resources/primerPayload.json create mode 100644 dual/src/main/resources/uk_core.manifest.json create mode 100644 dual/src/test/java/software/nhs/fhirvalidator/HandlerTest.java create mode 100644 dual/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java.ignore create mode 100644 dual/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java.ignore create mode 100644 dual/src/test/resources/examples/invalidBundle.json create mode 100644 dual/src/test/resources/examples/invalidOperationOutcome.json create mode 100644 dual/src/test/resources/examples/invalidParameters.json create mode 100644 dual/src/test/resources/examples/missingHeader.json create mode 100644 dual/src/test/resources/examples/psu_update.json create mode 100644 dual/src/test/resources/examples/searchSet.json create mode 100644 dual/src/test/resources/examples/stepFunctionEvent.json create mode 100644 dual/src/test/resources/examples/validBundle.json create mode 100644 dual/src/test/resources/examples/validOperationOutcome.json create mode 100644 dual/src/test/resources/examples/validParameters.json create mode 100644 dual/src/test/resources/logback-test.xml create mode 100644 dual/src/test/resources/results/array.json create mode 100644 dual/src/test/resources/results/bad_json.json create mode 100644 dual/src/test/resources/results/boolean_json.json create mode 100644 dual/src/test/resources/results/empty.json create mode 100644 dual/src/test/resources/results/invalidBundle.json create mode 100644 dual/src/test/resources/results/invalidOperationOutcome.json create mode 100644 dual/src/test/resources/results/invalidParameters.json create mode 100644 dual/src/test/resources/results/missingHeader.json create mode 100644 dual/src/test/resources/results/null_java.json create mode 100644 dual/src/test/resources/results/null_json.json create mode 100644 dual/src/test/resources/results/number_json.json create mode 100644 dual/src/test/resources/results/psu_nhs_digital.json create mode 100644 dual/src/test/resources/results/psu_update.json create mode 100644 dual/src/test/resources/results/searchSet.json create mode 100644 dual/src/test/resources/results/stepFunctionResult.json create mode 100644 dual/src/test/resources/results/successfulOperationOutcome.json create mode 100644 dual/src/test/resources/results/validBundle.json create mode 100644 dual/src/test/resources/results/validParameters.json create mode 100644 dual/src/test/resources/results/validSimpleBundle.json diff --git a/Makefile b/Makefile index 1379ddda..e7910b41 100644 --- a/Makefile +++ b/Makefile @@ -79,7 +79,7 @@ sam-validate: sam validate --template-file SAMtemplates/lambda_resources.yaml --region eu-west-2 sam-build: sam-validate download-dependencies - sam build --template-file SAMtemplates/main_template.yaml --region eu-west-2 + sam build --debug --template-file SAMtemplates/main_template.yaml --region eu-west-2 sam-sync: guard-AWS_DEFAULT_PROFILE guard-stack_name download-dependencies sam sync \ diff --git a/dual/licenses/allowedMissingLicense.xml b/dual/licenses/allowedMissingLicense.xml new file mode 100644 index 00000000..568b7bf9 --- /dev/null +++ b/dual/licenses/allowedMissingLicense.xml @@ -0,0 +1,8 @@ + + + + jakarta-regexp + jakarta-regexp + 1.4 + + diff --git a/dual/licenses/licenses.xml b/dual/licenses/licenses.xml new file mode 100644 index 00000000..c3cb5e76 --- /dev/null +++ b/dual/licenses/licenses.xml @@ -0,0 +1,166 @@ + + + + + The Apache Software License, Version 2.0 + + The Apache Software License, Version 2.0 + Apache License, Version 2.0 + Apache Software License 2.0 + Apache License 2.0 + + + http://www.apache.org/licenses/LICENSE-2.0.txt + https://www.apache.org/licenses/LICENSE-2.0 + https://www.apache.org/licenses/LICENSE-2.0.txt + https://www.apache.org/licenses/LICENSE-2.0 + + + + Eclipse Public License 1.0 + + Eclipse Public License 1.0 + Eclipse Public License - v 1.0 + Eclipse Distribution License - v 1.0 + + + http://www.eclipse.org/legal/epl-v10.html + http://www.eclipse.org/legal/epl-v10.html + http://www.eclipse.org/org/documents/edl-v10.php + + + + Eclipse Public License v2.0 + + Eclipse Public License v2.0 + EPL 2.0 + Eclipse Public License - v 2.0 + + + https://www.eclipse.org/legal/epl-v20.html + http://www.eclipse.org/legal/epl-2.0 + + + + + The MIT License + + The MIT License + MIT License + MIT + + + http://code.google.com/p/mockito/wiki/License + http://www.opensource.org/licenses/mit-license + https://opensource.org/licenses/MIT + + + + BSD + + BSD + + + http://asm.objectweb.org/license.html + + + + BSD License 3 + + BSD License 3 + + + http://opensource.org/licenses/BSD-3-Clause + + + + BSD-2-Clause + + BSD-2-Clause + + + https://opensource.org/licenses/BSD-2-Clause + + + + LGPL 2.1 + + LGPL 2.1 + GNU Lesser General Public License + http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + + http://www.gnu.org/licenses/lgpl-2.1.html + + + + MPL 1.1 + + MPL 1.1 + + + http://www.mozilla.org/MPL/MPL-1.1.html + + + + Mozilla Public License Version 2.0 + + Mozilla Public License Version 2.0 + + + http://www.mozilla.org/MPL/2.0/ + + + + Unicode/ICU License + + Unicode/ICU License + + + https://raw.githubusercontent.com/unicode-org/icu/main/icu4c/LICENSE + + + + GPL2 w/ CPE + + GPL2 w/ CPE + + + https://www.gnu.org/software/classpath/license.html + + + + Public Domain, per Creative Commons CC0 + + Public Domain, per Creative Commons CC0 + + + http://creativecommons.org/publicdomain/zero/1.0 + + + + Indiana University Extreme! Lab Software License, vesion 1.1.1 + + Indiana University Extreme! Lab Software License, vesion 1.1.1 + Public Domain + Apache Software License, version 1.1 + + + http://www.extreme.indiana.edu/viewcvs/~checkout~/XPP3/java/LICENSE.txt + http://creativecommons.org/licenses/publicdomain + http://www.apache.org/licenses/LICENSE-1.1 + + + + + + GNU General Public License version 2 + + GNU General Public License version 2 + + + https://opensource.org/licenses/gpl-2.0.php + + + + diff --git a/dual/pom.xml b/dual/pom.xml new file mode 100644 index 00000000..0d59b351 --- /dev/null +++ b/dual/pom.xml @@ -0,0 +1,390 @@ + + 4.0.0 + + software.nhs.fhirvalidator + FHIRValidator + jar + dev + FHIRValidator + + + The MIT License + https://opensource.org/license/mit + + + + 21 + 21 + UTF-8 + 5.4.2 + 7.6.1 + 2.24.3 + 2.19.0 + nhsdigital + https://sonarcloud.io + NHSDigital_eps-FHIR-validator-lambda + 1.9.24 + + + + + org.junit + junit-bom + 5.12.2 + pom + import + + + + + + io.github.hakky54 + logcaptor + 2.11.0 + test + + + + + + + + + com.amazonaws + aws-lambda-java-core + 1.2.3 + + + com.amazonaws + aws-lambda-java-events + 3.15.0 + + + com.amazonaws + aws-lambda-java-log4j2 + 1.6.0 + + + com.google.code.gson + gson + 2.13.1 + + + org.apache.logging.log4j + log4j-api + ${log4j.version} + + + org.apache.logging.log4j + log4j-core + ${log4j.version} + + + org.apache.logging.log4j + log4j-slf4j2-impl + ${log4j.version} + + + org.apache.logging.log4j + log4j-layout-template-json + ${log4j.version} + + + software.amazon.lambda + powertools-logging + 1.20.1 + + + org.aspectj + aspectjrt + ${aspectj.version} + + + com.fasterxml.jackson.core + jackson-core + ${fasterxml.version} + + + com.fasterxml.jackson.core + jackson-databind + ${fasterxml.version} + + + com.fasterxml.jackson.core + jackson-annotations + ${fasterxml.version} + + + + org.junit.jupiter + junit-jupiter + test + + + org.junit.jupiter + junit-jupiter-api + test + + + org.mockito + mockito-core + 5.17.0 + test + + + + + + legacy + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.6.0 + + + generate-sources + + add-source + + + + src/legacy/java + + + + + + + + + + ca.uhn.hapi.fhir + hapi-fhir-validation-resources-r4 + ${legacy.fhir.version} + + + ca.uhn.hapi.fhir + hapi-fhir-structures-r4 + ${legacy.fhir.version} + + + ca.uhn.hapi.fhir + hapi-fhir-validation + ${legacy.fhir.version} + + + ca.uhn.hapi.fhir + hapi-fhir-base + ${legacy.fhir.version} + + + + + + true + + current + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.6.0 + + + generate-sources + + add-source + + + + src/current/java + + + + + + + + + + ca.uhn.hapi.fhir + hapi-fhir-validation-resources-r4 + ${current.fhir.version} + + + ca.uhn.hapi.fhir + hapi-fhir-structures-r4 + ${current.fhir.version} + + + ca.uhn.hapi.fhir + hapi-fhir-validation + ${current.fhir.version} + + + ca.uhn.hapi.fhir + hapi-fhir-base + ${current.fhir.version} + + + + + + + + + + src/main/resources + + log4j2.xml + package/* + *.tgz + primerPayload.json + nhs_digital.manifest.json + uk_core.manifest.json + + + + + + se.ayoy.maven-plugins + ayoy-license-verifier-maven-plugin + 1.2.0 + + + validate + + verify + + + + + ${project.basedir}/licenses/licenses.xml + + ${project.basedir}/licenses/allowedMissingLicense.xml + true + true + true + + + + maven-dependency-plugin + 3.8.1 + + + maven-compiler-plugin + 3.14.0 + + + maven-surefire-plugin + 3.5.3 + + + dev.aspectj + aspectj-maven-plugin + 1.14.1 + + + org.aspectj + aspectjtools + ${aspectj.version} + + + + 21 + true + + + ${project.build.directory}/classes + + + + software.amazon.lambda + powertools-logging + + + + + + + compile + + + + + + + org.jacoco + jacoco-maven-plugin + 0.8.13 + + + + prepare-agent + + + + + report + test + + report + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.6.0 + + false + + + + package + + shade + + + + + + + META-INF/TE-050AC.SF + META-INF/TE-050AC.RSA + + + + + + + + com.github.edwgiz + maven-shade-plugin.log4j2-cachefile-transformer + 2.15 + + + + + + + diff --git a/dual/src/current/java/software/nhs/fhirvalidator/configuration/GetValueSetImpl.java b/dual/src/current/java/software/nhs/fhirvalidator/configuration/GetValueSetImpl.java new file mode 100644 index 00000000..d4f46bb6 --- /dev/null +++ b/dual/src/current/java/software/nhs/fhirvalidator/configuration/GetValueSetImpl.java @@ -0,0 +1,12 @@ +package software.nhs.fhirvalidator.configuration; + +import ca.uhn.fhir.context.FhirContext; +import org.hl7.fhir.instance.model.api.IBaseResource; +import software.nhs.fhirvalidator.configuration.GetValueSetInterface; +import org.hl7.fhir.common.hapi.validation.support.CommonCodeSystemsTerminologyService; + +public class GetValueSetImpl implements GetValueSetInterface { + public String getValueSetUrl(FhirContext fhirContext, IBaseResource theValueSet) { + return CommonCodeSystemsTerminologyService.getValueSetUrl(fhirContext, theValueSet); + } +} diff --git a/dual/src/legacy/java/software/nhs/fhirvalidator/configuration/GetValueSetImpl.java b/dual/src/legacy/java/software/nhs/fhirvalidator/configuration/GetValueSetImpl.java new file mode 100644 index 00000000..974dff94 --- /dev/null +++ b/dual/src/legacy/java/software/nhs/fhirvalidator/configuration/GetValueSetImpl.java @@ -0,0 +1,12 @@ +package software.nhs.fhirvalidator.configuration; + +import ca.uhn.fhir.context.FhirContext; +import org.hl7.fhir.instance.model.api.IBaseResource; +import software.nhs.fhirvalidator.configuration.GetValueSetInterface; +import org.hl7.fhir.common.hapi.validation.support.CommonCodeSystemsTerminologyService; + +public class GetValueSetImpl implements GetValueSetInterface { + public String getValueSetUrl(FhirContext fhirContext, IBaseResource theValueSet) { + return CommonCodeSystemsTerminologyService.getValueSetUrl(theValueSet); + } +} diff --git a/dual/src/main/java/software/nhs/fhirvalidator/configuration/GetValueSetInterface.java b/dual/src/main/java/software/nhs/fhirvalidator/configuration/GetValueSetInterface.java new file mode 100644 index 00000000..35ff2518 --- /dev/null +++ b/dual/src/main/java/software/nhs/fhirvalidator/configuration/GetValueSetInterface.java @@ -0,0 +1,8 @@ +package software.nhs.fhirvalidator.configuration; + +import ca.uhn.fhir.context.FhirContext; +import org.hl7.fhir.instance.model.api.IBaseResource; + +public interface GetValueSetInterface { + String getValueSetUrl(FhirContext fhirContext, IBaseResource theValueSet); +} diff --git a/dual/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java b/dual/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java new file mode 100644 index 00000000..f95e7c8d --- /dev/null +++ b/dual/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java @@ -0,0 +1,256 @@ +package software.nhs.fhirvalidator.configuration; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import com.google.gson.Gson; + +import org.hl7.fhir.common.hapi.validation.support.CachingValidationSupport; +import org.hl7.fhir.common.hapi.validation.support.CommonCodeSystemsTerminologyService; +import org.hl7.fhir.common.hapi.validation.support.InMemoryTerminologyServerValidationSupport; +import org.hl7.fhir.common.hapi.validation.support.PrePopulatedValidationSupport; +import org.hl7.fhir.common.hapi.validation.support.SnapshotGeneratingValidationSupport; +import org.hl7.fhir.common.hapi.validation.support.ValidationSupportChain; +import org.hl7.fhir.common.hapi.validation.validator.FhirInstanceValidator; +import org.hl7.fhir.instance.model.api.IBaseResource; +import org.hl7.fhir.r4.model.CanonicalType; +import org.hl7.fhir.r4.model.CodeSystem; +import org.hl7.fhir.r4.model.ElementDefinition; +import org.hl7.fhir.r4.model.Resource; +import org.hl7.fhir.r4.model.StructureDefinition; +import org.hl7.fhir.r4.model.ValueSet; +import org.hl7.fhir.utilities.npm.NpmPackage; + +import ca.uhn.fhir.context.FhirContext; +import ca.uhn.fhir.context.support.ConceptValidationOptions; +import ca.uhn.fhir.context.support.DefaultProfileValidationSupport; +import ca.uhn.fhir.context.support.IValidationSupport; +import ca.uhn.fhir.context.support.ValidationSupportContext; +import ca.uhn.fhir.parser.IParser; +import ca.uhn.fhir.rest.server.exceptions.InternalErrorException; +import ca.uhn.fhir.util.ClasspathUtil; +import ca.uhn.fhir.validation.FhirValidator; +import software.nhs.fhirvalidator.models.SimplifierPackage; +import software.nhs.fhirvalidator.util.ResourceUtils; +import software.nhs.fhirvalidator.configuration.GetValueSetImpl; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +/** + * This class is a wrapper around the HAPI FhirValidator. + * The FhirValidator is built using default settings and the available + * implementation guides are loaded into it. + */ + +public class ValidatorConfiguration { + private String PROFILE_MANIFEST_FILE; + public final FhirValidator validator; + public final FhirContext fhirContext; + public final List npmPackages = new ArrayList<>(); + + Logger log = LogManager.getLogger(ValidatorConfiguration.class); + + private List getResourcesOfType(NpmPackage npmPackage, T resourceType) throws IOException { + IParser jsonParser = fhirContext.newJsonParser(); + + return npmPackage.listResources(resourceType.fhirType()).stream() + .map(t -> { + try { + return npmPackage.loadResource(t); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + }) + .map(jsonParser::parseResource) + .filter(resource -> resourceType.getClass().isInstance(resource)) + .map(resource -> (T) resource) + .collect(Collectors.toList()); + } + + private PrePopulatedValidationSupport createPrePopulatedValidationSupport(InputStream inputStream) throws IOException { + NpmPackage npmPackage = NpmPackage.fromPackage(inputStream); + PrePopulatedValidationSupport prePopulatedSupport = new PrePopulatedValidationSupport(fhirContext); + + for (StructureDefinition sd : getResourcesOfType(npmPackage, new StructureDefinition())) { + prePopulatedSupport.addStructureDefinition(sd); + } + + for (CodeSystem cs : getResourcesOfType(npmPackage, new CodeSystem())) { + prePopulatedSupport.addCodeSystem(cs); + } + + for (ValueSet vs : getResourcesOfType(npmPackage, new ValueSet())) { + prePopulatedSupport.addValueSet(vs); + } + + return prePopulatedSupport; + } + + public ValidatorConfiguration(String _PROFILE_MANIFEST_FILE) { + PROFILE_MANIFEST_FILE = _PROFILE_MANIFEST_FILE; + fhirContext = FhirContext.forR4(); + + // Create a chain that will hold our modules + ValidationSupportChain supportChain = new ValidationSupportChain( + new DefaultProfileValidationSupport(fhirContext), + new CommonCodeSystemsTerminologyService(fhirContext), + terminologyValidationSupport(fhirContext), + new SnapshotGeneratingValidationSupport(fhirContext)); + + SimplifierPackage[] packages = getPackages(); + + try { + for (SimplifierPackage individualPackage : packages) { + String packagePath = String.format("%s-%s.tgz", individualPackage.packageName, + individualPackage.version); + try (InputStream is = ClasspathUtil.loadResourceAsStream(packagePath)) { + PrePopulatedValidationSupport foo = createPrePopulatedValidationSupport(is); + supportChain.addValidationSupport(foo); + } + try (InputStream is = ClasspathUtil.loadResourceAsStream(packagePath)) { + NpmPackage pkg = NpmPackage.fromPackage(is); + npmPackages.add(pkg); + } + } + } catch (InternalErrorException | IOException ex) { + log.error(ex.getMessage(), ex); + throw new RuntimeException("error loading simplifier packages", ex); + } + generateSnapshots(supportChain); + supportChain.fetchCodeSystem("http://snomed.info/sct"); + + CachingValidationSupport validationSupport = new CachingValidationSupport(supportChain); + + // Create a validator using the FhirInstanceValidator module. + FhirInstanceValidator validatorModule = new FhirInstanceValidator(validationSupport); + validator = fhirContext.newValidator().registerValidatorModule(validatorModule); + } + + private void generateSnapshots(IValidationSupport supportChain) { + List structureDefinitions = supportChain.fetchAllStructureDefinitions(); + if (structureDefinitions == null) { + return; + } + + ValidationSupportContext context = new ValidationSupportContext(supportChain); + + structureDefinitions.stream() + .filter(this::shouldGenerateSnapshot) + .forEach(it -> { + try { + circularReferenceCheck(it, supportChain); + } catch (Exception e) { + log.error(String.format("Failed to generate snapshot for %s", it), e); + } + }); + + structureDefinitions.stream() + .filter(this::shouldGenerateSnapshot) + .forEach(it -> { + try { + supportChain.generateSnapshot(context, it, it.getUrl(), "https://fhir.nhs.uk/R4", it.getName()); + } catch (Exception e) { + log.error(String.format("Failed to generate snapshot for %s", it), e); + } + }); + } + + private boolean shouldGenerateSnapshot(StructureDefinition structureDefinition) { + return !structureDefinition.hasSnapshot() + && structureDefinition.getDerivation() == StructureDefinition.TypeDerivationRule.CONSTRAINT; + } + + private StructureDefinition circularReferenceCheck(StructureDefinition structureDefinition, + IValidationSupport supportChain) { + if (structureDefinition.hasSnapshot()) { + log.error(String.format("%s has snapshot!!", structureDefinition.getUrl())); + } + + for (ElementDefinition element : structureDefinition.getDifferential().getElement()) { + if ((element.getId().endsWith(".partOf") || + element.getId().endsWith(".basedOn") || + element.getId().endsWith(".replaces") || + element.getId().contains("Condition.stage.assessment") || + element.getId().contains("Observation.derivedFrom") || + element.getId().contains("Observation.hasMember") || + element.getId().contains("CareTeam.encounter") || + element.getId().contains("CareTeam.reasonReference") || + element.getId().contains("ServiceRequest.encounter") || + element.getId().contains("ServiceRequest.reasonReference") || + element.getId().contains("EpisodeOfCare.diagnosis.condition") || + element.getId().contains("Encounter.diagnosis.condition") || + element.getId().contains("Encounter.reasonReference") || + element.getId().contains("Encounter.appointment")) && element.hasType()) { + + log.warn(String.format("%s has circular references (%s)", structureDefinition.getUrl(), + element.getId())); + + for (ElementDefinition.TypeRefComponent typeRef : element.getType()) { + if (typeRef.hasTargetProfile()) { + for (CanonicalType targetProfile : typeRef.getTargetProfile()) { + typeRef.setTargetProfile((List) getBase(targetProfile, supportChain)); + } + } + } + } + } + return structureDefinition; + } + + private CanonicalType getBase(CanonicalType profile, IValidationSupport supportChain) { + StructureDefinition structureDefinition = (StructureDefinition) supportChain + .fetchStructureDefinition(profile.toString()); + + if (structureDefinition != null && structureDefinition.hasBaseDefinition()) { + String baseProfile = structureDefinition.getBaseDefinition(); + CanonicalType canonicalBaseProfile = new CanonicalType(baseProfile); + if (baseProfile.contains(".uk")) { + canonicalBaseProfile = getBase(canonicalBaseProfile, supportChain); + } + return canonicalBaseProfile; + } + return null; + } + + private InMemoryTerminologyServerValidationSupport terminologyValidationSupport(FhirContext fhirContext) { + return new InMemoryTerminologyServerValidationSupport(fhirContext) { + @Override + public IValidationSupport.CodeValidationResult validateCodeInValueSet( + ValidationSupportContext theValidationSupportContext, + ConceptValidationOptions theOptions, + String theCodeSystem, + String theCode, + String theDisplay, + IBaseResource theValueSet) { + GetValueSetInterface adapter = new GetValueSetImpl(); + String valueSetUrl = adapter.getValueSetUrl(fhirContext, theValueSet); + if ("https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationRequest-Code".equals(valueSetUrl) + || "https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationDispense-Code".equals(valueSetUrl) + || "https://fhir.hl7.org.uk/ValueSet/UKCore-MedicationCode".equals(valueSetUrl)) { + return new IValidationSupport.CodeValidationResult() + .setSeverity(IValidationSupport.IssueSeverity.WARNING) + .setMessage("Unable to validate medication codes"); + } + + return super.validateCodeInValueSet( + theValidationSupportContext, + theOptions, + theCodeSystem, + theCode, + theDisplay, + theValueSet); + } + }; + } + + private SimplifierPackage[] getPackages() { + String manifestContent = ResourceUtils.getResourceContent(this.PROFILE_MANIFEST_FILE); + return new Gson().fromJson(manifestContent, SimplifierPackage[].class); + } +} diff --git a/dual/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java b/dual/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java new file mode 100644 index 00000000..d53bc995 --- /dev/null +++ b/dual/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java @@ -0,0 +1,117 @@ +package software.nhs.fhirvalidator.controller; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +import com.google.gson.JsonSyntaxException; + +import org.hl7.fhir.instance.model.api.IBaseResource; +import org.hl7.fhir.r4.model.Bundle; +import org.hl7.fhir.r4.model.OperationOutcome; +import org.hl7.fhir.r4.model.ResourceType; +import org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent; + +import ca.uhn.fhir.context.FhirContext; +import ca.uhn.fhir.parser.DataFormatException; +import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException; +import ca.uhn.fhir.validation.FhirValidator; +import software.nhs.fhirvalidator.configuration.ValidatorConfiguration; +import software.nhs.fhirvalidator.service.CapabilityStatementApplier; +import software.nhs.fhirvalidator.service.ImplementationGuideParser; +import software.nhs.fhirvalidator.service.MessageDefinitionApplier; +import software.nhs.fhirvalidator.util.OperationOutcomeUtils; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +/** + * This class is a wrapper around the HAPI FhirValidator. + * The FhirValidator is built using default settings and the available + * implementation guides are loaded into it. + */ + +public class ValidateController { + private ValidatorConfiguration validatorConfiguration; + private FhirValidator validator; + private FhirContext fhirContext; + private ImplementationGuideParser implementationGuideParser; + private CapabilityStatementApplier capabilityStatementApplier; + private MessageDefinitionApplier messageDefinitionApplier; + + Logger log = LogManager.getLogger(ValidateController.class); + + public ValidateController(String PROFILE_MANIFEST_FILE) { + validatorConfiguration = new ValidatorConfiguration(PROFILE_MANIFEST_FILE); + validator = validatorConfiguration.validator; + fhirContext = validatorConfiguration.fhirContext; + implementationGuideParser = new ImplementationGuideParser( + fhirContext); + capabilityStatementApplier = new CapabilityStatementApplier( + implementationGuideParser, + validatorConfiguration.npmPackages); + messageDefinitionApplier = new MessageDefinitionApplier( + implementationGuideParser, validatorConfiguration.npmPackages); + } + public String validate(String input) { + OperationOutcome result = parseAndValidateResource(input); + return fhirContext.newJsonParser().encodeResourceToString(result); + } + + public OperationOutcome parseAndValidateResource(String input) { + + try { + IBaseResource inputResource = fhirContext.newJsonParser().parseResource(input); + List resources = getResourcesToValidate(inputResource); + + List operationOutcomeList = resources.stream() + .map(this::validateResource) + .collect(Collectors.toList()); + + List operationOutcomeIssues = operationOutcomeList.stream() + .filter(Objects::nonNull) + .flatMap(operationOutcome -> operationOutcome.getIssue().stream()) + .collect(Collectors.toList()); + + return OperationOutcomeUtils.createOperationOutcome(operationOutcomeIssues); + } catch (JsonSyntaxException | NullPointerException | IllegalArgumentException | InvalidRequestException + | DataFormatException e) { + log.error(e.toString()); + return OperationOutcomeUtils + .createOperationOutcome(e.getMessage() != null ? e.getMessage() : "Invalid JSON", null); + } + } + + private OperationOutcome validateResource(IBaseResource resource) { + capabilityStatementApplier.applyCapabilityStatementProfiles(resource); + OperationOutcome messageDefinitionErrors = messageDefinitionApplier.applyMessageDefinition(resource); + if (messageDefinitionErrors != null) { + return messageDefinitionErrors; + } + return (OperationOutcome) validator.validateWithResult(resource).toOperationOutcome(); + } + + private List getResourcesToValidate(IBaseResource inputResource) { + if (inputResource == null) { + return new ArrayList<>(); + } + + if (inputResource instanceof Bundle _inputResource && (_inputResource.getType() == Bundle.BundleType.SEARCHSET)) { + List bundleResources = new ArrayList<>(); + for (Bundle.BundleEntryComponent entry : ((Bundle) inputResource).getEntry()) { + if (entry.getResource().fhirType().equals("Bundle")) { + bundleResources.add(entry.getResource()); + } + } + + if (bundleResources.stream() + .allMatch(resource -> ((Bundle) resource).getResourceType() == ResourceType.Bundle)) { + return bundleResources; + } + } + + return Arrays.asList(inputResource); + } +} diff --git a/dual/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java b/dual/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java new file mode 100644 index 00000000..6b33c799 --- /dev/null +++ b/dual/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java @@ -0,0 +1,88 @@ +package software.nhs.fhirvalidator.handler; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.PrintWriter; + +import ca.uhn.fhir.util.VersionUtil; +import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.RequestStreamHandler; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import software.amazon.lambda.powertools.logging.Logging; +import software.amazon.lambda.powertools.logging.LoggingUtils; +import software.nhs.fhirvalidator.controller.ValidateController; +import software.nhs.fhirvalidator.util.ResourceUtils; + +public class HandlerStream implements RequestStreamHandler { + + private final ValidateController validateController; + private final String versionNumber; + Logger log = LogManager.getLogger(HandlerStream.class); + + public HandlerStream() { + VersionUtil versionUtil = new VersionUtil(); + versionNumber = versionUtil.getVersion(); + LoggingUtils.appendKey("hapi.fhir.version", versionNumber); + log.info(String.format("hapi fhir version %s", versionNumber)); + log.info("Creating the Validator instance for the first time..."); + String manifest_file = System.getenv("PROFILE_MANIFEST_FILE"); + if (manifest_file == null) { + manifest_file = "uk_core.manifest.json"; + } + log.info(String.format("Using manifest file : %s", manifest_file)); + + validateController = new ValidateController(manifest_file); + + log.info("Validating once to force the loading of all the validator related classes"); + String primerPayload = ResourceUtils.getResourceContent("primerPayload.json"); + validateController.validate(primerPayload); + + log.info("Validator is ready"); + } + + @Logging(clearState = true) + @Override + public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException { + ByteArrayOutputStream result = new ByteArrayOutputStream(); + byte[] buffer = new byte[1024]; + LoggingUtils.appendKey("hapi.fhir.version", versionNumber); + try { + for (int length; (length = inputStream.read(buffer)) != -1;) { + result.write(buffer, 0, length); + } + String rawInput = result.toString(); + log.info(rawInput); + JsonObject jsonPayload = JsonParser.parseString(rawInput).getAsJsonObject(); + JsonObject headers = jsonPayload.get("headers").getAsJsonObject(); + String xRequestID = headers.get("x-request-id") == null ? "" : headers.get("x-request-id").getAsString(); + LoggingUtils.appendKey("x-request-id", xRequestID); + String nhsdCorrelationID = headers.get("nhsd-correlation-id") == null ? "" : headers.get("nhsd-correlation-id").getAsString(); + LoggingUtils.appendKey("nhsd-correlation-id", nhsdCorrelationID); + String nhsdRequestID = headers.get("nhsd-request-id") == null ? "" : headers.get("nhsd-request-id").getAsString(); + LoggingUtils.appendKey("nhsd-request-id", nhsdRequestID); + String xCorrelationID = headers.get("x-correlation-id") == null ? "" : headers.get("x-correlation-id").getAsString(); + LoggingUtils.appendKey("x-correlation-id", xCorrelationID); + String apigwRequestID = headers.get("apigw-request-id") == null ? "" : headers.get("apigw-request-id").getAsString(); + LoggingUtils.appendKey("apigw-request-id", apigwRequestID); + + log.info("Calling validate function"); + String validatorResult = validateController.validate(jsonPayload.get("body").toString()); + log.info(validatorResult); + + try (PrintWriter writer = new PrintWriter(outputStream)) { + writer.print(validatorResult); + } + + } catch (IOException ex) { + log.error(ex.getMessage(), ex); + throw new RuntimeException("error in handleRequest", ex); + } + } +} diff --git a/dual/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java b/dual/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java new file mode 100644 index 00000000..f2fc9f62 --- /dev/null +++ b/dual/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java @@ -0,0 +1,13 @@ +package software.nhs.fhirvalidator.models; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class SimplifierPackage { + @SerializedName("packageName") + @Expose + public String packageName; + @SerializedName("version") + @Expose + public String version; +} diff --git a/dual/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java b/dual/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java new file mode 100644 index 00000000..2859ae11 --- /dev/null +++ b/dual/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java @@ -0,0 +1,51 @@ +package software.nhs.fhirvalidator.service; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.hl7.fhir.instance.model.api.IBaseResource; +import org.hl7.fhir.r4.model.CapabilityStatement; +import org.hl7.fhir.utilities.npm.NpmPackage; + +import software.nhs.fhirvalidator.util.FhirUtils; + +import java.io.IOException; +import java.util.List; +import java.util.stream.Collectors; + +public class CapabilityStatementApplier { + private final List restResources; + + Logger log = LogManager.getLogger(CapabilityStatementApplier.class); + + public CapabilityStatementApplier( + ImplementationGuideParser implementationGuideParser, + List npmPackages) { + + this.restResources = (npmPackages.stream() + .flatMap(packageItem -> { + try { + return implementationGuideParser + .getResourcesOfType(packageItem, CapabilityStatement.class).stream(); + } catch (IOException ex) { + log.error(ex.getMessage(), ex); + throw new RuntimeException("error in handleRequest", ex); + } + }) + .flatMap(capabilityStatement -> capabilityStatement.getRest().stream()) + .flatMap(rest -> rest.getResource().stream()) + .collect(Collectors.toList())); + } + + public void applyCapabilityStatementProfiles(IBaseResource resource) { + restResources.forEach(restResource -> applyRestResource(resource, restResource)); + } + + private void applyRestResource( + IBaseResource resource, + CapabilityStatement.CapabilityStatementRestResourceComponent restResource) { + List matchingResources = FhirUtils.getResourcesOfType(resource, restResource.getType()); + if (restResource.hasProfile()) { + FhirUtils.applyProfile(matchingResources, restResource.getProfileElement()); + } + } +} diff --git a/dual/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java b/dual/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java new file mode 100644 index 00000000..cd678d87 --- /dev/null +++ b/dual/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java @@ -0,0 +1,43 @@ +package software.nhs.fhirvalidator.service; + +import ca.uhn.fhir.context.FhirContext; +import ca.uhn.fhir.parser.IParser; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.hl7.fhir.r4.model.*; +import org.hl7.fhir.utilities.npm.NpmPackage; + +import java.io.IOException; +import java.util.List; +import java.util.stream.Collectors; + +public class ImplementationGuideParser { + + private final FhirContext fhirContext; + + Logger log = LogManager.getLogger(ImplementationGuideParser.class); + + public ImplementationGuideParser(FhirContext fhirContext) { + this.fhirContext = fhirContext; + } + + public List getResourcesOfType(NpmPackage npmPackage, Class resourceType) + throws IOException { + IParser jsonParser = fhirContext.newJsonParser(); + return npmPackage.listResources(resourceType.getSimpleName()) + .stream() + .map(t -> { + try { + return npmPackage.loadResource(t); + } catch (IOException ex) { + log.error(ex.getMessage(), ex); + throw new RuntimeException("error in getResourcesOfTypes", ex); + } + }) + .map(jsonParser::parseResource) + .filter(resourceType::isInstance) + .map(resourceType::cast) + .collect(Collectors.toList()); + } +} diff --git a/dual/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java b/dual/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java new file mode 100644 index 00000000..29123bd6 --- /dev/null +++ b/dual/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java @@ -0,0 +1,145 @@ +package software.nhs.fhirvalidator.service; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.hl7.fhir.instance.model.api.IBaseResource; +import org.hl7.fhir.r4.model.*; +import org.hl7.fhir.utilities.npm.NpmPackage; + +import software.nhs.fhirvalidator.util.FhirUtils; +import software.nhs.fhirvalidator.util.OperationOutcomeUtils; + +import java.io.IOException; +import java.util.List; +import java.util.stream.Collectors; + +public class MessageDefinitionApplier { + + private final List messageDefinitions; + Logger log = LogManager.getLogger(MessageDefinitionApplier.class); + + public MessageDefinitionApplier( + ImplementationGuideParser implementationGuideParser, + List npmPackages) { + this.messageDefinitions = npmPackages.stream() + .flatMap(packageItem -> { + try { + return implementationGuideParser.getResourcesOfType(packageItem, MessageDefinition.class) + .stream(); + } catch (IOException ex) { + log.error(ex.getMessage(), ex); + throw new RuntimeException("error in MessageDefinitionApplier", ex); + } + }) + .collect(Collectors.toList()); + } + + public OperationOutcome applyMessageDefinition(IBaseResource resource) { + if (!(resource instanceof Bundle _resource) || (_resource.getType() != Bundle.BundleType.MESSAGE)) { + return null; + } + + MessageHeader messageHeader = findMessageHeader((Bundle) resource); + if (messageHeader == null) { + return OperationOutcomeUtils.createOperationOutcome("No MessageHeader found.", "Bundle.entry"); + } + + Coding messageType = messageHeader.getEventCoding(); + String messageDefinitionProfile = messageHeader.getDefinition(); + MessageDefinition messageDefinition = findMessageDefinition(messageType, messageDefinitionProfile); + + if (messageDefinition == null) { + return OperationOutcomeUtils.createOperationOutcome( + "Unsupported message type " + messageType.getSystem() + "#" + messageType.getCode() + ".", + "MessageHeader.eventCoding"); + } + + return applyMessageDefinition((Bundle) resource, messageDefinition); + } + + private MessageHeader findMessageHeader(Bundle bundle) { + return bundle.getEntry() + .stream() + .map(Bundle.BundleEntryComponent::getResource) + .filter(MessageHeader.class::isInstance) + .map(MessageHeader.class::cast) + .findFirst() + .orElse(null); + } + + private MessageDefinition findMessageDefinition(Coding messageType, String messageDefinitionProfile) { + if (messageDefinitionProfile != null) { + return messageDefinitions.stream() + .filter(def -> messageType.getSystem().equals(def.getEventCoding().getSystem()) && + messageType.getCode().equals(def.getEventCoding().getCode()) && + messageDefinitionProfile.equals(def.getUrl())) + .findFirst() + .orElse(null); + } else { + return messageDefinitions.stream() + .filter(def -> messageType.getSystem().equals(def.getEventCoding().getSystem()) && + messageType.getCode().equals(def.getEventCoding().getCode())) + .findFirst() + .orElse(null); + } + } + + private OperationOutcome applyMessageDefinition(Bundle resource, MessageDefinition messageDefinition) { + List issues = messageDefinition.getFocus() + .stream() + .map(focus -> applyMessageDefinitionFocus(resource, focus)) + .filter(OperationOutcome.OperationOutcomeIssueComponent.class::isInstance) + .map(OperationOutcome.OperationOutcomeIssueComponent.class::cast) + .collect(Collectors.toList()); + + if (issues.isEmpty()) { + return null; + } + + return OperationOutcomeUtils.createOperationOutcome(issues); + } + + private OperationOutcome.OperationOutcomeIssueComponent applyMessageDefinitionFocus(Bundle bundle, + MessageDefinition.MessageDefinitionFocusComponent focus) { + List matchingResources = FhirUtils.getResourcesOfType(bundle, focus.getCode()); + applyMessageDefinitionFocusProfile(focus, matchingResources); + return applyMessageDefinitionFocusMinMax(focus, matchingResources.size()); + } + + private void applyMessageDefinitionFocusProfile(MessageDefinition.MessageDefinitionFocusComponent focus, + List matchingResources) { + if (focus.hasProfile()) { + FhirUtils.applyProfile(matchingResources, focus.getProfileElement()); + } + } + + private OperationOutcome.OperationOutcomeIssueComponent applyMessageDefinitionFocusMinMax( + MessageDefinition.MessageDefinitionFocusComponent focus, int resourceCount) { + String resourceType = focus.getCode(); + + if (focus.hasMin()) { + int min = focus.getMin(); + if (resourceCount < min) { + return OperationOutcomeUtils.createOperationOutcomeIssue( + "Bundle contains too few resources of type " + resourceType + ". Expected at least " + min + + ".", + "Bundle.entry"); + } + } + + if (focus.hasMax()) { + String maxStr = focus.getMax(); + if (!maxStr.equals("*")) { + int max = Integer.parseInt(maxStr); + if (resourceCount > max) { + return OperationOutcomeUtils.createOperationOutcomeIssue( + "Bundle contains too many resources of type " + resourceType + ". Expected at most " + max + + ".", + "Bundle.entry"); + } + } + } + + return null; + } +} diff --git a/dual/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java b/dual/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java new file mode 100644 index 00000000..d27ca8aa --- /dev/null +++ b/dual/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java @@ -0,0 +1,44 @@ +package software.nhs.fhirvalidator.util; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import org.hl7.fhir.instance.model.api.IBaseResource; +import org.hl7.fhir.instance.model.api.IPrimitiveType; +import org.hl7.fhir.r4.model.Bundle; + +public final class FhirUtils { + static Logger log = LogManager.getLogger(FhirUtils.class); + + private FhirUtils() { + throw new IllegalStateException("Utility class"); + } + + public static List getResourcesOfType(IBaseResource resource, String resourceType) { + List matchingResources = new ArrayList<>(); + + if (resource.fhirType().equals(resourceType)) { + matchingResources.add(resource); + } + + if (resource instanceof Bundle) { + Bundle bundle = (Bundle) resource; + bundle.getEntry().stream() + .map(Bundle.BundleEntryComponent::getResource) + .filter(entryResource -> entryResource.fhirType().equals(resourceType)) + .forEach(matchingResources::add); + } + + return matchingResources; + } + + public static void applyProfile(List resources, IPrimitiveType profile) { + resources.forEach(resource -> { + resource.getMeta().getProfile().clear(); + resource.getMeta().addProfile(profile.getValue()); + }); + } +} diff --git a/dual/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java b/dual/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java new file mode 100644 index 00000000..bc8726d9 --- /dev/null +++ b/dual/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java @@ -0,0 +1,39 @@ +package software.nhs.fhirvalidator.util; + +import java.util.Collections; +import java.util.List; + +import org.hl7.fhir.r4.model.OperationOutcome; + +public class OperationOutcomeUtils { + + private OperationOutcomeUtils() { + throw new IllegalStateException("Utility class"); + } + + public static OperationOutcome createOperationOutcome(String diagnostics, String expression) { + OperationOutcome.OperationOutcomeIssueComponent issue = createOperationOutcomeIssue(diagnostics, expression); + List issues = Collections.singletonList(issue); + return createOperationOutcome(issues); + } + + public static OperationOutcome createOperationOutcome( + List issues) { + OperationOutcome operationOutcome = new OperationOutcome(); + issues.forEach(operationOutcome::addIssue); + return operationOutcome; + } + + public static OperationOutcome.OperationOutcomeIssueComponent createOperationOutcomeIssue(String diagnostics, + String expression) { + OperationOutcome.OperationOutcomeIssueComponent issue = new OperationOutcome.OperationOutcomeIssueComponent(); + issue.setSeverity(OperationOutcome.IssueSeverity.ERROR); + issue.setCode(OperationOutcome.IssueType.PROCESSING); + issue.setDiagnostics(diagnostics); + if (expression != null) { + issue.addExpression(expression); + } + return issue; + } + +} diff --git a/dual/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java b/dual/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java new file mode 100644 index 00000000..fad95105 --- /dev/null +++ b/dual/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java @@ -0,0 +1,37 @@ +package software.nhs.fhirvalidator.util; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public class ResourceUtils { + static Logger log = LogManager.getLogger(ResourceUtils.class); + + private ResourceUtils() { + throw new IllegalStateException("Utility class"); + } + + public static String getResourceContent(String resource) { + ClassLoader loader = Thread.currentThread().getContextClassLoader(); + try { + ByteArrayOutputStream result; + try (InputStream inputStream = loader.getResourceAsStream(resource)) { + result = new ByteArrayOutputStream(); + byte[] buffer = new byte[1024]; + + for (int length; (length = inputStream.read(buffer)) != -1;) { + result.write(buffer, 0, length); + } + } + return result.toString("UTF-8"); + + } catch (IOException ex) { + log.error(ex.getMessage(), ex); + throw new RuntimeException("error in getResourceContent", ex); + } + } + +} diff --git a/dual/src/main/resources/log4j2.xml b/dual/src/main/resources/log4j2.xml new file mode 100644 index 00000000..0cc0953f --- /dev/null +++ b/dual/src/main/resources/log4j2.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/dual/src/main/resources/nhs_digital.manifest.json b/dual/src/main/resources/nhs_digital.manifest.json new file mode 100644 index 00000000..c39ca89a --- /dev/null +++ b/dual/src/main/resources/nhs_digital.manifest.json @@ -0,0 +1,14 @@ +[ + { + "packageName": "fhir.r4.ukcore.stu3.currentbuild", + "version": "0.0.3-pre-release" + }, + { + "packageName": "uk.nhsdigital.r4.test", + "version": "2.14.0-prerelease" + }, + { + "packageName": "uk.nhsdigital.medicines.r4.test", + "version": "2.8.21-prerelease" + } +] diff --git a/dual/src/main/resources/primerPayload.json b/dual/src/main/resources/primerPayload.json new file mode 100644 index 00000000..648561e3 --- /dev/null +++ b/dual/src/main/resources/primerPayload.json @@ -0,0 +1,467 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "meta": { + "lastUpdated": "2022-10-21T13:47:00+00:00" + }, + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "5ca1d5d1-fe4f-4c14-8584-7089d2000219" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "c59b0ad3-b6c9-49f1-a50a-0595b97c503d" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "315A44-A83008-4C9BB1" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39113611000001102", + "display": "Salbutamol 100micrograms/dose inhaler CFC free" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "c59b0ad3-b6c9-49f1-a50a-0595b97c503d" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "315A44-A83008-4C9BB1" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 times a day - Inhalation", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "18679011000001101", + "display": "Inhalation" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "quantity": { + "value": 200, + "unit": "dose", + "system": "http://snomed.info/sct", + "code": "3317411000001100" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + } + ] +} diff --git a/dual/src/main/resources/uk_core.manifest.json b/dual/src/main/resources/uk_core.manifest.json new file mode 100644 index 00000000..99ef7657 --- /dev/null +++ b/dual/src/main/resources/uk_core.manifest.json @@ -0,0 +1,6 @@ +[ + { + "packageName": "fhir.r4.ukcore.stu3.currentbuild", + "version": "0.0.9-pre-release" + } +] diff --git a/dual/src/test/java/software/nhs/fhirvalidator/HandlerTest.java b/dual/src/test/java/software/nhs/fhirvalidator/HandlerTest.java new file mode 100644 index 00000000..c2dc6fd6 --- /dev/null +++ b/dual/src/test/java/software/nhs/fhirvalidator/HandlerTest.java @@ -0,0 +1,51 @@ +package software.nhs.fhirvalidator; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +import nl.altindag.log.LogCaptor; +import software.nhs.fhirvalidator.handler.HandlerStream; +import software.nhs.fhirvalidator.util.ResourceUtils; + +import com.amazonaws.services.lambda.runtime.Context; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +import org.junit.jupiter.api.Test; +import static org.mockito.Mockito.mock; + +class HandlerTest { + + @Test + void logStartupMessage() { + LogCaptor logCaptor = LogCaptor.forClass(HandlerStream.class); + + new HandlerStream(); + + assertTrue(logCaptor.getInfoLogs().contains("Validator is ready")); + } + + @Test + void handlerCanProcessEvent() throws IOException { + String stepFunctionEvent = ResourceUtils.getResourceContent("examples/stepFunctionEvent.json"); + HandlerStream handlerStream = new HandlerStream(); + + InputStream inputStream = new ByteArrayInputStream(stepFunctionEvent.getBytes()); + OutputStream outputStream = new ByteArrayOutputStream(); + + handlerStream.handleRequest(inputStream, outputStream, mock(Context.class)); + + JsonObject actualJsonResult = JsonParser.parseString(outputStream.toString()).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/stepFunctionResult.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } +} diff --git a/dual/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java.ignore b/dual/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java.ignore new file mode 100644 index 00000000..34bff1cc --- /dev/null +++ b/dual/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java.ignore @@ -0,0 +1,310 @@ +package software.nhs.fhirvalidator; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; + +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +import ca.uhn.fhir.context.FhirContext; +import software.nhs.fhirvalidator.controller.ValidateController; +import software.nhs.fhirvalidator.util.ResourceUtils; + +import org.hl7.fhir.r4.model.OperationOutcome; +import org.hl7.fhir.r4.model.OperationOutcome.IssueSeverity; +import org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent; +import org.hl7.fhir.r4.model.Bundle; +import org.hl7.fhir.r4.model.Bundle.BundleEntryComponent; +import org.hl7.fhir.r4.model.Patient; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +class Validator_nhs_digital_Test { + + static ValidateController validateController; + static FhirContext fhirContext; + + Boolean issueListHasSeverity(List issueList, IssueSeverity severity) { + for (OperationOutcomeIssueComponent issue : issueList) { + if (issue.getSeverity().equals(severity)) { + return true; + } + } + return false; + } + + Boolean issueListHasDiagnosticMessageAtSeverity(List issueList, + String diagnosticMessage, IssueSeverity severity) { + for (OperationOutcomeIssueComponent issue : issueList) { + if (issue.getSeverity().equals(severity)) { + if (issue.getDiagnostics().equals(diagnosticMessage)) { + return true; + } + } + } + return false; + } + + @BeforeAll + static void setup() { + // Creating the HAPI validator takes several seconds. It's ok to reuse the same + // validator across tests to speed up tests + String manifest_file = "nhs_digital.manifest.json"; + validateController = new ValidateController(manifest_file); + fhirContext = FhirContext.forR4(); + } + + @Test + void simpleBundle() { + Bundle bundle = new Bundle(); + bundle.setType(Bundle.BundleType.COLLECTION); + BundleEntryComponent bundleEntry = bundle.addEntry(); + bundleEntry.setResource(new Patient()); + String FHIRDocument = fhirContext.newJsonParser().encodeResourceToString(bundle); + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/validSimpleBundle.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + + assertFalse(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); + assertFalse(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.WARNING)); + } + + @Test + void validBundle() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/validBundle.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/validBundle.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + + assertFalse(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); + assertTrue(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.WARNING)); + } + + @Test + void invalidBundle() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/invalidBundle.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/invalidBundle.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + + assertTrue(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); + assertTrue(issueListHasDiagnosticMessageAtSeverity(validatorResult.getIssue(), "Bundle entry missing fullUrl", + OperationOutcome.IssueSeverity.ERROR)); + assertTrue(issueListHasDiagnosticMessageAtSeverity(validatorResult.getIssue(), + "Unable to find a match for profile urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666 among choices: https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-EPSLegal", + OperationOutcome.IssueSeverity.ERROR)); + assertTrue(issueListHasDiagnosticMessageAtSeverity(validatorResult.getIssue(), + "Except for transactions and batches, each entry in a Bundle must have a fullUrl which is the identity of the resource in the entry", + OperationOutcome.IssueSeverity.ERROR)); + } + + @Test + void validParameters() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/validParameters.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/validParameters.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void invalidParameters() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/invalidParameters.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/invalidParameters.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void validOperationOutcome() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/validOperationOutcome.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/successfulOperationOutcome.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void invalidOperationOutcome() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/invalidOperationOutcome.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/invalidOperationOutcome.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void searchSet() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/searchSet.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/searchSet.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void missingHeader() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/missingHeader.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/missingHeader.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void empty() { + String FHIRDocument = ""; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/empty.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void array() { + String FHIRDocument = "[1,2,3]"; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/array.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void null_java() { + String FHIRDocument = null; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/null_java.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void null_json() { + String FHIRDocument = "null"; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/null_json.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void number_json() { + String FHIRDocument = "123"; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/number_json.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void boolean_json() { + String FHIRDocument = "true"; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/boolean_json.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void bad_json() { + String FHIRDocument = "{a:<>}}}"; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/bad_json.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void psuUpdate() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/psu_update.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/psu_nhs_digital.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + + assertTrue(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); + } +} diff --git a/dual/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java.ignore b/dual/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java.ignore new file mode 100644 index 00000000..59358e13 --- /dev/null +++ b/dual/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java.ignore @@ -0,0 +1,179 @@ +package software.nhs.fhirvalidator; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; + +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +import ca.uhn.fhir.context.FhirContext; +import software.nhs.fhirvalidator.controller.ValidateController; +import software.nhs.fhirvalidator.util.ResourceUtils; + +import org.hl7.fhir.r4.model.OperationOutcome; +import org.hl7.fhir.r4.model.OperationOutcome.IssueSeverity; +import org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +class Validator_uk_core_Test { + + static ValidateController validateController; + static FhirContext fhirContext; + + Boolean issueListHasSeverity(List issueList, IssueSeverity severity) { + for (OperationOutcomeIssueComponent issue : issueList) { + if (issue.getSeverity().equals(severity)) { + return true; + } + } + return false; + } + + Boolean issueListHasDiagnosticMessageAtSeverity(List issueList, + String diagnosticMessage, IssueSeverity severity) { + for (OperationOutcomeIssueComponent issue : issueList) { + if (issue.getSeverity().equals(severity)) { + if (issue.getDiagnostics().equals(diagnosticMessage)) { + return true; + } + } + } + return false; + } + + @BeforeAll + static void setup() { + // Creating the HAPI validator takes several seconds. It's ok to reuse the same + // validator across tests to speed up tests + String manifest_file = "uk_core.manifest.json"; + validateController = new ValidateController(manifest_file); + fhirContext = FhirContext.forR4(); + } + + @Test + void psuUpdate() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/psu_update.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/psu_update.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + + assertFalse(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); + //assertFalse(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.WARNING)); + } + + @Test + void validBundle_nhsdigitalProfile() { + String FHIRDocument = ResourceUtils.getResourceContent("examples/validBundle.json"); + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + + assertTrue(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); + } + + @Test + void empty() { + String FHIRDocument = ""; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/empty.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void array() { + String FHIRDocument = "[1,2,3]"; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/array.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void null_java() { + String FHIRDocument = null; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/null_java.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void null_json() { + String FHIRDocument = "null"; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/null_json.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void number_json() { + String FHIRDocument = "123"; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/number_json.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void boolean_json() { + String FHIRDocument = "true"; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/boolean_json.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + + @Test + void bad_json() { + String FHIRDocument = "{a:<>}}}"; + + OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); + JsonObject actualJsonResult = JsonParser + .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); + + String expectedResult = ResourceUtils.getResourceContent("results/bad_json.json"); + JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); + + assertEquals(expectedJsonResult, actualJsonResult); + } + +} diff --git a/dual/src/test/resources/examples/invalidBundle.json b/dual/src/test/resources/examples/invalidBundle.json new file mode 100644 index 00000000..0d8d7427 --- /dev/null +++ b/dual/src/test/resources/examples/invalidBundle.json @@ -0,0 +1,376 @@ +{ + "resourceType": "Bundle", + "id": "0A1FD9EF-A3D5-4E95-84CD-352070A03086", + "meta": { + "lastUpdated": "2022-10-21T13:47:00+00:00" + }, + "identifier": { + "value": "34470bbf-07cb-4b49-bef9-f958114f821f" + }, + "type": "message", + "entry": [ + { + "resource": { + "resourceType": "MessageHeader", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "plan", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "030611b2-9769-4696-88d9-9ddcf1132584" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "315A44-A83008-4C9BB1" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "DAVIS", + "given": [ + "JANE" + ], + "prefix": [ + "MRS" + ] + } + ], + "gender": "female", + "birthDate": "1999-11-25", + "address": [ + { + "use": "home", + "line": [ + "53 Harrogate Road", + "Chapel Allerton", + "Leeds" + ], + "postalCode": "LS7 3PY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": [ + "RANDOM" + ], + "prefix": [ + "MR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "683458" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": [ + "MUSGROVE PARK HOSPITAL" + ], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-03-16T12:34:33+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPmlscE5XeW05Wk1Pbk5jV1VzWk9TditmbFJwQT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+S1Yzc0RsY1UzbUhZcmcwYjBhbnBtTjJ4djRpVXJGRmVzVTl1TVZQL2UycHp0aUduT0pKcGFoanBtbGRGTFRIVE1pdXFpbHlwZTVMZDAvdWNlWnR5Q2gzMHUvOW50aEVpLyszOFljcVNNRlNTeWpuN1FPUXl2VFNqTkVqT3Fhb2FTaEhnSmNaR3hUei9GcG5iYktCUUI0NCt0MXVZSjlZbFFJdWNKSkRZWjFZPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/dual/src/test/resources/examples/invalidOperationOutcome.json b/dual/src/test/resources/examples/invalidOperationOutcome.json new file mode 100644 index 00000000..26800155 --- /dev/null +++ b/dual/src/test/resources/examples/invalidOperationOutcome.json @@ -0,0 +1,6 @@ +{ + "resourceType": "OperationOutcome", + "meta": { + "lastUpdated": "2022-10-21T13:47:00+00:00" + } +} diff --git a/dual/src/test/resources/examples/invalidParameters.json b/dual/src/test/resources/examples/invalidParameters.json new file mode 100644 index 00000000..a7a447b2 --- /dev/null +++ b/dual/src/test/resources/examples/invalidParameters.json @@ -0,0 +1,8 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "timestamp" + } + ] +} diff --git a/dual/src/test/resources/examples/missingHeader.json b/dual/src/test/resources/examples/missingHeader.json new file mode 100644 index 00000000..b6d21b99 --- /dev/null +++ b/dual/src/test/resources/examples/missingHeader.json @@ -0,0 +1,696 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "5dfe538a-b922-4e8e-ae61-ab80ee6affe7" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "9bda1fa2-7a5f-4142-a394-5d262f3fd920" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "334AF1-A83008-B442F2", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2024-03-05", + "end": "2024-04-05" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "cae365a5-9835-406e-be57-473fae309760" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322341003", + "display": "Co-codamol 30mg/500mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "334AF1-A83008-B442F2", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2024-03-05", + "end": "2024-04-05" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "2b24d698-0491-4c3c-9f7a-2dd6f18eafbb" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321080004", + "display": "Pseudoephedrine hydrochloride 60mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "334AF1-A83008-B442F2", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2024-03-05", + "end": "2024-04-05" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "4f13a628-d226-4a03-a547-ff45577e9157" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "334AF1-A83008-B442F2", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2024-03-05", + "end": "2024-04-05" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + ], + "name": [ + { + "use": "usual", + "family": "TWITCHETT", + "given": [ + "STACEY", + "MARISA" + ], + "prefix": [ + "MS" + ] + } + ], + "gender": "female", + "birthDate": "1948-04-30", + "address": [ + { + "use": "home", + "line": [ + "10 HEATHFIELD", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + }, + { + "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01234567890" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0115 9737320" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + } + ] +} diff --git a/dual/src/test/resources/examples/psu_update.json b/dual/src/test/resources/examples/psu_update.json new file mode 100644 index 00000000..0faa5c6a --- /dev/null +++ b/dual/src/test/resources/examples/psu_update.json @@ -0,0 +1,54 @@ +{ + "resourceType": "Bundle", + "type": "transaction", + "entry": [ + { + "fullUrl": "http://example.org/fhir/Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46", + "resource": { + "resourceType": "Task", + "id": "4d70678c-81e4-4ff4-8c67-17596fd0aa46", + "basedOn": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "07A66F-A83008-1EEEA0" + } + } + ], + "status": "completed", + "businessStatus": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/task-businessStatus-nppt", + "code": "Dispatched" + } + ] + }, + "intent": "order", + "focus": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "6989b7bd-8db6-428c-a593-4022e3044c00" + } + }, + "for": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + }, + "lastModified": "2024-01-30T12:01:24Z", + "owner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "C9Z1O" + } + } + }, + "request": { + "method": "POST", + "url": "Task" + } + } + ] +} diff --git a/dual/src/test/resources/examples/searchSet.json b/dual/src/test/resources/examples/searchSet.json new file mode 100644 index 00000000..09fcfcc4 --- /dev/null +++ b/dual/src/test/resources/examples/searchSet.json @@ -0,0 +1,711 @@ +{ + "resourceType": "Bundle", + "id": "test-request-id", + "meta": { + "lastUpdated": "2022-11-21T14:00:00+00:00" + }, + "type": "searchset", + "total": 2, + "entry": [ + { + "fullUrl": "urn:uuid:0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "search": { + "mode": "match" + }, + "resource": { + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "type": "collection", + "entry": [ + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "status": "active", + "intent": "order", + "medicationCodeableConcept": { + "coding": [ + { + "system": "https://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "subject": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dispenseRequest": { + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "https://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "reference": "urn:uuid:afb07f8b-e8d7-4cad-895d-494e6b35b2a1" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", + "resource": { + "resourceType": "MedicationRequest", + "status": "active", + "intent": "order", + "medicationCodeableConcept": { + "coding": [ + { + "system": "https://snomed.info/sct", + "code": "322341003", + "display": "Co-codamol 30mg/500mg tablets" + } + ] + }, + "subject": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dispenseRequest": { + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "https://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "reference": "urn:uuid:afb07f8b-e8d7-4cad-895d-494e6b35b2a1" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", + "resource": { + "resourceType": "MedicationRequest", + "status": "active", + "intent": "order", + "medicationCodeableConcept": { + "coding": [ + { + "system": "https://snomed.info/sct", + "code": "321080004", + "display": "Pseudoephedrine hydrochloride 60mg tablets" + } + ] + }, + "subject": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dispenseRequest": { + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "https://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "reference": "urn:uuid:afb07f8b-e8d7-4cad-895d-494e6b35b2a1" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "status": "cancelled", + "intent": "order", + "medicationCodeableConcept": { + "coding": [ + { + "system": "https://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "subject": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dispenseRequest": { + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "https://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "reference": "urn:uuid:afb07f8b-e8d7-4cad-895d-494e6b35b2a1" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + } + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "name": "HALLGARTH SURGERY", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0115 9737320" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ] + } + }, + { + "fullUrl": "urn:uuid:afb07f8b-e8d7-4cad-895d-494e6b35b2a1", + "resource": { + "resourceType": "Organization", + "id": "afb07f8b-e8d7-4cad-895d-494e6b35b2a1", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FLM49" + } + ], + "name": "Pharmacy2u", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 2650222" + }, + { + "system": "url", + "use": "work", + "value": "www.pharmacy2u.co.uk" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "Unit 4B", + "Victoria Road" + ], + "city": "LEEDS", + "district": "WEST YORKSHIRE", + "postalCode": "LS14 2LA" + } + ] + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "search": { + "mode": "match" + }, + "resource": { + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "type": "collection", + "entry": [ + { + "fullUrl": "urn:uuid:ee035711-7aac-48c4-951a-62c07891d37d", + "resource": { + "resourceType": "MedicationRequest", + "status": "cancelled", + "intent": "order", + "medicationCodeableConcept": { + "coding": [ + { + "system": "https://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "subject": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + }, + "requester": { + "reference": "urn:uuid:815c6eb3-41f8-4f48-9e0d-2983624d4f90" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "566946-B86044-FEFEFN" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dispenseRequest": { + "validityPeriod": { + "start": "2023-03-14" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "https://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:815c6eb3-41f8-4f48-9e0d-2983624d4f90", + "resource": { + "resourceType": "PractitionerRole", + "id": "815c6eb3-41f8-4f48-9e0d-2983624d4f90", + "practitioner": { + "reference": "urn:uuid:acd5b009-c78f-40f2-a48b-b38ac72de992" + }, + "organization": { + "reference": "urn:uuid:9683c147-ddad-41d9-9858-6e585c3f04df" + } + } + }, + { + "fullUrl": "urn:uuid:acd5b009-c78f-40f2-a48b-b38ac72de992", + "resource": { + "resourceType": "Practitioner", + "id": "acd5b009-c78f-40f2-a48b-b38ac72de992", + "name": [ + { + "family": "ROBINSON", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:9683c147-ddad-41d9-9858-6e585c3f04df", + "resource": { + "resourceType": "Organization", + "id": "9683c147-ddad-41d9-9858-6e585c3f04df", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B86044" + } + ], + "name": "IRELAND WOOD SURGERY", + "telecom": [ + { + "system": "phone", + "value": "0113 2303470" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "IVESON APPROACH" + ], + "city": "LEEDS", + "district": "WEST YORKSHIRE", + "postalCode": "LS16 6FR", + "country": "ENGLAND" + } + ] + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "search": { + "mode": "match" + }, + "resource": { + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "type": "collection", + "entry": [ + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "status": "active", + "intent": "order", + "medicationCodeableConcept": { + "coding": [ + { + "system": "https://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "subject": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dispenseRequest": { + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "https://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "reference": "urn:uuid:154dcc4a-0006-4272-9758-9dcb8d95ce8b" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:815c6eb3-41f8-4f48-9e0d-2983624d4f90", + "resource": { + "resourceType": "PractitionerRole", + "id": "815c6eb3-41f8-4f48-9e0d-2983624d4f90", + "practitioner": { + "reference": "urn:uuid:acd5b009-c78f-40f2-a48b-b38ac72de992" + }, + "organization": { + "reference": "urn:uuid:9683c147-ddad-41d9-9858-6e585c3f04df" + } + } + }, + { + "fullUrl": "urn:uuid:acd5b009-c78f-40f2-a48b-b38ac72de992", + "resource": { + "resourceType": "Practitioner", + "id": "acd5b009-c78f-40f2-a48b-b38ac72de992", + "name": [ + { + "family": "ROBINSON", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:9683c147-ddad-41d9-9858-6e585c3f04df", + "resource": { + "resourceType": "Organization", + "id": "9683c147-ddad-41d9-9858-6e585c3f04df", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B86044" + } + ], + "name": "IRELAND WOOD SURGERY", + "telecom": [ + { + "system": "phone", + "value": "0113 2303470" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "IVESON APPROACH" + ], + "city": "LEEDS", + "district": "WEST YORKSHIRE", + "postalCode": "LS16 6FR", + "country": "ENGLAND" + } + ] + } + }, + { + "fullUrl": "urn:uuid:154dcc4a-0006-4272-9758-9dcb8d95ce8b", + "resource": { + "resourceType": "Organization", + "id": "154dcc4a-0006-4272-9758-9dcb8d95ce8b", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FEW08" + } + ], + "name": "Pharmica", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "020 71129014" + }, + { + "system": "url", + "use": "work", + "value": "www.pharmica.co.uk" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "1-5 Clerkenwell Road" + ], + "city": "LONDON", + "district": "GREATER LONDON", + "postalCode": "EC1M 5PA" + } + ] + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:1a388581-dbbe-43e3-9054-f5976c0245e5", + "search": { + "mode": "outcome" + }, + "resource": { + "resourceType": "OperationOutcome", + "id": "1a388581-dbbe-43e3-9054-f5976c0245e5", + "meta": { + "lastUpdated": "2023-09-29T10:52:00+00:00" + }, + "issue": [ + { + "code": "business-rule", + "severity": "warning", + "details": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/Spine-ErrorOrWarningCode", + "code": "INVALIDATED_RESOURCE", + "display": "Invalidated resource" + } + ] + }, + "diagnostics": "Prescription with short form ID D7AC09-A99968-4BA59C has been invalidated so could not be returned." + } + ] + } + }, + { + "fullUrl": "urn:uuid:fedef61e-bc62-452e-91c0-6f44ad2d5c0c", + "search": { + "mode": "outcome" + }, + "resource": { + "resourceType": "OperationOutcome", + "id": "fedef61e-bc62-452e-91c0-6f44ad2d5c0c", + "meta": { + "lastUpdated": "2023-09-29T10:52:00+00:00" + }, + "issue": [ + { + "code": "business-rule", + "severity": "warning", + "details": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/Spine-ErrorOrWarningCode", + "code": "INVALIDATED_RESOURCE", + "display": "Invalidated resource" + } + ] + }, + "diagnostics": "Prescription with short form ID CDF34E-A99968-4FF3BQ has been invalidated so could not be returned." + } + ] + } + } + ] +} diff --git a/dual/src/test/resources/examples/stepFunctionEvent.json b/dual/src/test/resources/examples/stepFunctionEvent.json new file mode 100644 index 00000000..9b4e447d --- /dev/null +++ b/dual/src/test/resources/examples/stepFunctionEvent.json @@ -0,0 +1,75 @@ +{ + "body": { + "resourceType": "Bundle", + "type": "transaction", + "entry": [ + { + "fullUrl": "urn:uuid:4d70678c-81e4-4ff4-8c67-17596fd0aa46", + "resource": { + "resourceType": "Task", + "id": "4d70678c-81e4-4ff4-8c67-17596fd0aa46", + "basedOn": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "16B2E0-A83008-81C13H" + } + } + ], + "status": "completed", + "businessStatus": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/task-businessStatus-nppt", + "code": "dispatched" + } + ] + }, + "intent": "order", + "focus": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "6989b7bd-8db6-428c-a593-4022e3044c00" + } + }, + "for": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + }, + "lastModified": "2023-10-11T10:11:12Z", + "owner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "C9Z1O" + } + } + }, + "request": { + "method": "POST", + "url": "Task" + } + } + ] + }, + "headers": { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "apigw-request-id": "5600dff8-6553-42e3-a0ff-c2c9d04d3de6", + "Authorization": "Bearer nSoPA0PNA2JG8phqPwtCn9ys1G6z", + "Content-Type": "application/json", + "Host": "psu-pr-150.dev.eps.national.nhs.uk", + "nhsd-nhslogin-user": "P9:9912003071", + "Postman-Token": "8ca7a240-0b9e-4c1f-90d8-a526faa533e2", + "User-Agent": "PostmanRuntime/7.37.3", + "X-Amzn-Trace-Id": "Root=1-66290323-47ec5ff50d05147878b956d3", + "x-correlation-id": "ead03d9a-d14e-414d-9e01-217319210ddd", + "X-Forwarded-For": "86.5.218.71", + "X-Forwarded-Port": "443", + "X-Forwarded-Proto": "https", + "x-request-id": "c39f1caa-cd63-438d-bc2b-fafd3f02ed41" + }, + "querystring": {}, + "path": {} +} diff --git a/dual/src/test/resources/examples/validBundle.json b/dual/src/test/resources/examples/validBundle.json new file mode 100644 index 00000000..fe040eb9 --- /dev/null +++ b/dual/src/test/resources/examples/validBundle.json @@ -0,0 +1,749 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "5dfe538a-b922-4e8e-ae61-ab80ee6affe7" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + }, + "display": "The Simple Pharmacy" + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "focus": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00" + }, + { + "reference": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "9bda1fa2-7a5f-4142-a394-5d262f3fd920" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "334AF1-A83008-B442F2", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2024-03-05", + "end": "2024-04-05" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "cae365a5-9835-406e-be57-473fae309760" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322341003", + "display": "Co-codamol 30mg/500mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "334AF1-A83008-B442F2", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2024-03-05", + "end": "2024-04-05" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "2b24d698-0491-4c3c-9f7a-2dd6f18eafbb" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321080004", + "display": "Pseudoephedrine hydrochloride 60mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "334AF1-A83008-B442F2", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2024-03-05", + "end": "2024-04-05" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "4f13a628-d226-4a03-a547-ff45577e9157" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "334AF1-A83008-B442F2", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2024-03-05", + "end": "2024-04-05" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + ], + "name": [ + { + "use": "usual", + "family": "TWITCHETT", + "given": [ + "STACEY", + "MARISA" + ], + "prefix": [ + "MS" + ] + } + ], + "gender": "female", + "birthDate": "1948-04-30", + "address": [ + { + "use": "home", + "line": [ + "10 HEATHFIELD", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + }, + { + "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01234567890" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0115 9737320" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + } + ] +} diff --git a/dual/src/test/resources/examples/validOperationOutcome.json b/dual/src/test/resources/examples/validOperationOutcome.json new file mode 100644 index 00000000..4d90c94d --- /dev/null +++ b/dual/src/test/resources/examples/validOperationOutcome.json @@ -0,0 +1,12 @@ +{ + "resourceType": "OperationOutcome", + "meta": { + "lastUpdated": "2022-10-21T13:47:00+00:00" + }, + "issue": [ + { + "severity": "information", + "code": "informational" + } + ] +} diff --git a/dual/src/test/resources/examples/validParameters.json b/dual/src/test/resources/examples/validParameters.json new file mode 100644 index 00000000..4e86b816 --- /dev/null +++ b/dual/src/test/resources/examples/validParameters.json @@ -0,0 +1,9 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + } + ] +} diff --git a/dual/src/test/resources/logback-test.xml b/dual/src/test/resources/logback-test.xml new file mode 100644 index 00000000..5d4ea2c8 --- /dev/null +++ b/dual/src/test/resources/logback-test.xml @@ -0,0 +1,10 @@ + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + + + + + + diff --git a/dual/src/test/resources/results/array.json b/dual/src/test/resources/results/array.json new file mode 100644 index 00000000..56b7de3e --- /dev/null +++ b/dual/src/test/resources/results/array.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: HAPI-1859: Content does not appear to be FHIR JSON, first non-whitespace character was: '[' (must be '{')" + } + ] +} diff --git a/dual/src/test/resources/results/bad_json.json b/dual/src/test/resources/results/bad_json.json new file mode 100644 index 00000000..00fa9f96 --- /dev/null +++ b/dual/src/test/resources/results/bad_json.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: Unexpected character ('a' (code 97)): was expecting double-quote to start field name\n at [line: 1, column: 2]" + } + ] +} diff --git a/dual/src/test/resources/results/boolean_json.json b/dual/src/test/resources/results/boolean_json.json new file mode 100644 index 00000000..88471801 --- /dev/null +++ b/dual/src/test/resources/results/boolean_json.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: HAPI-1859: Content does not appear to be FHIR JSON, first non-whitespace character was: 't' (must be '{')" + } + ] +} diff --git a/dual/src/test/resources/results/empty.json b/dual/src/test/resources/results/empty.json new file mode 100644 index 00000000..8ad8d892 --- /dev/null +++ b/dual/src/test/resources/results/empty.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: HAPI-1857: Did not find any content to parse" + } + ] +} diff --git a/dual/src/test/resources/results/invalidBundle.json b/dual/src/test/resources/results/invalidBundle.json new file mode 100644 index 00000000..84810782 --- /dev/null +++ b/dual/src/test/resources/results/invalidBundle.json @@ -0,0 +1,431 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1082 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Bundle_BUNDLE_Entry_NoFullUrl" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Bundle_BUNDLE_Entry_NoFullUrl" + } + ] + }, + "diagnostics": "Bundle entry missing fullUrl", + "location": [ + "Bundle.entry[0]", + "Line[1] Col[1082]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1081 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[0].resource/*MessageHeader/0a1fd9ef-a3d5-4e95-84cd-552070a03086*/", + "Line[1] Col[1081]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3724 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/", + "Line[1] Col[3724]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2030 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[2030]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2030 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#15517911000001104)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[2030]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2028 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Unable to validate medication codes", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[2028]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2176 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Reference_REF_CantMatchChoice" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Reference_REF_CantMatchChoice" + } + ] + }, + "diagnostics": "Unable to find a match for profile urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666 among choices: https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-EPSLegal", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.requester", + "Line[1] Col[2176]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2176 + } + ], + "severity": "information", + "code": "processing", + "diagnostics": "Details for urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666 matching against profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-EPSLegal - Bundle.entry[4].resource/*PractitionerRole/null*/: PractitionerRole.code: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-EPSLegal)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.requester", + "Line[1] Col[2176]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3034 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.dosageInstruction[0].route", + "Line[1] Col[3034]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3130 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.dosageInstruction[0].method", + "Line[1] Col[3130]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4325 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[2].resource/*Patient/null*/", + "Line[1] Col[4325]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4738 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[3].resource/*Practitioner/null*/", + "Line[1] Col[4738]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4738 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: prac-gmc: 'GMC must be of the format CNNNNNNN' (defined in https://fhir.nhs.uk/StructureDefinition/NHSDigital-Practitioner)", + "location": [ + "Bundle.entry[3].resource/*Practitioner/null*/", + "Line[1] Col[4738]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 5328 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[4].resource/*PractitionerRole/null*/", + "Line[1] Col[5328]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 5328 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: role-spurious: 'Spurious Code format must be G6NNNNNN or G7NNNNNN'", + "location": [ + "Bundle.entry[4].resource/*PractitionerRole/null*/", + "Line[1] Col[5328]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 5974 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[5].resource/*Organization/null*/", + "Line[1] Col[5974]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 9357 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[6].resource/*Provenance/null*/", + "Line[1] Col[9357]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1082 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "BUNDLE_BUNDLE_ENTRY_FULLURL_REQUIRED" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "BUNDLE_BUNDLE_ENTRY_FULLURL_REQUIRED" + } + ] + }, + "diagnostics": "Except for transactions and batches, each entry in a Bundle must have a fullUrl which is the identity of the resource in the entry", + "location": [ + "Bundle.entry[0]", + "Line[1] Col[1082]" + ] + } + ] +} diff --git a/dual/src/test/resources/results/invalidOperationOutcome.json b/dual/src/test/resources/results/invalidOperationOutcome.json new file mode 100644 index 00000000..9a26e5dd --- /dev/null +++ b/dual/src/test/resources/results/invalidOperationOutcome.json @@ -0,0 +1,55 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 169 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "OperationOutcome.issue: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-OperationOutcome|1.1.1)", + "location": [ + "OperationOutcome", + "Line[1] Col[169]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 169 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "OperationOutcome", + "Line[1] Col[169]" + ] + } + ] +} diff --git a/dual/src/test/resources/results/invalidParameters.json b/dual/src/test/resources/results/invalidParameters.json new file mode 100644 index 00000000..54260ed6 --- /dev/null +++ b/dual/src/test/resources/results/invalidParameters.json @@ -0,0 +1,36 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 63 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "http://hl7.org/fhir/StructureDefinition/Parameters#inv-1" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "http://hl7.org/fhir/StructureDefinition/Parameters#inv-1" + } + ] + }, + "diagnostics": "Constraint failed: inv-1: 'A parameter must have one and only one of (value, resource, part)'", + "location": [ + "Parameters.parameter[0]", + "Line[1] Col[63]" + ] + } + ] +} diff --git a/dual/src/test/resources/results/missingHeader.json b/dual/src/test/resources/results/missingHeader.json new file mode 100644 index 00000000..f59f1f0c --- /dev/null +++ b/dual/src/test/resources/results/missingHeader.json @@ -0,0 +1,13 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "No MessageHeader found.", + "expression": [ + "Bundle.entry" + ] + } + ] +} diff --git a/dual/src/test/resources/results/null_java.json b/dual/src/test/resources/results/null_java.json new file mode 100644 index 00000000..27be4901 --- /dev/null +++ b/dual/src/test/resources/results/null_java.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "Cannot invoke \"String.length()\" because \"s\" is null" + } + ] +} diff --git a/dual/src/test/resources/results/null_json.json b/dual/src/test/resources/results/null_json.json new file mode 100644 index 00000000..49593577 --- /dev/null +++ b/dual/src/test/resources/results/null_json.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: HAPI-1859: Content does not appear to be FHIR JSON, first non-whitespace character was: 'n' (must be '{')" + } + ] +} diff --git a/dual/src/test/resources/results/number_json.json b/dual/src/test/resources/results/number_json.json new file mode 100644 index 00000000..f821bbb7 --- /dev/null +++ b/dual/src/test/resources/results/number_json.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: HAPI-1859: Content does not appear to be FHIR JSON, first non-whitespace character was: '1' (must be '{')" + } + ] +} diff --git a/dual/src/test/resources/results/psu_nhs_digital.json b/dual/src/test/resources/results/psu_nhs_digital.json new file mode 100644 index 00000000..f43818cf --- /dev/null +++ b/dual/src/test/resources/results/psu_nhs_digital.json @@ -0,0 +1,210 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1004 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", + "Line[1] Col[1004]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1004 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "Task.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", + "Line[1] Col[1004]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1004 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "Task.code: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", + "Line[1] Col[1004]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1004 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "Task.authoredOn: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", + "Line[1] Col[1004]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1004 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "Task.requester: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", + "Line[1] Col[1004]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 625 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_1_CC" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_1_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'EPSTaskBusinessPrescriptionStatus' (https://fhir.nhs.uk/ValueSet/DM-task-business-status|1.0.0), and a coding from this value set is required) (codes = https://fhir.nhs.uk/CodeSystem/task-businessStatus-nppt#Dispatched)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/.businessStatus", + "Line[1] Col[625]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 623 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "Task.businessStatus.coding.display: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/.businessStatus.coding[0]", + "Line[1] Col[623]" + ] + } + ] +} diff --git a/dual/src/test/resources/results/psu_update.json b/dual/src/test/resources/results/psu_update.json new file mode 100644 index 00000000..a0682728 --- /dev/null +++ b/dual/src/test/resources/results/psu_update.json @@ -0,0 +1,24 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 851 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", + "Line[1] Col[851]" + ] + } + ] +} diff --git a/dual/src/test/resources/results/searchSet.json b/dual/src/test/resources/results/searchSet.json new file mode 100644 index 00000000..2e53ede9 --- /dev/null +++ b/dual/src/test/resources/results/searchSet.json @@ -0,0 +1,2396 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1227 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1227]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1227 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1227]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1227 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1227]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1227 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1227]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 501 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#39732311000001104)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[501]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 499 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "This_element_does_not_match_any_known_slice_" + } + ], + "severity": "information", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "This_element_does_not_match_any_known_slice_" + } + ] + }, + "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[499]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 501 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[501]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 779 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[779]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 779 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[779]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 958 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_1_CC" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_1_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.courseOfTherapyType", + "Line[1] Col[958]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1186 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[1186]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1186 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[1186]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2326 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/", + "Line[1] Col[2326]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2326 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/", + "Line[1] Col[2326]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2326 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/", + "Line[1] Col[2326]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2326 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/", + "Line[1] Col[2326]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1600 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#322341003)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[1600]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1598 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "This_element_does_not_match_any_known_slice_" + } + ], + "severity": "information", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "This_element_does_not_match_any_known_slice_" + } + ] + }, + "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[1598]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1600 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[1600]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1878 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[1878]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1878 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[1878]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2057 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_1_CC" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_1_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.courseOfTherapyType", + "Line[1] Col[2057]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2285 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[2285]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2285 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[2285]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3438 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/", + "Line[1] Col[3438]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3438 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/", + "Line[1] Col[3438]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3438 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/", + "Line[1] Col[3438]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3438 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/", + "Line[1] Col[3438]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2712 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#321080004)", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[2712]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2710 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "This_element_does_not_match_any_known_slice_" + } + ], + "severity": "information", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "This_element_does_not_match_any_known_slice_" + } + ] + }, + "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[2710]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2712 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[2712]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2990 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[2990]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2990 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[2990]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3169 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_1_CC" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_1_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.courseOfTherapyType", + "Line[1] Col[3169]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3397 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[3397]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3397 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[3397]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4538 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/", + "Line[1] Col[4538]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4538 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/", + "Line[1] Col[4538]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4538 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/", + "Line[1] Col[4538]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4538 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/", + "Line[1] Col[4538]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3812 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#324252006)", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[3812]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3810 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "This_element_does_not_match_any_known_slice_" + } + ], + "severity": "information", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "This_element_does_not_match_any_known_slice_" + } + ] + }, + "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[3810]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3812 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[3812]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4090 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[4090]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4090 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[4090]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4269 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_1_CC" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_1_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.courseOfTherapyType", + "Line[1] Col[4269]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4497 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[4497]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4497 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[4497]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4934 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[4].resource/*PractitionerRole/56166769-c1c4-4d07-afa8-132b5dfca666*/", + "Line[1] Col[4934]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 5225 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[5].resource/*Practitioner/a8c85454-f8cb-498d-9629-78e2cb5fa47a*/", + "Line[1] Col[5225]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 5792 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[6].resource/*Organization/3b4b03a5-52ba-4ba6-9b82-70350aa109d8*/", + "Line[1] Col[5792]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 6406 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[7].resource/*Organization/afb07f8b-e8d7-4cad-895d-494e6b35b2a1*/", + "Line[1] Col[6406]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1149 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1149]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1149 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1149]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1149 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1149]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1149 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1149]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 497 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#324252006)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[497]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 495 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "This_element_does_not_match_any_known_slice_" + } + ], + "severity": "information", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "This_element_does_not_match_any_known_slice_" + } + ] + }, + "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[495]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 497 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[497]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 775 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[775]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 775 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[775]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 954 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_1_CC" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_1_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.courseOfTherapyType", + "Line[1] Col[954]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1108 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[1108]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1108 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[1108]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1545 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[1].resource/*PractitionerRole/815c6eb3-41f8-4f48-9e0d-2983624d4f90*/", + "Line[1] Col[1545]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1840 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[2].resource/*Practitioner/acd5b009-c78f-40f2-a48b-b38ac72de992*/", + "Line[1] Col[1840]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2403 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[3].resource/*Organization/9683c147-ddad-41d9-9858-6e585c3f04df*/", + "Line[1] Col[2403]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Bundle_BUNDLE_Not_Local" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Bundle_BUNDLE_Not_Local" + } + ] + }, + "diagnostics": "URN reference is not locally contained within the bundle urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.requester" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1227 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1227]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1227 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1227]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1227 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1227]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1227 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/", + "Line[1] Col[1227]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 501 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#39732311000001104)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[501]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 499 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "This_element_does_not_match_any_known_slice_" + } + ], + "severity": "information", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "This_element_does_not_match_any_known_slice_" + } + ] + }, + "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[499]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 501 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[501]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 779 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[779]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 779 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", + "Line[1] Col[779]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 958 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_1_CC" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_1_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.courseOfTherapyType", + "Line[1] Col[958]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1186 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[1186]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1186 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum_SLICE" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum_SLICE" + } + ] + }, + "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "location": [ + "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", + "Line[1] Col[1186]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1623 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[1].resource/*PractitionerRole/815c6eb3-41f8-4f48-9e0d-2983624d4f90*/", + "Line[1] Col[1623]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1918 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[2].resource/*Practitioner/acd5b009-c78f-40f2-a48b-b38ac72de992*/", + "Line[1] Col[1918]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2481 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[3].resource/*Organization/9683c147-ddad-41d9-9858-6e585c3f04df*/", + "Line[1] Col[2481]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3089 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[4].resource/*Organization/154dcc4a-0006-4272-9758-9dcb8d95ce8b*/", + "Line[1] Col[3089]" + ] + } + ] +} diff --git a/dual/src/test/resources/results/stepFunctionResult.json b/dual/src/test/resources/results/stepFunctionResult.json new file mode 100644 index 00000000..0124a66b --- /dev/null +++ b/dual/src/test/resources/results/stepFunctionResult.json @@ -0,0 +1,24 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 787 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[0].resource/*Task/null*/", + "Line[1] Col[787]" + ] + } + ] +} diff --git a/dual/src/test/resources/results/successfulOperationOutcome.json b/dual/src/test/resources/results/successfulOperationOutcome.json new file mode 100644 index 00000000..84eb7bda --- /dev/null +++ b/dual/src/test/resources/results/successfulOperationOutcome.json @@ -0,0 +1,24 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 229 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "OperationOutcome", + "Line[1] Col[229]" + ] + } + ] +} diff --git a/dual/src/test/resources/results/validBundle.json b/dual/src/test/resources/results/validBundle.json new file mode 100644 index 00000000..d16c7f91 --- /dev/null +++ b/dual/src/test/resources/results/validBundle.json @@ -0,0 +1,674 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1344 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[0].resource/*MessageHeader/null*/", + "Line[1] Col[1344]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3705 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/", + "Line[1] Col[3705]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2244 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[2244]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2244 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#39732311000001104)", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[2244]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 2242 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Unable to validate medication codes", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[2242]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 3098 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[1].resource/*MedicationRequest/null*/.dosageInstruction[0].route", + "Line[1] Col[3098]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 6061 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/", + "Line[1] Col[6061]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4600 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[4600]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4600 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#322341003)", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[4600]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 4598 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Unable to validate medication codes", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[4598]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 5454 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[2].resource/*MedicationRequest/null*/.dosageInstruction[0].route", + "Line[1] Col[5454]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 8430 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/", + "Line[1] Col[8430]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 6969 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[6969]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 6969 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#321080004)", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[6969]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 6967 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Unable to validate medication codes", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[6967]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 7823 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[3].resource/*MedicationRequest/null*/.dosageInstruction[0].route", + "Line[1] Col[7823]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 10784 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[4].resource/*MedicationRequest/null*/", + "Line[1] Col[10784]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 9323 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[4].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[9323]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 9323 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_2_CC" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_2_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#324252006)", + "location": [ + "Bundle.entry[4].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", + "Line[1] Col[9323]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 9321 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Unable to validate medication codes", + "location": [ + "Bundle.entry[4].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", + "Line[1] Col[9321]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 10177 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", + "location": [ + "Bundle.entry[4].resource/*MedicationRequest/null*/.dosageInstruction[0].route", + "Line[1] Col[10177]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 11388 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[5].resource/*Patient/null*/", + "Line[1] Col[11388]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 12117 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_PassThrough_TX_Message" + } + ], + "severity": "warning", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_PassThrough_TX_Message" + } + ] + }, + "diagnostics": "Unknown code in fragment CodeSystem 'https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode#R8000'", + "location": [ + "Bundle.entry[6].resource/*PractitionerRole/null*/.code[0]", + "Line[1] Col[12117]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 12185 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[6].resource/*PractitionerRole/null*/", + "Line[1] Col[12185]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 12655 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[7].resource/*Practitioner/null*/", + "Line[1] Col[12655]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 12655 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: prac-gmc: 'GMC must be of the format CNNNNNNN' (defined in https://fhir.nhs.uk/StructureDefinition/NHSDigital-Practitioner)", + "location": [ + "Bundle.entry[7].resource/*Practitioner/null*/", + "Line[1] Col[12655]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 13428 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[8].resource/*Organization/null*/", + "Line[1] Col[13428]" + ] + } + ] +} diff --git a/dual/src/test/resources/results/validParameters.json b/dual/src/test/resources/results/validParameters.json new file mode 100644 index 00000000..08a3fa46 --- /dev/null +++ b/dual/src/test/resources/results/validParameters.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "information", + "code": "informational", + "diagnostics": "No issues detected during validation" + } + ] +} diff --git a/dual/src/test/resources/results/validSimpleBundle.json b/dual/src/test/resources/results/validSimpleBundle.json new file mode 100644 index 00000000..08a3fa46 --- /dev/null +++ b/dual/src/test/resources/results/validSimpleBundle.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "information", + "code": "informational", + "diagnostics": "No issues detected during validation" + } + ] +} From 9cc4273f5412454ee1d1c41f1fe787106ee7129f Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 6 May 2025 08:07:17 +0000 Subject: [PATCH 18/35] start of tests --- dual/pom.xml | 17 +++++++++++------ dual/src/main/resources/uk_core.manifest.json | 2 +- .../software/nhs/fhirvalidator/HandlerTest.java | 5 ++++- .../results/5.4.2/stepFunctionResult.json | 14 ++++++++++++++ .../results/{ => 7.6.1}/stepFunctionResult.json | 0 5 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 dual/src/test/resources/results/5.4.2/stepFunctionResult.json rename dual/src/test/resources/results/{ => 7.6.1}/stepFunctionResult.json (100%) diff --git a/dual/pom.xml b/dual/pom.xml index 0d59b351..47f42cf1 100644 --- a/dual/pom.xml +++ b/dual/pom.xml @@ -217,22 +217,27 @@ ca.uhn.hapi.fhir hapi-fhir-validation-resources-r4 ${current.fhir.version} - - + + ca.uhn.hapi.fhir hapi-fhir-structures-r4 ${current.fhir.version} - - + + ca.uhn.hapi.fhir hapi-fhir-validation ${current.fhir.version} - - + + ca.uhn.hapi.fhir hapi-fhir-base ${current.fhir.version} + + ca.uhn.hapi.fhir + hapi-fhir-caching-caffeine + ${current.fhir.version} + diff --git a/dual/src/main/resources/uk_core.manifest.json b/dual/src/main/resources/uk_core.manifest.json index 99ef7657..29e8af08 100644 --- a/dual/src/main/resources/uk_core.manifest.json +++ b/dual/src/main/resources/uk_core.manifest.json @@ -1,6 +1,6 @@ [ { "packageName": "fhir.r4.ukcore.stu3.currentbuild", - "version": "0.0.9-pre-release" + "version": "0.0.3-pre-release" } ] diff --git a/dual/src/test/java/software/nhs/fhirvalidator/HandlerTest.java b/dual/src/test/java/software/nhs/fhirvalidator/HandlerTest.java index c2dc6fd6..4a2b8af2 100644 --- a/dual/src/test/java/software/nhs/fhirvalidator/HandlerTest.java +++ b/dual/src/test/java/software/nhs/fhirvalidator/HandlerTest.java @@ -12,6 +12,7 @@ import nl.altindag.log.LogCaptor; import software.nhs.fhirvalidator.handler.HandlerStream; import software.nhs.fhirvalidator.util.ResourceUtils; +import ca.uhn.fhir.util.VersionUtil; import com.amazonaws.services.lambda.runtime.Context; import com.google.gson.JsonObject; @@ -33,6 +34,8 @@ void logStartupMessage() { @Test void handlerCanProcessEvent() throws IOException { + VersionUtil versionUtil = new VersionUtil(); + String versionNumber = versionUtil.getVersion(); String stepFunctionEvent = ResourceUtils.getResourceContent("examples/stepFunctionEvent.json"); HandlerStream handlerStream = new HandlerStream(); @@ -43,7 +46,7 @@ void handlerCanProcessEvent() throws IOException { JsonObject actualJsonResult = JsonParser.parseString(outputStream.toString()).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/stepFunctionResult.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/stepFunctionResult.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); diff --git a/dual/src/test/resources/results/5.4.2/stepFunctionResult.json b/dual/src/test/resources/results/5.4.2/stepFunctionResult.json new file mode 100644 index 00000000..4877d336 --- /dev/null +++ b/dual/src/test/resources/results/5.4.2/stepFunctionResult.json @@ -0,0 +1,14 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "information", + "code": "processing", + "diagnostics": "Binding for path Bundle.entry[0].resource.ofType(Task).businessStatus has no source, so can't be checked", + "location": [ + "Bundle.entry[0].resource.ofType(Task).businessStatus", + "Line 1, Col 407" + ] + } + ] +} diff --git a/dual/src/test/resources/results/stepFunctionResult.json b/dual/src/test/resources/results/7.6.1/stepFunctionResult.json similarity index 100% rename from dual/src/test/resources/results/stepFunctionResult.json rename to dual/src/test/resources/results/7.6.1/stepFunctionResult.json From f8bd0fe9e8494e38f92079780049ebac46c196b8 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 6 May 2025 08:16:23 +0000 Subject: [PATCH 19/35] more test --- ...ignore => Validator_nhs_digital_Test.java} | 0 .../src/test/resources/results/searchSet.json | 84 +++++++++---------- 2 files changed, 42 insertions(+), 42 deletions(-) rename dual/src/test/java/software/nhs/fhirvalidator/{Validator_nhs_digital_Test.java.ignore => Validator_nhs_digital_Test.java} (100%) diff --git a/dual/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java.ignore b/dual/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java similarity index 100% rename from dual/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java.ignore rename to dual/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java diff --git a/dual/src/test/resources/results/searchSet.json b/dual/src/test/resources/results/searchSet.json index 2e53ede9..c14ceb1d 100644 --- a/dual/src/test/resources/results/searchSet.json +++ b/dual/src/test/resources/results/searchSet.json @@ -45,7 +45,7 @@ } ] }, - "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[0].resource/*MedicationRequest/null*/", "Line[1] Col[1227]" @@ -76,7 +76,7 @@ } ] }, - "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1). Note that other slices are allowed in addition to this required slice", "location": [ "Bundle.entry[0].resource/*MedicationRequest/null*/", "Line[1] Col[1227]" @@ -107,7 +107,7 @@ } ] }, - "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[0].resource/*MedicationRequest/null*/", "Line[1] Col[1227]" @@ -231,7 +231,7 @@ } ] }, - "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", "Line[1] Col[779]" @@ -262,7 +262,7 @@ } ] }, - "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1). Note that other slices are allowed in addition to this required slice", "location": [ "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", "Line[1] Col[779]" @@ -324,7 +324,7 @@ } ] }, - "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", "Line[1] Col[1186]" @@ -355,7 +355,7 @@ } ] }, - "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1). Note that other slices are allowed in addition to this required slice", "location": [ "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", "Line[1] Col[1186]" @@ -405,7 +405,7 @@ } ] }, - "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[1].resource/*MedicationRequest/null*/", "Line[1] Col[2326]" @@ -436,7 +436,7 @@ } ] }, - "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1). Note that other slices are allowed in addition to this required slice", "location": [ "Bundle.entry[1].resource/*MedicationRequest/null*/", "Line[1] Col[2326]" @@ -467,7 +467,7 @@ } ] }, - "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[1].resource/*MedicationRequest/null*/", "Line[1] Col[2326]" @@ -591,7 +591,7 @@ } ] }, - "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[1].resource/*MedicationRequest/null*/.groupIdentifier", "Line[1] Col[1878]" @@ -622,7 +622,7 @@ } ] }, - "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1). Note that other slices are allowed in addition to this required slice", "location": [ "Bundle.entry[1].resource/*MedicationRequest/null*/.groupIdentifier", "Line[1] Col[1878]" @@ -684,7 +684,7 @@ } ] }, - "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[1].resource/*MedicationRequest/null*/.dispenseRequest", "Line[1] Col[2285]" @@ -715,7 +715,7 @@ } ] }, - "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1). Note that other slices are allowed in addition to this required slice", "location": [ "Bundle.entry[1].resource/*MedicationRequest/null*/.dispenseRequest", "Line[1] Col[2285]" @@ -765,7 +765,7 @@ } ] }, - "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[2].resource/*MedicationRequest/null*/", "Line[1] Col[3438]" @@ -796,7 +796,7 @@ } ] }, - "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1). Note that other slices are allowed in addition to this required slice", "location": [ "Bundle.entry[2].resource/*MedicationRequest/null*/", "Line[1] Col[3438]" @@ -827,7 +827,7 @@ } ] }, - "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[2].resource/*MedicationRequest/null*/", "Line[1] Col[3438]" @@ -951,7 +951,7 @@ } ] }, - "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[2].resource/*MedicationRequest/null*/.groupIdentifier", "Line[1] Col[2990]" @@ -982,7 +982,7 @@ } ] }, - "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1). Note that other slices are allowed in addition to this required slice", "location": [ "Bundle.entry[2].resource/*MedicationRequest/null*/.groupIdentifier", "Line[1] Col[2990]" @@ -1044,7 +1044,7 @@ } ] }, - "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[2].resource/*MedicationRequest/null*/.dispenseRequest", "Line[1] Col[3397]" @@ -1075,7 +1075,7 @@ } ] }, - "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1). Note that other slices are allowed in addition to this required slice", "location": [ "Bundle.entry[2].resource/*MedicationRequest/null*/.dispenseRequest", "Line[1] Col[3397]" @@ -1125,7 +1125,7 @@ } ] }, - "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[3].resource/*MedicationRequest/null*/", "Line[1] Col[4538]" @@ -1156,7 +1156,7 @@ } ] }, - "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1). Note that other slices are allowed in addition to this required slice", "location": [ "Bundle.entry[3].resource/*MedicationRequest/null*/", "Line[1] Col[4538]" @@ -1187,7 +1187,7 @@ } ] }, - "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[3].resource/*MedicationRequest/null*/", "Line[1] Col[4538]" @@ -1311,7 +1311,7 @@ } ] }, - "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[3].resource/*MedicationRequest/null*/.groupIdentifier", "Line[1] Col[4090]" @@ -1342,7 +1342,7 @@ } ] }, - "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1). Note that other slices are allowed in addition to this required slice", "location": [ "Bundle.entry[3].resource/*MedicationRequest/null*/.groupIdentifier", "Line[1] Col[4090]" @@ -1404,7 +1404,7 @@ } ] }, - "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[3].resource/*MedicationRequest/null*/.dispenseRequest", "Line[1] Col[4497]" @@ -1435,7 +1435,7 @@ } ] }, - "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1). Note that other slices are allowed in addition to this required slice", "location": [ "Bundle.entry[3].resource/*MedicationRequest/null*/.dispenseRequest", "Line[1] Col[4497]" @@ -1561,7 +1561,7 @@ } ] }, - "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[0].resource/*MedicationRequest/null*/", "Line[1] Col[1149]" @@ -1592,7 +1592,7 @@ } ] }, - "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1). Note that other slices are allowed in addition to this required slice", "location": [ "Bundle.entry[0].resource/*MedicationRequest/null*/", "Line[1] Col[1149]" @@ -1623,7 +1623,7 @@ } ] }, - "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[0].resource/*MedicationRequest/null*/", "Line[1] Col[1149]" @@ -1747,7 +1747,7 @@ } ] }, - "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", "Line[1] Col[775]" @@ -1778,7 +1778,7 @@ } ] }, - "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1). Note that other slices are allowed in addition to this required slice", "location": [ "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", "Line[1] Col[775]" @@ -1840,7 +1840,7 @@ } ] }, - "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", "Line[1] Col[1108]" @@ -1871,7 +1871,7 @@ } ] }, - "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1). Note that other slices are allowed in addition to this required slice", "location": [ "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", "Line[1] Col[1108]" @@ -2000,7 +2000,7 @@ } ] }, - "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[0].resource/*MedicationRequest/null*/", "Line[1] Col[1227]" @@ -2031,7 +2031,7 @@ } ] }, - "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1). Note that other slices are allowed in addition to this required slice", "location": [ "Bundle.entry[0].resource/*MedicationRequest/null*/", "Line[1] Col[1227]" @@ -2062,7 +2062,7 @@ } ] }, - "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[0].resource/*MedicationRequest/null*/", "Line[1] Col[1227]" @@ -2186,7 +2186,7 @@ } ] }, - "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", "Line[1] Col[779]" @@ -2217,7 +2217,7 @@ } ] }, - "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1). Note that other slices are allowed in addition to this required slice", "location": [ "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", "Line[1] Col[779]" @@ -2279,7 +2279,7 @@ } ] }, - "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1)", "location": [ "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", "Line[1] Col[1186]" @@ -2310,7 +2310,7 @@ } ] }, - "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", + "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest|1.0.1). Note that other slices are allowed in addition to this required slice", "location": [ "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", "Line[1] Col[1186]" From fddfd498f229e4eb779241c495cc4835f4101213 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 6 May 2025 09:06:51 +0000 Subject: [PATCH 20/35] almost working tests --- .../Validator_nhs_digital_Test.java | 38 +- ...ava.ignore => Validator_uk_core_Test.java} | 20 +- .../test/resources/results/5.4.2/array.json | 10 + .../resources/results/5.4.2/bad_json.json | 10 + .../resources/results/5.4.2/boolean_json.json | 10 + .../test/resources/results/5.4.2/empty.json | 10 + .../results/5.4.2/invalidBundle.json | 68 ++ .../5.4.2/invalidOperationOutcome.json | 14 + .../results/5.4.2/invalidParameters.json | 14 + .../results/{ => 5.4.2}/missingHeader.json | 0 .../results/{ => 5.4.2}/null_java.json | 0 .../resources/results/5.4.2/null_json.json | 10 + .../resources/results/5.4.2/number_json.json | 10 + .../results/{ => 5.4.2}/psu_nhs_digital.json | 0 .../resources/results/5.4.2/psu_update.json | 68 ++ .../resources/results/5.4.2/searchSet.json | 607 ++++++++++++++++++ .../successfulOperationOutcome.json} | 0 .../resources/results/5.4.2/validBundle.json | 59 ++ .../validParameters.json} | 0 .../results/5.4.2/validSimpleBundle.json | 10 + .../resources/results/{ => 7.6.1}/array.json | 0 .../results/{ => 7.6.1}/bad_json.json | 0 .../results/{ => 7.6.1}/boolean_json.json | 0 .../resources/results/{ => 7.6.1}/empty.json | 0 .../results/{ => 7.6.1}/invalidBundle.json | 0 .../{ => 7.6.1}/invalidOperationOutcome.json | 0 .../{ => 7.6.1}/invalidParameters.json | 0 .../results/7.6.1/missingHeader.json | 13 + .../resources/results/7.6.1/null_java.json | 10 + .../results/{ => 7.6.1}/null_json.json | 0 .../results/{ => 7.6.1}/number_json.json | 0 .../results/7.6.1/psu_nhs_digital.json | 210 ++++++ .../results/{ => 7.6.1}/psu_update.json | 0 .../results/{ => 7.6.1}/searchSet.json | 0 .../successfulOperationOutcome.json | 0 .../results/{ => 7.6.1}/validBundle.json | 0 .../results/7.6.1/validParameters.json | 10 + .../results/7.6.1/validSimpleBundle.json | 10 + 38 files changed, 1186 insertions(+), 25 deletions(-) rename dual/src/test/java/software/nhs/fhirvalidator/{Validator_uk_core_Test.java.ignore => Validator_uk_core_Test.java} (91%) create mode 100644 dual/src/test/resources/results/5.4.2/array.json create mode 100644 dual/src/test/resources/results/5.4.2/bad_json.json create mode 100644 dual/src/test/resources/results/5.4.2/boolean_json.json create mode 100644 dual/src/test/resources/results/5.4.2/empty.json create mode 100644 dual/src/test/resources/results/5.4.2/invalidBundle.json create mode 100644 dual/src/test/resources/results/5.4.2/invalidOperationOutcome.json create mode 100644 dual/src/test/resources/results/5.4.2/invalidParameters.json rename dual/src/test/resources/results/{ => 5.4.2}/missingHeader.json (100%) rename dual/src/test/resources/results/{ => 5.4.2}/null_java.json (100%) create mode 100644 dual/src/test/resources/results/5.4.2/null_json.json create mode 100644 dual/src/test/resources/results/5.4.2/number_json.json rename dual/src/test/resources/results/{ => 5.4.2}/psu_nhs_digital.json (100%) create mode 100644 dual/src/test/resources/results/5.4.2/psu_update.json create mode 100644 dual/src/test/resources/results/5.4.2/searchSet.json rename dual/src/test/resources/results/{validParameters.json => 5.4.2/successfulOperationOutcome.json} (100%) create mode 100644 dual/src/test/resources/results/5.4.2/validBundle.json rename dual/src/test/resources/results/{validSimpleBundle.json => 5.4.2/validParameters.json} (100%) create mode 100644 dual/src/test/resources/results/5.4.2/validSimpleBundle.json rename dual/src/test/resources/results/{ => 7.6.1}/array.json (100%) rename dual/src/test/resources/results/{ => 7.6.1}/bad_json.json (100%) rename dual/src/test/resources/results/{ => 7.6.1}/boolean_json.json (100%) rename dual/src/test/resources/results/{ => 7.6.1}/empty.json (100%) rename dual/src/test/resources/results/{ => 7.6.1}/invalidBundle.json (100%) rename dual/src/test/resources/results/{ => 7.6.1}/invalidOperationOutcome.json (100%) rename dual/src/test/resources/results/{ => 7.6.1}/invalidParameters.json (100%) create mode 100644 dual/src/test/resources/results/7.6.1/missingHeader.json create mode 100644 dual/src/test/resources/results/7.6.1/null_java.json rename dual/src/test/resources/results/{ => 7.6.1}/null_json.json (100%) rename dual/src/test/resources/results/{ => 7.6.1}/number_json.json (100%) create mode 100644 dual/src/test/resources/results/7.6.1/psu_nhs_digital.json rename dual/src/test/resources/results/{ => 7.6.1}/psu_update.json (100%) rename dual/src/test/resources/results/{ => 7.6.1}/searchSet.json (100%) rename dual/src/test/resources/results/{ => 7.6.1}/successfulOperationOutcome.json (100%) rename dual/src/test/resources/results/{ => 7.6.1}/validBundle.json (100%) create mode 100644 dual/src/test/resources/results/7.6.1/validParameters.json create mode 100644 dual/src/test/resources/results/7.6.1/validSimpleBundle.json diff --git a/dual/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java b/dual/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java index 34bff1cc..3a1cd9e2 100644 --- a/dual/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java +++ b/dual/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java @@ -10,6 +10,7 @@ import com.google.gson.JsonParser; import ca.uhn.fhir.context.FhirContext; +import ca.uhn.fhir.util.VersionUtil; import software.nhs.fhirvalidator.controller.ValidateController; import software.nhs.fhirvalidator.util.ResourceUtils; @@ -26,6 +27,7 @@ class Validator_nhs_digital_Test { static ValidateController validateController; static FhirContext fhirContext; + static String versionNumber; Boolean issueListHasSeverity(List issueList, IssueSeverity severity) { for (OperationOutcomeIssueComponent issue : issueList) { @@ -55,6 +57,8 @@ static void setup() { String manifest_file = "nhs_digital.manifest.json"; validateController = new ValidateController(manifest_file); fhirContext = FhirContext.forR4(); + VersionUtil versionUtil = new VersionUtil(); + versionNumber = versionUtil.getVersion(); } @Test @@ -69,7 +73,7 @@ void simpleBundle() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/validSimpleBundle.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/validSimpleBundle.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -85,7 +89,7 @@ void validBundle() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/validBundle.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/validBundle.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -101,7 +105,7 @@ void invalidBundle() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/invalidBundle.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/invalidBundle.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -124,7 +128,7 @@ void validParameters() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/validParameters.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/validParameters.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -137,7 +141,7 @@ void invalidParameters() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/invalidParameters.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/invalidParameters.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -150,7 +154,7 @@ void validOperationOutcome() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/successfulOperationOutcome.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/successfulOperationOutcome.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -163,7 +167,7 @@ void invalidOperationOutcome() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/invalidOperationOutcome.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/invalidOperationOutcome.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -176,7 +180,7 @@ void searchSet() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/searchSet.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/searchSet.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -189,7 +193,7 @@ void missingHeader() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/missingHeader.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/missingHeader.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -203,7 +207,7 @@ void empty() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/empty.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/empty.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -217,7 +221,7 @@ void array() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/array.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/array.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -231,7 +235,7 @@ void null_java() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/null_java.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/null_java.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -245,7 +249,7 @@ void null_json() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/null_json.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/null_json.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -259,7 +263,7 @@ void number_json() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/number_json.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/number_json.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -273,7 +277,7 @@ void boolean_json() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/boolean_json.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/boolean_json.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -287,7 +291,7 @@ void bad_json() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/bad_json.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/bad_json.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -300,7 +304,7 @@ void psuUpdate() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/psu_nhs_digital.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/psu_nhs_digital.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); diff --git a/dual/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java.ignore b/dual/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java similarity index 91% rename from dual/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java.ignore rename to dual/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java index 59358e13..ebdca277 100644 --- a/dual/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java.ignore +++ b/dual/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java @@ -10,6 +10,7 @@ import com.google.gson.JsonParser; import ca.uhn.fhir.context.FhirContext; +import ca.uhn.fhir.util.VersionUtil; import software.nhs.fhirvalidator.controller.ValidateController; import software.nhs.fhirvalidator.util.ResourceUtils; @@ -23,6 +24,7 @@ class Validator_uk_core_Test { static ValidateController validateController; static FhirContext fhirContext; + static String versionNumber; Boolean issueListHasSeverity(List issueList, IssueSeverity severity) { for (OperationOutcomeIssueComponent issue : issueList) { @@ -52,6 +54,8 @@ static void setup() { String manifest_file = "uk_core.manifest.json"; validateController = new ValidateController(manifest_file); fhirContext = FhirContext.forR4(); + VersionUtil versionUtil = new VersionUtil(); + versionNumber = versionUtil.getVersion(); } @Test @@ -61,7 +65,7 @@ void psuUpdate() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/psu_update.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/psu_update.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -86,7 +90,7 @@ void empty() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/empty.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/empty.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -100,7 +104,7 @@ void array() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/array.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/array.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -114,7 +118,7 @@ void null_java() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/null_java.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/null_java.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -128,7 +132,7 @@ void null_json() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/null_json.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/null_json.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -142,7 +146,7 @@ void number_json() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/number_json.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/number_json.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -156,7 +160,7 @@ void boolean_json() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/boolean_json.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/boolean_json.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); @@ -170,7 +174,7 @@ void bad_json() { JsonObject actualJsonResult = JsonParser .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - String expectedResult = ResourceUtils.getResourceContent("results/bad_json.json"); + String expectedResult = ResourceUtils.getResourceContent(String.format("results/%s/bad_json.json", versionNumber)); JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); assertEquals(expectedJsonResult, actualJsonResult); diff --git a/dual/src/test/resources/results/5.4.2/array.json b/dual/src/test/resources/results/5.4.2/array.json new file mode 100644 index 00000000..5bc1f266 --- /dev/null +++ b/dual/src/test/resources/results/5.4.2/array.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "Failed to parse JSON encoded FHIR content: Content does not appear to be FHIR JSON, first non-whitespace character was: '[' (must be '{')" + } + ] +} diff --git a/dual/src/test/resources/results/5.4.2/bad_json.json b/dual/src/test/resources/results/5.4.2/bad_json.json new file mode 100644 index 00000000..a92fc075 --- /dev/null +++ b/dual/src/test/resources/results/5.4.2/bad_json.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "Failed to parse JSON encoded FHIR content: Unexpected character ('a' (code 97)): was expecting double-quote to start field name\n at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2]" + } + ] +} diff --git a/dual/src/test/resources/results/5.4.2/boolean_json.json b/dual/src/test/resources/results/5.4.2/boolean_json.json new file mode 100644 index 00000000..21d1142f --- /dev/null +++ b/dual/src/test/resources/results/5.4.2/boolean_json.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "Failed to parse JSON encoded FHIR content: Content does not appear to be FHIR JSON, first non-whitespace character was: 't' (must be '{')" + } + ] +} diff --git a/dual/src/test/resources/results/5.4.2/empty.json b/dual/src/test/resources/results/5.4.2/empty.json new file mode 100644 index 00000000..ec7791e6 --- /dev/null +++ b/dual/src/test/resources/results/5.4.2/empty.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "Failed to parse JSON encoded FHIR content: Did not find any content to parse" + } + ] +} diff --git a/dual/src/test/resources/results/5.4.2/invalidBundle.json b/dual/src/test/resources/results/5.4.2/invalidBundle.json new file mode 100644 index 00000000..fd403310 --- /dev/null +++ b/dual/src/test/resources/results/5.4.2/invalidBundle.json @@ -0,0 +1,68 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "Bundle entry missing fullUrl", + "location": [ + "Bundle.entry[0]", + "Line 1, Col 360" + ] + }, + { + "severity": "warning", + "code": "processing", + "diagnostics": "None of the codings provided are in the value set https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#15517911000001104)", + "location": [ + "Bundle.entry[1].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept)", + "Line 1, Col 2505" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "Unable to find a match for profile urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666 among choices: https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-EPSLegal", + "location": [ + "Bundle.entry[1].resource.ofType(MedicationRequest).requester", + "Line 1, Col 2838" + ] + }, + { + "severity": "information", + "code": "processing", + "diagnostics": "Details for urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666 matching against Profilehttps://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-EPSLegal", + "location": [ + "Bundle.entry[1].resource.ofType(MedicationRequest).requester", + "Line 1, Col 2838" + ] + }, + { + "severity": "warning", + "code": "processing", + "diagnostics": "prac-gmc: 'GMC must be of the format CNNNNNNN' Rule 'GMC must be of the format CNNNNNNN' Failed", + "location": [ + "Bundle.entry[3].resource.ofType(Practitioner)", + "Line 1, Col 1" + ] + }, + { + "severity": "warning", + "code": "processing", + "diagnostics": "role-spurious: 'Spurious Code format must be G6NNNNNN or G7NNNNNN' Rule 'Spurious Code format must be G6NNNNNN or G7NNNNNN' Failed", + "location": [ + "Bundle.entry[4].resource.ofType(PractitionerRole)", + "Line 1, Col 1" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "Except for transactions and batches, each entry in a Bundle must have a fullUrl which is the identity of the resource in the entry ", + "location": [ + "Bundle.entry[0]", + "Line 1, Col 360" + ] + } + ] +} diff --git a/dual/src/test/resources/results/5.4.2/invalidOperationOutcome.json b/dual/src/test/resources/results/5.4.2/invalidOperationOutcome.json new file mode 100644 index 00000000..a546e765 --- /dev/null +++ b/dual/src/test/resources/results/5.4.2/invalidOperationOutcome.json @@ -0,0 +1,14 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "OperationOutcome.issue: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-OperationOutcome)", + "location": [ + "OperationOutcome", + "Line 1, Col 47" + ] + } + ] +} diff --git a/dual/src/test/resources/results/5.4.2/invalidParameters.json b/dual/src/test/resources/results/5.4.2/invalidParameters.json new file mode 100644 index 00000000..4b4952af --- /dev/null +++ b/dual/src/test/resources/results/5.4.2/invalidParameters.json @@ -0,0 +1,14 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "inv-1: 'A parameter must have one and only one of (value, resource, part)' Rule 'A parameter must have one and only one of (value, resource, part)' Failed", + "location": [ + "Parameters.parameter[0]", + "Line 1, Col 52" + ] + } + ] +} diff --git a/dual/src/test/resources/results/missingHeader.json b/dual/src/test/resources/results/5.4.2/missingHeader.json similarity index 100% rename from dual/src/test/resources/results/missingHeader.json rename to dual/src/test/resources/results/5.4.2/missingHeader.json diff --git a/dual/src/test/resources/results/null_java.json b/dual/src/test/resources/results/5.4.2/null_java.json similarity index 100% rename from dual/src/test/resources/results/null_java.json rename to dual/src/test/resources/results/5.4.2/null_java.json diff --git a/dual/src/test/resources/results/5.4.2/null_json.json b/dual/src/test/resources/results/5.4.2/null_json.json new file mode 100644 index 00000000..a2179dc3 --- /dev/null +++ b/dual/src/test/resources/results/5.4.2/null_json.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "Failed to parse JSON encoded FHIR content: Content does not appear to be FHIR JSON, first non-whitespace character was: 'n' (must be '{')" + } + ] +} diff --git a/dual/src/test/resources/results/5.4.2/number_json.json b/dual/src/test/resources/results/5.4.2/number_json.json new file mode 100644 index 00000000..b7e587a0 --- /dev/null +++ b/dual/src/test/resources/results/5.4.2/number_json.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "Failed to parse JSON encoded FHIR content: Content does not appear to be FHIR JSON, first non-whitespace character was: '1' (must be '{')" + } + ] +} diff --git a/dual/src/test/resources/results/psu_nhs_digital.json b/dual/src/test/resources/results/5.4.2/psu_nhs_digital.json similarity index 100% rename from dual/src/test/resources/results/psu_nhs_digital.json rename to dual/src/test/resources/results/5.4.2/psu_nhs_digital.json diff --git a/dual/src/test/resources/results/5.4.2/psu_update.json b/dual/src/test/resources/results/5.4.2/psu_update.json new file mode 100644 index 00000000..14b78e97 --- /dev/null +++ b/dual/src/test/resources/results/5.4.2/psu_update.json @@ -0,0 +1,68 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "information", + "code": "processing", + "diagnostics": "Binding for path Bundle.entry[0].resource.ofType(Task).businessStatus has no source, so can't be checked", + "location": [ + "Bundle.entry[0].resource.ofType(Task).businessStatus", + "Line 1, Col 668" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "Task.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", + "location": [ + "Bundle.entry[0].resource.ofType(Task)", + "Line 1, Col 267" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "Task.code: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", + "location": [ + "Bundle.entry[0].resource.ofType(Task)", + "Line 1, Col 267" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "Task.authoredOn: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", + "location": [ + "Bundle.entry[0].resource.ofType(Task)", + "Line 1, Col 267" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "Task.requester: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", + "location": [ + "Bundle.entry[0].resource.ofType(Task)", + "Line 1, Col 267" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "None of the codings provided are in the value set https://fhir.nhs.uk/ValueSet/DM-task-business-status (https://fhir.nhs.uk/ValueSet/DM-task-business-status), and a coding from this value set is required) (codes = https://fhir.nhs.uk/CodeSystem/task-businessStatus-nppt#Dispatched)", + "location": [ + "Bundle.entry[0].resource.ofType(Task).businessStatus", + "Line 1, Col 668" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "Task.businessStatus.coding.display: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", + "location": [ + "Bundle.entry[0].resource.ofType(Task).businessStatus.coding[0]", + "Line 1, Col 676" + ] + } + ] +} diff --git a/dual/src/test/resources/results/5.4.2/searchSet.json b/dual/src/test/resources/results/5.4.2/searchSet.json new file mode 100644 index 00000000..3f3c62bf --- /dev/null +++ b/dual/src/test/resources/results/5.4.2/searchSet.json @@ -0,0 +1,607 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest)", + "Line 1, Col 246" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.identifier:prescriptionOrderItem: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest)", + "Line 1, Col 246" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest)", + "Line 1, Col 246" + ] + }, + { + "severity": "warning", + "code": "processing", + "diagnostics": "None of the codings provided are in the value set https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#39732311000001104)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept)", + "Line 1, Col 492" + ] + }, + { + "severity": "information", + "code": "processing", + "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept).coding[0]", + "Line 1, Col 500" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "CodeableConcept.coding:SNOMED: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept)", + "Line 1, Col 492" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).groupIdentifier", + "Line 1, Col 933" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).groupIdentifier", + "Line 1, Col 933" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "None of the codings provided are in the value set https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).courseOfTherapyType", + "Line 1, Col 1090" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).dispenseRequest", + "Line 1, Col 1329" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.dispenseRequest.extension:performerSiteType: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).dispenseRequest", + "Line 1, Col 1329" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[1].resource.ofType(MedicationRequest)", + "Line 1, Col 1874" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.identifier:prescriptionOrderItem: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[1].resource.ofType(MedicationRequest)", + "Line 1, Col 1874" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[1].resource.ofType(MedicationRequest)", + "Line 1, Col 1874" + ] + }, + { + "severity": "warning", + "code": "processing", + "diagnostics": "None of the codings provided are in the value set https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#322341003)", + "location": [ + "Bundle.entry[1].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept)", + "Line 1, Col 2120" + ] + }, + { + "severity": "information", + "code": "processing", + "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept", + "location": [ + "Bundle.entry[1].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept).coding[0]", + "Line 1, Col 2128" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "CodeableConcept.coding:SNOMED: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept)", + "location": [ + "Bundle.entry[1].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept)", + "Line 1, Col 2120" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[1].resource.ofType(MedicationRequest).groupIdentifier", + "Line 1, Col 2556" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[1].resource.ofType(MedicationRequest).groupIdentifier", + "Line 1, Col 2556" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "None of the codings provided are in the value set https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", + "location": [ + "Bundle.entry[1].resource.ofType(MedicationRequest).courseOfTherapyType", + "Line 1, Col 2713" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[1].resource.ofType(MedicationRequest).dispenseRequest", + "Line 1, Col 2952" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.dispenseRequest.extension:performerSiteType: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[1].resource.ofType(MedicationRequest).dispenseRequest", + "Line 1, Col 2952" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[2].resource.ofType(MedicationRequest)", + "Line 1, Col 3497" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.identifier:prescriptionOrderItem: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[2].resource.ofType(MedicationRequest)", + "Line 1, Col 3497" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[2].resource.ofType(MedicationRequest)", + "Line 1, Col 3497" + ] + }, + { + "severity": "warning", + "code": "processing", + "diagnostics": "None of the codings provided are in the value set https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#321080004)", + "location": [ + "Bundle.entry[2].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept)", + "Line 1, Col 3743" + ] + }, + { + "severity": "information", + "code": "processing", + "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept", + "location": [ + "Bundle.entry[2].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept).coding[0]", + "Line 1, Col 3751" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "CodeableConcept.coding:SNOMED: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept)", + "location": [ + "Bundle.entry[2].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept)", + "Line 1, Col 3743" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[2].resource.ofType(MedicationRequest).groupIdentifier", + "Line 1, Col 4192" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[2].resource.ofType(MedicationRequest).groupIdentifier", + "Line 1, Col 4192" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "None of the codings provided are in the value set https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", + "location": [ + "Bundle.entry[2].resource.ofType(MedicationRequest).courseOfTherapyType", + "Line 1, Col 4349" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[2].resource.ofType(MedicationRequest).dispenseRequest", + "Line 1, Col 4588" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.dispenseRequest.extension:performerSiteType: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[2].resource.ofType(MedicationRequest).dispenseRequest", + "Line 1, Col 4588" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[3].resource.ofType(MedicationRequest)", + "Line 1, Col 5133" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.identifier:prescriptionOrderItem: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[3].resource.ofType(MedicationRequest)", + "Line 1, Col 5133" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[3].resource.ofType(MedicationRequest)", + "Line 1, Col 5133" + ] + }, + { + "severity": "warning", + "code": "processing", + "diagnostics": "None of the codings provided are in the value set https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#324252006)", + "location": [ + "Bundle.entry[3].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept)", + "Line 1, Col 5382" + ] + }, + { + "severity": "information", + "code": "processing", + "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept", + "location": [ + "Bundle.entry[3].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept).coding[0]", + "Line 1, Col 5390" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "CodeableConcept.coding:SNOMED: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept)", + "location": [ + "Bundle.entry[3].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept)", + "Line 1, Col 5382" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[3].resource.ofType(MedicationRequest).groupIdentifier", + "Line 1, Col 5816" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[3].resource.ofType(MedicationRequest).groupIdentifier", + "Line 1, Col 5816" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "None of the codings provided are in the value set https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", + "location": [ + "Bundle.entry[3].resource.ofType(MedicationRequest).courseOfTherapyType", + "Line 1, Col 5973" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[3].resource.ofType(MedicationRequest).dispenseRequest", + "Line 1, Col 6212" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.dispenseRequest.extension:performerSiteType: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[3].resource.ofType(MedicationRequest).dispenseRequest", + "Line 1, Col 6212" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest)", + "Line 1, Col 246" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.identifier:prescriptionOrderItem: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest)", + "Line 1, Col 246" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest)", + "Line 1, Col 246" + ] + }, + { + "severity": "warning", + "code": "processing", + "diagnostics": "None of the codings provided are in the value set https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#324252006)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept)", + "Line 1, Col 495" + ] + }, + { + "severity": "information", + "code": "processing", + "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept).coding[0]", + "Line 1, Col 503" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "CodeableConcept.coding:SNOMED: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept)", + "Line 1, Col 495" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).groupIdentifier", + "Line 1, Col 929" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).groupIdentifier", + "Line 1, Col 929" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "None of the codings provided are in the value set https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).courseOfTherapyType", + "Line 1, Col 1086" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).dispenseRequest", + "Line 1, Col 1325" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.dispenseRequest.extension:performerSiteType: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).dispenseRequest", + "Line 1, Col 1325" + ] + }, + { + "severity": "warning", + "code": "processing", + "diagnostics": "URN reference is not locally contained within the bundle urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).requester" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest)", + "Line 1, Col 246" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.identifier:prescriptionOrderItem: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest)", + "Line 1, Col 246" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest)", + "Line 1, Col 246" + ] + }, + { + "severity": "warning", + "code": "processing", + "diagnostics": "None of the codings provided are in the value set https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#39732311000001104)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept)", + "Line 1, Col 492" + ] + }, + { + "severity": "information", + "code": "processing", + "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept).coding[0]", + "Line 1, Col 500" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "CodeableConcept.coding:SNOMED: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept)", + "Line 1, Col 492" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).groupIdentifier", + "Line 1, Col 933" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).groupIdentifier", + "Line 1, Col 933" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "None of the codings provided are in the value set https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).courseOfTherapyType", + "Line 1, Col 1090" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).dispenseRequest", + "Line 1, Col 1329" + ] + }, + { + "severity": "error", + "code": "processing", + "diagnostics": "MedicationRequest.dispenseRequest.extension:performerSiteType: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", + "location": [ + "Bundle.entry[0].resource.ofType(MedicationRequest).dispenseRequest", + "Line 1, Col 1329" + ] + } + ] +} diff --git a/dual/src/test/resources/results/validParameters.json b/dual/src/test/resources/results/5.4.2/successfulOperationOutcome.json similarity index 100% rename from dual/src/test/resources/results/validParameters.json rename to dual/src/test/resources/results/5.4.2/successfulOperationOutcome.json diff --git a/dual/src/test/resources/results/5.4.2/validBundle.json b/dual/src/test/resources/results/5.4.2/validBundle.json new file mode 100644 index 00000000..b437772d --- /dev/null +++ b/dual/src/test/resources/results/5.4.2/validBundle.json @@ -0,0 +1,59 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "warning", + "code": "processing", + "diagnostics": "None of the codings provided are in the value set https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#39732311000001104)", + "location": [ + "Bundle.entry[1].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept)", + "Line 1, Col 2877" + ] + }, + { + "severity": "warning", + "code": "processing", + "diagnostics": "None of the codings provided are in the value set https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#322341003)", + "location": [ + "Bundle.entry[2].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept)", + "Line 1, Col 6222" + ] + }, + { + "severity": "warning", + "code": "processing", + "diagnostics": "None of the codings provided are in the value set https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#321080004)", + "location": [ + "Bundle.entry[3].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept)", + "Line 1, Col 9562" + ] + }, + { + "severity": "warning", + "code": "processing", + "diagnostics": "None of the codings provided are in the value set https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#324252006)", + "location": [ + "Bundle.entry[4].resource.ofType(MedicationRequest).medication.ofType(CodeableConcept)", + "Line 1, Col 12915" + ] + }, + { + "severity": "warning", + "code": "processing", + "diagnostics": "Unknown code in fragment CodeSystem 'https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode#R8000' for 'https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode#R8000'", + "location": [ + "Bundle.entry[6].resource.ofType(PractitionerRole).code[0].coding[0]", + "Line 1, Col 16802" + ] + }, + { + "severity": "warning", + "code": "processing", + "diagnostics": "prac-gmc: 'GMC must be of the format CNNNNNNN' Rule 'GMC must be of the format CNNNNNNN' Failed", + "location": [ + "Bundle.entry[7].resource.ofType(Practitioner)", + "Line 1, Col 1" + ] + } + ] +} diff --git a/dual/src/test/resources/results/validSimpleBundle.json b/dual/src/test/resources/results/5.4.2/validParameters.json similarity index 100% rename from dual/src/test/resources/results/validSimpleBundle.json rename to dual/src/test/resources/results/5.4.2/validParameters.json diff --git a/dual/src/test/resources/results/5.4.2/validSimpleBundle.json b/dual/src/test/resources/results/5.4.2/validSimpleBundle.json new file mode 100644 index 00000000..08a3fa46 --- /dev/null +++ b/dual/src/test/resources/results/5.4.2/validSimpleBundle.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "information", + "code": "informational", + "diagnostics": "No issues detected during validation" + } + ] +} diff --git a/dual/src/test/resources/results/array.json b/dual/src/test/resources/results/7.6.1/array.json similarity index 100% rename from dual/src/test/resources/results/array.json rename to dual/src/test/resources/results/7.6.1/array.json diff --git a/dual/src/test/resources/results/bad_json.json b/dual/src/test/resources/results/7.6.1/bad_json.json similarity index 100% rename from dual/src/test/resources/results/bad_json.json rename to dual/src/test/resources/results/7.6.1/bad_json.json diff --git a/dual/src/test/resources/results/boolean_json.json b/dual/src/test/resources/results/7.6.1/boolean_json.json similarity index 100% rename from dual/src/test/resources/results/boolean_json.json rename to dual/src/test/resources/results/7.6.1/boolean_json.json diff --git a/dual/src/test/resources/results/empty.json b/dual/src/test/resources/results/7.6.1/empty.json similarity index 100% rename from dual/src/test/resources/results/empty.json rename to dual/src/test/resources/results/7.6.1/empty.json diff --git a/dual/src/test/resources/results/invalidBundle.json b/dual/src/test/resources/results/7.6.1/invalidBundle.json similarity index 100% rename from dual/src/test/resources/results/invalidBundle.json rename to dual/src/test/resources/results/7.6.1/invalidBundle.json diff --git a/dual/src/test/resources/results/invalidOperationOutcome.json b/dual/src/test/resources/results/7.6.1/invalidOperationOutcome.json similarity index 100% rename from dual/src/test/resources/results/invalidOperationOutcome.json rename to dual/src/test/resources/results/7.6.1/invalidOperationOutcome.json diff --git a/dual/src/test/resources/results/invalidParameters.json b/dual/src/test/resources/results/7.6.1/invalidParameters.json similarity index 100% rename from dual/src/test/resources/results/invalidParameters.json rename to dual/src/test/resources/results/7.6.1/invalidParameters.json diff --git a/dual/src/test/resources/results/7.6.1/missingHeader.json b/dual/src/test/resources/results/7.6.1/missingHeader.json new file mode 100644 index 00000000..f59f1f0c --- /dev/null +++ b/dual/src/test/resources/results/7.6.1/missingHeader.json @@ -0,0 +1,13 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "No MessageHeader found.", + "expression": [ + "Bundle.entry" + ] + } + ] +} diff --git a/dual/src/test/resources/results/7.6.1/null_java.json b/dual/src/test/resources/results/7.6.1/null_java.json new file mode 100644 index 00000000..27be4901 --- /dev/null +++ b/dual/src/test/resources/results/7.6.1/null_java.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "error", + "code": "processing", + "diagnostics": "Cannot invoke \"String.length()\" because \"s\" is null" + } + ] +} diff --git a/dual/src/test/resources/results/null_json.json b/dual/src/test/resources/results/7.6.1/null_json.json similarity index 100% rename from dual/src/test/resources/results/null_json.json rename to dual/src/test/resources/results/7.6.1/null_json.json diff --git a/dual/src/test/resources/results/number_json.json b/dual/src/test/resources/results/7.6.1/number_json.json similarity index 100% rename from dual/src/test/resources/results/number_json.json rename to dual/src/test/resources/results/7.6.1/number_json.json diff --git a/dual/src/test/resources/results/7.6.1/psu_nhs_digital.json b/dual/src/test/resources/results/7.6.1/psu_nhs_digital.json new file mode 100644 index 00000000..f43818cf --- /dev/null +++ b/dual/src/test/resources/results/7.6.1/psu_nhs_digital.json @@ -0,0 +1,210 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1004 + } + ], + "severity": "warning", + "code": "processing", + "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", + "Line[1] Col[1004]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1004 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "Task.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", + "Line[1] Col[1004]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1004 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "Task.code: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", + "Line[1] Col[1004]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1004 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "Task.authoredOn: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", + "Line[1] Col[1004]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 1004 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "Task.requester: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", + "Line[1] Col[1004]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 625 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Terminology_TX_NoValid_1_CC" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Terminology_TX_NoValid_1_CC" + } + ] + }, + "diagnostics": "None of the codings provided are in the value set 'EPSTaskBusinessPrescriptionStatus' (https://fhir.nhs.uk/ValueSet/DM-task-business-status|1.0.0), and a coding from this value set is required) (codes = https://fhir.nhs.uk/CodeSystem/task-businessStatus-nppt#Dispatched)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/.businessStatus", + "Line[1] Col[625]" + ] + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", + "valueInteger": 1 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", + "valueInteger": 623 + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", + "valueString": "Validation_VAL_Profile_Minimum" + } + ], + "severity": "error", + "code": "processing", + "details": { + "coding": [ + { + "system": "http://hl7.org/fhir/java-core-messageId", + "code": "Validation_VAL_Profile_Minimum" + } + ] + }, + "diagnostics": "Task.businessStatus.coding.display: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", + "location": [ + "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/.businessStatus.coding[0]", + "Line[1] Col[623]" + ] + } + ] +} diff --git a/dual/src/test/resources/results/psu_update.json b/dual/src/test/resources/results/7.6.1/psu_update.json similarity index 100% rename from dual/src/test/resources/results/psu_update.json rename to dual/src/test/resources/results/7.6.1/psu_update.json diff --git a/dual/src/test/resources/results/searchSet.json b/dual/src/test/resources/results/7.6.1/searchSet.json similarity index 100% rename from dual/src/test/resources/results/searchSet.json rename to dual/src/test/resources/results/7.6.1/searchSet.json diff --git a/dual/src/test/resources/results/successfulOperationOutcome.json b/dual/src/test/resources/results/7.6.1/successfulOperationOutcome.json similarity index 100% rename from dual/src/test/resources/results/successfulOperationOutcome.json rename to dual/src/test/resources/results/7.6.1/successfulOperationOutcome.json diff --git a/dual/src/test/resources/results/validBundle.json b/dual/src/test/resources/results/7.6.1/validBundle.json similarity index 100% rename from dual/src/test/resources/results/validBundle.json rename to dual/src/test/resources/results/7.6.1/validBundle.json diff --git a/dual/src/test/resources/results/7.6.1/validParameters.json b/dual/src/test/resources/results/7.6.1/validParameters.json new file mode 100644 index 00000000..08a3fa46 --- /dev/null +++ b/dual/src/test/resources/results/7.6.1/validParameters.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "information", + "code": "informational", + "diagnostics": "No issues detected during validation" + } + ] +} diff --git a/dual/src/test/resources/results/7.6.1/validSimpleBundle.json b/dual/src/test/resources/results/7.6.1/validSimpleBundle.json new file mode 100644 index 00000000..08a3fa46 --- /dev/null +++ b/dual/src/test/resources/results/7.6.1/validSimpleBundle.json @@ -0,0 +1,10 @@ +{ + "resourceType": "OperationOutcome", + "issue": [ + { + "severity": "information", + "code": "informational", + "diagnostics": "No issues detected during validation" + } + ] +} From 1593c1726d7c688051fcc7e410411d835fcbc18a Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 6 May 2025 09:36:28 +0000 Subject: [PATCH 21/35] working tests --- .../Validator_nhs_digital_Test.java | 2 +- .../results/5.4.2/psu_nhs_digital.json | 176 ++---------------- .../resources/results/5.4.2/psu_update.json | 56 +----- 3 files changed, 19 insertions(+), 215 deletions(-) diff --git a/dual/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java b/dual/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java index 3a1cd9e2..cbeebd35 100644 --- a/dual/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java +++ b/dual/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java @@ -117,7 +117,7 @@ void invalidBundle() { "Unable to find a match for profile urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666 among choices: https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-EPSLegal", OperationOutcome.IssueSeverity.ERROR)); assertTrue(issueListHasDiagnosticMessageAtSeverity(validatorResult.getIssue(), - "Except for transactions and batches, each entry in a Bundle must have a fullUrl which is the identity of the resource in the entry", + "Except for transactions and batches, each entry in a Bundle must have a fullUrl which is the identity of the resource in the entry ", OperationOutcome.IssueSeverity.ERROR)); } diff --git a/dual/src/test/resources/results/5.4.2/psu_nhs_digital.json b/dual/src/test/resources/results/5.4.2/psu_nhs_digital.json index f43818cf..14b78e97 100644 --- a/dual/src/test/resources/results/5.4.2/psu_nhs_digital.json +++ b/dual/src/test/resources/results/5.4.2/psu_nhs_digital.json @@ -2,208 +2,66 @@ "resourceType": "OperationOutcome", "issue": [ { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1004 - } - ], - "severity": "warning", + "severity": "information", "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", + "diagnostics": "Binding for path Bundle.entry[0].resource.ofType(Task).businessStatus has no source, so can't be checked", "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", - "Line[1] Col[1004]" + "Bundle.entry[0].resource.ofType(Task).businessStatus", + "Line 1, Col 668" ] }, { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1004 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], "severity": "error", "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, "diagnostics": "Task.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", - "Line[1] Col[1004]" + "Bundle.entry[0].resource.ofType(Task)", + "Line 1, Col 267" ] }, { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1004 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], "severity": "error", "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, "diagnostics": "Task.code: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", - "Line[1] Col[1004]" + "Bundle.entry[0].resource.ofType(Task)", + "Line 1, Col 267" ] }, { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1004 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], "severity": "error", "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, "diagnostics": "Task.authoredOn: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", - "Line[1] Col[1004]" + "Bundle.entry[0].resource.ofType(Task)", + "Line 1, Col 267" ] }, { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1004 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], "severity": "error", "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, "diagnostics": "Task.requester: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", - "Line[1] Col[1004]" + "Bundle.entry[0].resource.ofType(Task)", + "Line 1, Col 267" ] }, { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 625 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_1_CC" - } - ], "severity": "error", "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_1_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'EPSTaskBusinessPrescriptionStatus' (https://fhir.nhs.uk/ValueSet/DM-task-business-status|1.0.0), and a coding from this value set is required) (codes = https://fhir.nhs.uk/CodeSystem/task-businessStatus-nppt#Dispatched)", + "diagnostics": "None of the codings provided are in the value set https://fhir.nhs.uk/ValueSet/DM-task-business-status (https://fhir.nhs.uk/ValueSet/DM-task-business-status), and a coding from this value set is required) (codes = https://fhir.nhs.uk/CodeSystem/task-businessStatus-nppt#Dispatched)", "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/.businessStatus", - "Line[1] Col[625]" + "Bundle.entry[0].resource.ofType(Task).businessStatus", + "Line 1, Col 668" ] }, { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 623 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], "severity": "error", "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, "diagnostics": "Task.businessStatus.coding.display: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/.businessStatus.coding[0]", - "Line[1] Col[623]" + "Bundle.entry[0].resource.ofType(Task).businessStatus.coding[0]", + "Line 1, Col 676" ] } ] diff --git a/dual/src/test/resources/results/5.4.2/psu_update.json b/dual/src/test/resources/results/5.4.2/psu_update.json index 14b78e97..dd94150d 100644 --- a/dual/src/test/resources/results/5.4.2/psu_update.json +++ b/dual/src/test/resources/results/5.4.2/psu_update.json @@ -7,61 +7,7 @@ "diagnostics": "Binding for path Bundle.entry[0].resource.ofType(Task).businessStatus has no source, so can't be checked", "location": [ "Bundle.entry[0].resource.ofType(Task).businessStatus", - "Line 1, Col 668" - ] - }, - { - "severity": "error", - "code": "processing", - "diagnostics": "Task.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", - "location": [ - "Bundle.entry[0].resource.ofType(Task)", - "Line 1, Col 267" - ] - }, - { - "severity": "error", - "code": "processing", - "diagnostics": "Task.code: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", - "location": [ - "Bundle.entry[0].resource.ofType(Task)", - "Line 1, Col 267" - ] - }, - { - "severity": "error", - "code": "processing", - "diagnostics": "Task.authoredOn: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", - "location": [ - "Bundle.entry[0].resource.ofType(Task)", - "Line 1, Col 267" - ] - }, - { - "severity": "error", - "code": "processing", - "diagnostics": "Task.requester: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", - "location": [ - "Bundle.entry[0].resource.ofType(Task)", - "Line 1, Col 267" - ] - }, - { - "severity": "error", - "code": "processing", - "diagnostics": "None of the codings provided are in the value set https://fhir.nhs.uk/ValueSet/DM-task-business-status (https://fhir.nhs.uk/ValueSet/DM-task-business-status), and a coding from this value set is required) (codes = https://fhir.nhs.uk/CodeSystem/task-businessStatus-nppt#Dispatched)", - "location": [ - "Bundle.entry[0].resource.ofType(Task).businessStatus", - "Line 1, Col 668" - ] - }, - { - "severity": "error", - "code": "processing", - "diagnostics": "Task.businessStatus.coding.display: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", - "location": [ - "Bundle.entry[0].resource.ofType(Task).businessStatus.coding[0]", - "Line 1, Col 676" + "Line 1, Col 481" ] } ] From 366a7a86e0a072b2e287af0810451aff7b06d5a4 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 6 May 2025 10:18:51 +0000 Subject: [PATCH 22/35] refactor --- Makefile | 17 +- SAMtemplates/main_template.yaml | 6 +- latest/licenses/allowedMissingLicense.xml | 8 - latest/licenses/licenses.xml | 153 -- latest/pom.xml | 313 --- .../configuration/ValidatorConfiguration.java | 211 -- .../controller/ValidateController.java | 117 - .../fhirvalidator/handler/HandlerStream.java | 81 - .../models/SimplifierPackage.java | 13 - .../service/CapabilityStatementApplier.java | 51 - .../service/ImplementationGuideParser.java | 43 - .../service/MessageDefinitionApplier.java | 145 - .../nhs/fhirvalidator/util/FhirUtils.java | 44 - .../util/OperationOutcomeUtils.java | 39 - .../nhs/fhirvalidator/util/ResourceUtils.java | 37 - latest/src/main/resources/log4j2.xml | 16 - .../main/resources/nhs_digital.manifest.json | 14 - latest/src/main/resources/primerPayload.json | 467 ---- .../src/main/resources/uk_core.manifest.json | 6 - .../nhs/fhirvalidator/HandlerTest.java | 51 - .../Validator_nhs_digital_Test.java | 310 --- .../fhirvalidator/Validator_uk_core_Test.java | 179 -- .../resources/examples/invalidBundle.json | 376 --- .../examples/invalidOperationOutcome.json | 6 - .../resources/examples/invalidParameters.json | 8 - .../resources/examples/missingHeader.json | 696 ----- .../test/resources/examples/psu_update.json | 54 - .../test/resources/examples/searchSet.json | 711 ----- .../resources/examples/stepFunctionEvent.json | 75 - .../test/resources/examples/validBundle.json | 749 ------ .../examples/validOperationOutcome.json | 12 - .../resources/examples/validParameters.json | 9 - latest/src/test/resources/logback-test.xml | 10 - latest/src/test/resources/results/array.json | 10 - .../src/test/resources/results/bad_json.json | 10 - .../test/resources/results/boolean_json.json | 10 - latest/src/test/resources/results/empty.json | 10 - .../test/resources/results/invalidBundle.json | 431 --- .../results/invalidOperationOutcome.json | 55 - .../resources/results/invalidParameters.json | 36 - .../test/resources/results/missingHeader.json | 13 - .../src/test/resources/results/null_java.json | 10 - .../src/test/resources/results/null_json.json | 10 - .../test/resources/results/number_json.json | 10 - .../resources/results/psu_nhs_digital.json | 210 -- .../test/resources/results/psu_update.json | 24 - .../src/test/resources/results/searchSet.json | 2396 ----------------- .../resources/results/stepFunctionResult.json | 24 - .../results/successfulOperationOutcome.json | 24 - .../test/resources/results/validBundle.json | 674 ----- .../resources/results/validParameters.json | 10 - .../resources/results/validSimpleBundle.json | 10 - legacy/licenses/allowedMissingLicense.xml | 8 - legacy/licenses/licenses.xml | 166 -- legacy/pom.xml | 308 --- .../configuration/ValidatorConfiguration.java | 255 -- .../controller/ValidateController.java | 117 - .../fhirvalidator/handler/HandlerStream.java | 81 - .../models/SimplifierPackage.java | 13 - .../service/CapabilityStatementApplier.java | 51 - .../service/ImplementationGuideParser.java | 43 - .../service/MessageDefinitionApplier.java | 145 - .../nhs/fhirvalidator/util/FhirUtils.java | 44 - .../util/OperationOutcomeUtils.java | 39 - .../nhs/fhirvalidator/util/ResourceUtils.java | 37 - legacy/src/main/resources/log4j2.xml | 16 - .../main/resources/nhs_digital.manifest.json | 14 - legacy/src/main/resources/primerPayload.json | 467 ---- .../src/main/resources/uk_core.manifest.json | 6 - .../nhs/fhirvalidator/HandlerTest.java.ignore | 51 - .../Validator_nhs_digital_Test.java.ignore | 310 --- .../Validator_uk_core_Test.java.ignore | 179 -- .../resources/examples/invalidBundle.json | 376 --- .../examples/invalidOperationOutcome.json | 6 - .../resources/examples/invalidParameters.json | 8 - .../resources/examples/missingHeader.json | 696 ----- .../test/resources/examples/psu_update.json | 54 - .../test/resources/examples/searchSet.json | 711 ----- .../resources/examples/stepFunctionEvent.json | 75 - .../test/resources/examples/validBundle.json | 749 ------ .../examples/validOperationOutcome.json | 12 - .../resources/examples/validParameters.json | 9 - legacy/src/test/resources/logback-test.xml | 10 - legacy/src/test/resources/results/array.json | 10 - .../src/test/resources/results/bad_json.json | 10 - .../test/resources/results/boolean_json.json | 10 - legacy/src/test/resources/results/empty.json | 10 - .../test/resources/results/invalidBundle.json | 431 --- .../results/invalidOperationOutcome.json | 55 - .../resources/results/invalidParameters.json | 36 - .../test/resources/results/missingHeader.json | 13 - .../src/test/resources/results/null_java.json | 10 - .../src/test/resources/results/null_json.json | 10 - .../test/resources/results/number_json.json | 10 - .../resources/results/psu_nhs_digital.json | 210 -- .../test/resources/results/psu_update.json | 24 - .../src/test/resources/results/searchSet.json | 2396 ----------------- .../resources/results/stepFunctionResult.json | 24 - .../results/successfulOperationOutcome.json | 24 - .../test/resources/results/validBundle.json | 674 ----- .../resources/results/validParameters.json | 10 - .../resources/results/validSimpleBundle.json | 10 - .../allowedMissingLicense.xml | 0 {dual/licenses => licenses}/licenses.xml | 0 dual/pom.xml => pom.xml | 4 +- scripts/download_dependencies.py | 11 +- .../configuration/GetValueSetImpl.java | 0 .../configuration/GetValueSetImpl.java | 0 .../configuration/GetValueSetInterface.java | 0 .../configuration/ValidatorConfiguration.java | 0 .../controller/ValidateController.java | 0 .../fhirvalidator/handler/HandlerStream.java | 0 .../models/SimplifierPackage.java | 0 .../service/CapabilityStatementApplier.java | 0 .../service/ImplementationGuideParser.java | 0 .../service/MessageDefinitionApplier.java | 0 .../nhs/fhirvalidator/util/FhirUtils.java | 0 .../util/OperationOutcomeUtils.java | 0 .../nhs/fhirvalidator/util/ResourceUtils.java | 0 {dual/src => src}/main/resources/log4j2.xml | 0 .../main/resources/nhs_digital.manifest.json | 0 .../main/resources/primerPayload.json | 0 .../main/resources/uk_core.manifest.json | 0 .../nhs/fhirvalidator/HandlerTest.java | 0 .../Validator_nhs_digital_Test.java | 4 +- .../fhirvalidator/Validator_uk_core_Test.java | 0 .../resources/examples/invalidBundle.json | 0 .../examples/invalidOperationOutcome.json | 0 .../resources/examples/invalidParameters.json | 0 .../resources/examples/missingHeader.json | 0 .../test/resources/examples/psu_update.json | 0 .../test/resources/examples/searchSet.json | 0 .../resources/examples/stepFunctionEvent.json | 0 .../test/resources/examples/validBundle.json | 0 .../examples/validOperationOutcome.json | 0 .../resources/examples/validParameters.json | 0 .../test/resources/logback-test.xml | 0 .../test/resources/results/5.4.2/array.json | 0 .../resources/results/5.4.2/bad_json.json | 0 .../resources/results/5.4.2/boolean_json.json | 0 .../test/resources/results/5.4.2/empty.json | 0 .../results/5.4.2/invalidBundle.json | 0 .../5.4.2/invalidOperationOutcome.json | 0 .../results/5.4.2/invalidParameters.json | 0 .../results/5.4.2/missingHeader.json | 0 .../resources/results/5.4.2/null_java.json | 0 .../resources/results/5.4.2/null_json.json | 0 .../resources/results/5.4.2/number_json.json | 0 .../results/5.4.2/psu_nhs_digital.json | 0 .../resources/results/5.4.2/psu_update.json | 0 .../resources/results/5.4.2/searchSet.json | 0 .../results/5.4.2/stepFunctionResult.json | 0 .../5.4.2/successfulOperationOutcome.json | 0 .../resources/results/5.4.2/validBundle.json | 0 .../results/5.4.2/validParameters.json | 0 .../results/5.4.2/validSimpleBundle.json | 0 .../test/resources/results/7.6.1/array.json | 0 .../resources/results/7.6.1/bad_json.json | 0 .../resources/results/7.6.1/boolean_json.json | 0 .../test/resources/results/7.6.1/empty.json | 0 .../results/7.6.1/invalidBundle.json | 0 .../7.6.1/invalidOperationOutcome.json | 0 .../results/7.6.1/invalidParameters.json | 0 .../results/7.6.1/missingHeader.json | 0 .../resources/results/7.6.1/null_java.json | 0 .../resources/results/7.6.1/null_json.json | 0 .../resources/results/7.6.1/number_json.json | 0 .../results/7.6.1/psu_nhs_digital.json | 0 .../resources/results/7.6.1/psu_update.json | 0 .../resources/results/7.6.1/searchSet.json | 0 .../results/7.6.1/stepFunctionResult.json | 0 .../7.6.1/successfulOperationOutcome.json | 0 .../resources/results/7.6.1/validBundle.json | 0 .../results/7.6.1/validParameters.json | 0 .../results/7.6.1/validSimpleBundle.json | 0 175 files changed, 29 insertions(+), 18027 deletions(-) delete mode 100644 latest/licenses/allowedMissingLicense.xml delete mode 100644 latest/licenses/licenses.xml delete mode 100644 latest/pom.xml delete mode 100644 latest/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java delete mode 100644 latest/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java delete mode 100644 latest/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java delete mode 100644 latest/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java delete mode 100644 latest/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java delete mode 100644 latest/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java delete mode 100644 latest/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java delete mode 100644 latest/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java delete mode 100644 latest/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java delete mode 100644 latest/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java delete mode 100644 latest/src/main/resources/log4j2.xml delete mode 100644 latest/src/main/resources/nhs_digital.manifest.json delete mode 100644 latest/src/main/resources/primerPayload.json delete mode 100644 latest/src/main/resources/uk_core.manifest.json delete mode 100644 latest/src/test/java/software/nhs/fhirvalidator/HandlerTest.java delete mode 100644 latest/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java delete mode 100644 latest/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java delete mode 100644 latest/src/test/resources/examples/invalidBundle.json delete mode 100644 latest/src/test/resources/examples/invalidOperationOutcome.json delete mode 100644 latest/src/test/resources/examples/invalidParameters.json delete mode 100644 latest/src/test/resources/examples/missingHeader.json delete mode 100644 latest/src/test/resources/examples/psu_update.json delete mode 100644 latest/src/test/resources/examples/searchSet.json delete mode 100644 latest/src/test/resources/examples/stepFunctionEvent.json delete mode 100644 latest/src/test/resources/examples/validBundle.json delete mode 100644 latest/src/test/resources/examples/validOperationOutcome.json delete mode 100644 latest/src/test/resources/examples/validParameters.json delete mode 100644 latest/src/test/resources/logback-test.xml delete mode 100644 latest/src/test/resources/results/array.json delete mode 100644 latest/src/test/resources/results/bad_json.json delete mode 100644 latest/src/test/resources/results/boolean_json.json delete mode 100644 latest/src/test/resources/results/empty.json delete mode 100644 latest/src/test/resources/results/invalidBundle.json delete mode 100644 latest/src/test/resources/results/invalidOperationOutcome.json delete mode 100644 latest/src/test/resources/results/invalidParameters.json delete mode 100644 latest/src/test/resources/results/missingHeader.json delete mode 100644 latest/src/test/resources/results/null_java.json delete mode 100644 latest/src/test/resources/results/null_json.json delete mode 100644 latest/src/test/resources/results/number_json.json delete mode 100644 latest/src/test/resources/results/psu_nhs_digital.json delete mode 100644 latest/src/test/resources/results/psu_update.json delete mode 100644 latest/src/test/resources/results/searchSet.json delete mode 100644 latest/src/test/resources/results/stepFunctionResult.json delete mode 100644 latest/src/test/resources/results/successfulOperationOutcome.json delete mode 100644 latest/src/test/resources/results/validBundle.json delete mode 100644 latest/src/test/resources/results/validParameters.json delete mode 100644 latest/src/test/resources/results/validSimpleBundle.json delete mode 100644 legacy/licenses/allowedMissingLicense.xml delete mode 100644 legacy/licenses/licenses.xml delete mode 100644 legacy/pom.xml delete mode 100644 legacy/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java delete mode 100644 legacy/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java delete mode 100644 legacy/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java delete mode 100644 legacy/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java delete mode 100644 legacy/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java delete mode 100644 legacy/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java delete mode 100644 legacy/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java delete mode 100644 legacy/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java delete mode 100644 legacy/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java delete mode 100644 legacy/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java delete mode 100644 legacy/src/main/resources/log4j2.xml delete mode 100644 legacy/src/main/resources/nhs_digital.manifest.json delete mode 100644 legacy/src/main/resources/primerPayload.json delete mode 100644 legacy/src/main/resources/uk_core.manifest.json delete mode 100644 legacy/src/test/java/software/nhs/fhirvalidator/HandlerTest.java.ignore delete mode 100644 legacy/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java.ignore delete mode 100644 legacy/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java.ignore delete mode 100644 legacy/src/test/resources/examples/invalidBundle.json delete mode 100644 legacy/src/test/resources/examples/invalidOperationOutcome.json delete mode 100644 legacy/src/test/resources/examples/invalidParameters.json delete mode 100644 legacy/src/test/resources/examples/missingHeader.json delete mode 100644 legacy/src/test/resources/examples/psu_update.json delete mode 100644 legacy/src/test/resources/examples/searchSet.json delete mode 100644 legacy/src/test/resources/examples/stepFunctionEvent.json delete mode 100644 legacy/src/test/resources/examples/validBundle.json delete mode 100644 legacy/src/test/resources/examples/validOperationOutcome.json delete mode 100644 legacy/src/test/resources/examples/validParameters.json delete mode 100644 legacy/src/test/resources/logback-test.xml delete mode 100644 legacy/src/test/resources/results/array.json delete mode 100644 legacy/src/test/resources/results/bad_json.json delete mode 100644 legacy/src/test/resources/results/boolean_json.json delete mode 100644 legacy/src/test/resources/results/empty.json delete mode 100644 legacy/src/test/resources/results/invalidBundle.json delete mode 100644 legacy/src/test/resources/results/invalidOperationOutcome.json delete mode 100644 legacy/src/test/resources/results/invalidParameters.json delete mode 100644 legacy/src/test/resources/results/missingHeader.json delete mode 100644 legacy/src/test/resources/results/null_java.json delete mode 100644 legacy/src/test/resources/results/null_json.json delete mode 100644 legacy/src/test/resources/results/number_json.json delete mode 100644 legacy/src/test/resources/results/psu_nhs_digital.json delete mode 100644 legacy/src/test/resources/results/psu_update.json delete mode 100644 legacy/src/test/resources/results/searchSet.json delete mode 100644 legacy/src/test/resources/results/stepFunctionResult.json delete mode 100644 legacy/src/test/resources/results/successfulOperationOutcome.json delete mode 100644 legacy/src/test/resources/results/validBundle.json delete mode 100644 legacy/src/test/resources/results/validParameters.json delete mode 100644 legacy/src/test/resources/results/validSimpleBundle.json rename {dual/licenses => licenses}/allowedMissingLicense.xml (100%) rename {dual/licenses => licenses}/licenses.xml (100%) rename dual/pom.xml => pom.xml (99%) rename {dual/src => src}/current/java/software/nhs/fhirvalidator/configuration/GetValueSetImpl.java (100%) rename {dual/src => src}/legacy/java/software/nhs/fhirvalidator/configuration/GetValueSetImpl.java (100%) rename {dual/src => src}/main/java/software/nhs/fhirvalidator/configuration/GetValueSetInterface.java (100%) rename {dual/src => src}/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java (100%) rename {dual/src => src}/main/java/software/nhs/fhirvalidator/controller/ValidateController.java (100%) rename {dual/src => src}/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java (100%) rename {dual/src => src}/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java (100%) rename {dual/src => src}/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java (100%) rename {dual/src => src}/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java (100%) rename {dual/src => src}/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java (100%) rename {dual/src => src}/main/java/software/nhs/fhirvalidator/util/FhirUtils.java (100%) rename {dual/src => src}/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java (100%) rename {dual/src => src}/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java (100%) rename {dual/src => src}/main/resources/log4j2.xml (100%) rename {dual/src => src}/main/resources/nhs_digital.manifest.json (100%) rename {dual/src => src}/main/resources/primerPayload.json (100%) rename {dual/src => src}/main/resources/uk_core.manifest.json (100%) rename {dual/src => src}/test/java/software/nhs/fhirvalidator/HandlerTest.java (100%) rename {dual/src => src}/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java (99%) rename {dual/src => src}/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java (100%) rename {dual/src => src}/test/resources/examples/invalidBundle.json (100%) rename {dual/src => src}/test/resources/examples/invalidOperationOutcome.json (100%) rename {dual/src => src}/test/resources/examples/invalidParameters.json (100%) rename {dual/src => src}/test/resources/examples/missingHeader.json (100%) rename {dual/src => src}/test/resources/examples/psu_update.json (100%) rename {dual/src => src}/test/resources/examples/searchSet.json (100%) rename {dual/src => src}/test/resources/examples/stepFunctionEvent.json (100%) rename {dual/src => src}/test/resources/examples/validBundle.json (100%) rename {dual/src => src}/test/resources/examples/validOperationOutcome.json (100%) rename {dual/src => src}/test/resources/examples/validParameters.json (100%) rename {dual/src => src}/test/resources/logback-test.xml (100%) rename {dual/src => src}/test/resources/results/5.4.2/array.json (100%) rename {dual/src => src}/test/resources/results/5.4.2/bad_json.json (100%) rename {dual/src => src}/test/resources/results/5.4.2/boolean_json.json (100%) rename {dual/src => src}/test/resources/results/5.4.2/empty.json (100%) rename {dual/src => src}/test/resources/results/5.4.2/invalidBundle.json (100%) rename {dual/src => src}/test/resources/results/5.4.2/invalidOperationOutcome.json (100%) rename {dual/src => src}/test/resources/results/5.4.2/invalidParameters.json (100%) rename {dual/src => src}/test/resources/results/5.4.2/missingHeader.json (100%) rename {dual/src => src}/test/resources/results/5.4.2/null_java.json (100%) rename {dual/src => src}/test/resources/results/5.4.2/null_json.json (100%) rename {dual/src => src}/test/resources/results/5.4.2/number_json.json (100%) rename {dual/src => src}/test/resources/results/5.4.2/psu_nhs_digital.json (100%) rename {dual/src => src}/test/resources/results/5.4.2/psu_update.json (100%) rename {dual/src => src}/test/resources/results/5.4.2/searchSet.json (100%) rename {dual/src => src}/test/resources/results/5.4.2/stepFunctionResult.json (100%) rename {dual/src => src}/test/resources/results/5.4.2/successfulOperationOutcome.json (100%) rename {dual/src => src}/test/resources/results/5.4.2/validBundle.json (100%) rename {dual/src => src}/test/resources/results/5.4.2/validParameters.json (100%) rename {dual/src => src}/test/resources/results/5.4.2/validSimpleBundle.json (100%) rename {dual/src => src}/test/resources/results/7.6.1/array.json (100%) rename {dual/src => src}/test/resources/results/7.6.1/bad_json.json (100%) rename {dual/src => src}/test/resources/results/7.6.1/boolean_json.json (100%) rename {dual/src => src}/test/resources/results/7.6.1/empty.json (100%) rename {dual/src => src}/test/resources/results/7.6.1/invalidBundle.json (100%) rename {dual/src => src}/test/resources/results/7.6.1/invalidOperationOutcome.json (100%) rename {dual/src => src}/test/resources/results/7.6.1/invalidParameters.json (100%) rename {dual/src => src}/test/resources/results/7.6.1/missingHeader.json (100%) rename {dual/src => src}/test/resources/results/7.6.1/null_java.json (100%) rename {dual/src => src}/test/resources/results/7.6.1/null_json.json (100%) rename {dual/src => src}/test/resources/results/7.6.1/number_json.json (100%) rename {dual/src => src}/test/resources/results/7.6.1/psu_nhs_digital.json (100%) rename {dual/src => src}/test/resources/results/7.6.1/psu_update.json (100%) rename {dual/src => src}/test/resources/results/7.6.1/searchSet.json (100%) rename {dual/src => src}/test/resources/results/7.6.1/stepFunctionResult.json (100%) rename {dual/src => src}/test/resources/results/7.6.1/successfulOperationOutcome.json (100%) rename {dual/src => src}/test/resources/results/7.6.1/validBundle.json (100%) rename {dual/src => src}/test/resources/results/7.6.1/validParameters.json (100%) rename {dual/src => src}/test/resources/results/7.6.1/validSimpleBundle.json (100%) diff --git a/Makefile b/Makefile index e7910b41..978453ec 100644 --- a/Makefile +++ b/Makefile @@ -34,7 +34,20 @@ lint-githubaction-scripts: # test targets test: download-dependencies - cd latest && mvn test + mvn clean test -Pcurrent + mvn clean test -Plegacy + +# build targets for SAM +# the target must be build- +build-FHIRValidatorUKCore: download-dependencies + mvn clean package -Pcurrent + mkdir -p $(ARTIFACTS_DIR)/lib + cp ./target/FHIRValidator-current.jar $(ARTIFACTS_DIR)/lib/ + +build-FHIRValidatorNHSDigital: download-dependencies + mvn clean package -Plegacy + mkdir -p $(ARTIFACTS_DIR)/lib + cp ./target/FHIRValidator-legacy.jar $(ARTIFACTS_DIR)/lib/ check-licenses: check-licenses-python check-licenses-java @@ -79,7 +92,7 @@ sam-validate: sam validate --template-file SAMtemplates/lambda_resources.yaml --region eu-west-2 sam-build: sam-validate download-dependencies - sam build --debug --template-file SAMtemplates/main_template.yaml --region eu-west-2 + sam build --template-file SAMtemplates/main_template.yaml --region eu-west-2 sam-sync: guard-AWS_DEFAULT_PROFILE guard-stack_name download-dependencies sam sync \ diff --git a/SAMtemplates/main_template.yaml b/SAMtemplates/main_template.yaml index 45aa5bf5..cd87262d 100644 --- a/SAMtemplates/main_template.yaml +++ b/SAMtemplates/main_template.yaml @@ -64,7 +64,7 @@ Resources: Type: AWS::Serverless::Function Properties: FunctionName: !Sub "${AWS::StackName}-FHIRValidatorUKCore" - CodeUri: ../latest/ + CodeUri: ../ Handler: software.nhs.fhirvalidator.handler.HandlerStream::handleRequest Role: !GetAtt FHIRValidatorUKCoreResources.Outputs.LambdaRoleArn SnapStart: @@ -83,6 +83,7 @@ Resources: POWERTOOLS_LOG_LEVEL: !Ref LogLevel PROFILE_MANIFEST_FILE: uk_core.manifest.json Metadata: + BuildMethod: makefile guard: SuppressedRules: - LAMBDA_DLQ_CHECK @@ -120,7 +121,7 @@ Resources: Type: AWS::Serverless::Function Properties: FunctionName: !Sub "${AWS::StackName}-FHIRValidatorNHSDigital" - CodeUri: ../legacy/ + CodeUri: ../ Handler: software.nhs.fhirvalidator.handler.HandlerStream::handleRequest Role: !GetAtt FHIRValidatorNHSDigitalResources.Outputs.LambdaRoleArn SnapStart: @@ -146,6 +147,7 @@ Resources: POWERTOOLS_LOG_LEVEL: !Ref LogLevel PROFILE_MANIFEST_FILE: nhs_digital.manifest.json Metadata: + BuildMethod: makefile guard: SuppressedRules: - LAMBDA_DLQ_CHECK diff --git a/latest/licenses/allowedMissingLicense.xml b/latest/licenses/allowedMissingLicense.xml deleted file mode 100644 index 568b7bf9..00000000 --- a/latest/licenses/allowedMissingLicense.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - jakarta-regexp - jakarta-regexp - 1.4 - - diff --git a/latest/licenses/licenses.xml b/latest/licenses/licenses.xml deleted file mode 100644 index 5543bd3f..00000000 --- a/latest/licenses/licenses.xml +++ /dev/null @@ -1,153 +0,0 @@ - - - - - The Apache Software License, Version 2.0 - - The Apache Software License, Version 2.0 - Apache License, Version 2.0 - Apache Software License 2.0 - Apache License 2.0 - - - http://www.apache.org/licenses/LICENSE-2.0.txt - https://www.apache.org/licenses/LICENSE-2.0 - https://www.apache.org/licenses/LICENSE-2.0.txt - https://www.apache.org/licenses/LICENSE-2.0 - - - - Eclipse Public License 1.0 - - Eclipse Public License 1.0 - Eclipse Public License - v 1.0 - Eclipse Distribution License - v 1.0 - - - http://www.eclipse.org/legal/epl-v10.html - http://www.eclipse.org/legal/epl-v10.html - http://www.eclipse.org/org/documents/edl-v10.php - - - - Eclipse Public License v2.0 - - Eclipse Public License v2.0 - EPL 2.0 - Eclipse Public License - v 2.0 - - - https://www.eclipse.org/legal/epl-v20.html - http://www.eclipse.org/legal/epl-2.0 - - - - - The MIT License - - The MIT License - MIT License - MIT - - - http://code.google.com/p/mockito/wiki/License - http://www.opensource.org/licenses/mit-license - https://opensource.org/licenses/MIT - - - - BSD - - BSD - - - http://asm.objectweb.org/license.html - - - - BSD License 3 - - BSD License 3 - - - http://opensource.org/licenses/BSD-3-Clause - - - - BSD-2-Clause - - BSD-2-Clause - - - https://opensource.org/licenses/BSD-2-Clause - - - - LGPL 2.1 - - LGPL 2.1 - GNU Lesser General Public License - http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html - - - http://www.gnu.org/licenses/lgpl-2.1.html - - - - MPL 1.1 - - MPL 1.1 - - - http://www.mozilla.org/MPL/MPL-1.1.html - - - - Mozilla Public License Version 2.0 - - Mozilla Public License Version 2.0 - - - http://www.mozilla.org/MPL/2.0/ - - - - Unicode/ICU License - - Unicode/ICU License - - - https://raw.githubusercontent.com/unicode-org/icu/main/icu4c/LICENSE - - - - GPL2 w/ CPE - - GPL2 w/ CPE - - - https://www.gnu.org/software/classpath/license.html - - - - Public Domain, per Creative Commons CC0 - - Public Domain, per Creative Commons CC0 - - - http://creativecommons.org/publicdomain/zero/1.0 - - - - - - GNU General Public License version 2 - - GNU General Public License version 2 - - - https://opensource.org/licenses/gpl-2.0.php - - - - diff --git a/latest/pom.xml b/latest/pom.xml deleted file mode 100644 index a17f3e40..00000000 --- a/latest/pom.xml +++ /dev/null @@ -1,313 +0,0 @@ - - 4.0.0 - - software.nhs.fhirvalidator - FHIRValidator - jar - dev - FHIRValidator - - - The MIT License - https://opensource.org/license/mit - - - - 21 - 21 - UTF-8 - 7.6.1 - 2.24.3 - 2.19.0 - nhsdigital - https://sonarcloud.io - NHSDigital_eps-FHIR-validator-lambda - 1.9.24 - - - - - org.junit - junit-bom - 5.12.2 - pom - import - - - - - - io.github.hakky54 - logcaptor - 2.11.0 - test - - - - - - ca.uhn.hapi.fhir - hapi-fhir-validation-resources-r4 - ${fhir.version} - - - ca.uhn.hapi.fhir - hapi-fhir-structures-r4 - ${fhir.version} - - - ca.uhn.hapi.fhir - hapi-fhir-validation - ${fhir.version} - - - ca.uhn.hapi.fhir - hapi-fhir-caching-caffeine - ${fhir.version} - - - ca.uhn.hapi.fhir - hapi-fhir-base - ${fhir.version} - - - - - com.amazonaws - aws-lambda-java-core - 1.2.3 - - - com.amazonaws - aws-lambda-java-events - 3.15.0 - - - com.amazonaws - aws-lambda-java-log4j2 - 1.6.0 - - - com.google.code.gson - gson - 2.13.1 - - - org.apache.logging.log4j - log4j-api - ${log4j.version} - - - org.apache.logging.log4j - log4j-core - ${log4j.version} - - - org.apache.logging.log4j - log4j-slf4j2-impl - ${log4j.version} - - - org.apache.logging.log4j - log4j-layout-template-json - ${log4j.version} - - - software.amazon.lambda - powertools-logging - 1.20.1 - - - org.aspectj - aspectjrt - ${aspectj.version} - - - com.fasterxml.jackson.core - jackson-core - ${fasterxml.version} - - - com.fasterxml.jackson.core - jackson-databind - ${fasterxml.version} - - - com.fasterxml.jackson.core - jackson-annotations - ${fasterxml.version} - - - - org.junit.jupiter - junit-jupiter - test - - - org.junit.jupiter - junit-jupiter-api - test - - - org.mockito - mockito-core - 5.17.0 - test - - - - - - - - src/main/resources - - log4j2.xml - package/* - *.tgz - primerPayload.json - nhs_digital.manifest.json - uk_core.manifest.json - - - - - - se.ayoy.maven-plugins - ayoy-license-verifier-maven-plugin - 1.2.0 - - - validate - - verify - - - - - ${project.basedir}/licenses/licenses.xml - - ${project.basedir}/licenses/allowedMissingLicense.xml - true - true - true - - - - maven-dependency-plugin - 3.8.1 - - - maven-compiler-plugin - 3.14.0 - - - maven-surefire-plugin - 3.5.3 - - - dev.aspectj - aspectj-maven-plugin - 1.14.1 - - - org.aspectj - aspectjtools - ${aspectj.version} - - - - 21 - true - - - ${project.build.directory}/classes - - - - software.amazon.lambda - powertools-logging - - - - - - - compile - - - - - - - org.jacoco - jacoco-maven-plugin - 0.8.13 - - - - prepare-agent - - - - - report - test - - report - - - - - - - org.apache.maven.plugins - maven-shade-plugin - 3.6.0 - - false - - - - package - - shade - - - - - - - META-INF/TE-050AC.SF - META-INF/TE-050AC.RSA - - - - - - - - com.github.edwgiz - maven-shade-plugin.log4j2-cachefile-transformer - 2.15 - - - - - - - diff --git a/latest/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java b/latest/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java deleted file mode 100644 index 25dac531..00000000 --- a/latest/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java +++ /dev/null @@ -1,211 +0,0 @@ -package software.nhs.fhirvalidator.configuration; - -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -import com.google.gson.Gson; - -import org.hl7.fhir.common.hapi.validation.support.CachingValidationSupport; -import org.hl7.fhir.common.hapi.validation.support.CommonCodeSystemsTerminologyService; -import org.hl7.fhir.common.hapi.validation.support.InMemoryTerminologyServerValidationSupport; -import org.hl7.fhir.common.hapi.validation.support.NpmPackageValidationSupport; -import org.hl7.fhir.common.hapi.validation.support.SnapshotGeneratingValidationSupport; -import org.hl7.fhir.common.hapi.validation.support.ValidationSupportChain; -import org.hl7.fhir.common.hapi.validation.validator.FhirInstanceValidator; -import org.hl7.fhir.instance.model.api.IBaseResource; -import org.hl7.fhir.r4.model.CanonicalType; -import org.hl7.fhir.r4.model.ElementDefinition; -import org.hl7.fhir.r4.model.StructureDefinition; -import org.hl7.fhir.utilities.npm.NpmPackage; - -import ca.uhn.fhir.context.FhirContext; -import ca.uhn.fhir.context.support.ConceptValidationOptions; -import ca.uhn.fhir.context.support.DefaultProfileValidationSupport; -import ca.uhn.fhir.context.support.IValidationSupport; -import ca.uhn.fhir.context.support.ValidationSupportContext; -import ca.uhn.fhir.rest.server.exceptions.InternalErrorException; -import ca.uhn.fhir.util.ClasspathUtil; -import ca.uhn.fhir.validation.FhirValidator; -import software.nhs.fhirvalidator.models.SimplifierPackage; -import software.nhs.fhirvalidator.util.ResourceUtils; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -/** - * This class is a wrapper around the HAPI FhirValidator. - * The FhirValidator is built using default settings and the available - * implementation guides are loaded into it. - */ - -public class ValidatorConfiguration { - private String PROFILE_MANIFEST_FILE; - public final FhirValidator validator; - public final FhirContext fhirContext; - public final List npmPackages = new ArrayList<>(); - - Logger log = LogManager.getLogger(ValidatorConfiguration.class); - - public ValidatorConfiguration(String _PROFILE_MANIFEST_FILE) { - PROFILE_MANIFEST_FILE = _PROFILE_MANIFEST_FILE; - fhirContext = FhirContext.forR4(); - - // Create a chain that will hold our modules - ValidationSupportChain supportChain = new ValidationSupportChain( - new DefaultProfileValidationSupport(fhirContext), - new CommonCodeSystemsTerminologyService(fhirContext), - terminologyValidationSupport(fhirContext), - new SnapshotGeneratingValidationSupport(fhirContext)); - - SimplifierPackage[] packages = getPackages(); - NpmPackageValidationSupport npmPackageSupport = new NpmPackageValidationSupport(fhirContext); - - try { - for (SimplifierPackage individualPackage : packages) { - String packagePath = String.format("classpath:%s-%s.tgz", individualPackage.packageName, - individualPackage.version); - npmPackageSupport.loadPackageFromClasspath(packagePath); - try (InputStream is = ClasspathUtil.loadResourceAsStream(packagePath)) { - NpmPackage pkg = NpmPackage.fromPackage(is); - npmPackages.add(pkg); - } - } - } catch (InternalErrorException | IOException ex) { - log.error(ex.getMessage(), ex); - throw new RuntimeException("error loading simplifier packages", ex); - } - supportChain.addValidationSupport(npmPackageSupport); - generateSnapshots(supportChain); - supportChain.fetchCodeSystem("http://snomed.info/sct"); - - CachingValidationSupport validationSupport = new CachingValidationSupport(supportChain); - - // Create a validator using the FhirInstanceValidator module. - FhirInstanceValidator validatorModule = new FhirInstanceValidator(validationSupport); - validator = fhirContext.newValidator().registerValidatorModule(validatorModule); - } - - private void generateSnapshots(IValidationSupport supportChain) { - List structureDefinitions = supportChain.fetchAllStructureDefinitions(); - if (structureDefinitions == null) { - return; - } - - ValidationSupportContext context = new ValidationSupportContext(supportChain); - - structureDefinitions.stream() - .filter(this::shouldGenerateSnapshot) - .forEach(it -> { - try { - circularReferenceCheck(it, supportChain); - } catch (Exception e) { - log.error(String.format("Failed to generate snapshot for %s", it), e); - } - }); - - structureDefinitions.stream() - .filter(this::shouldGenerateSnapshot) - .forEach(it -> { - try { - supportChain.generateSnapshot(context, it, it.getUrl(), "https://fhir.nhs.uk/R4", it.getName()); - } catch (Exception e) { - log.error(String.format("Failed to generate snapshot for %s", it), e); - } - }); - } - - private boolean shouldGenerateSnapshot(StructureDefinition structureDefinition) { - return !structureDefinition.hasSnapshot() - && structureDefinition.getDerivation() == StructureDefinition.TypeDerivationRule.CONSTRAINT; - } - - private StructureDefinition circularReferenceCheck(StructureDefinition structureDefinition, - IValidationSupport supportChain) { - if (structureDefinition.hasSnapshot()) { - log.error(String.format("%s has snapshot!!", structureDefinition.getUrl())); - } - - for (ElementDefinition element : structureDefinition.getDifferential().getElement()) { - if ((element.getId().endsWith(".partOf") || - element.getId().endsWith(".basedOn") || - element.getId().endsWith(".replaces") || - element.getId().contains("Condition.stage.assessment") || - element.getId().contains("Observation.derivedFrom") || - element.getId().contains("Observation.hasMember") || - element.getId().contains("CareTeam.encounter") || - element.getId().contains("CareTeam.reasonReference") || - element.getId().contains("ServiceRequest.encounter") || - element.getId().contains("ServiceRequest.reasonReference") || - element.getId().contains("EpisodeOfCare.diagnosis.condition") || - element.getId().contains("Encounter.diagnosis.condition") || - element.getId().contains("Encounter.reasonReference") || - element.getId().contains("Encounter.appointment")) && element.hasType()) { - - log.warn(String.format("%s has circular references (%s)", structureDefinition.getUrl(), - element.getId())); - - for (ElementDefinition.TypeRefComponent typeRef : element.getType()) { - if (typeRef.hasTargetProfile()) { - for (CanonicalType targetProfile : typeRef.getTargetProfile()) { - typeRef.setTargetProfile((List) getBase(targetProfile, supportChain)); - } - } - } - } - } - return structureDefinition; - } - - private CanonicalType getBase(CanonicalType profile, IValidationSupport supportChain) { - StructureDefinition structureDefinition = (StructureDefinition) supportChain - .fetchStructureDefinition(profile.toString()); - - if (structureDefinition != null && structureDefinition.hasBaseDefinition()) { - String baseProfile = structureDefinition.getBaseDefinition(); - CanonicalType canonicalBaseProfile = new CanonicalType(baseProfile); - if (baseProfile.contains(".uk")) { - canonicalBaseProfile = getBase(canonicalBaseProfile, supportChain); - } - return canonicalBaseProfile; - } - return null; - } - - private InMemoryTerminologyServerValidationSupport terminologyValidationSupport(FhirContext fhirContext) { - return new InMemoryTerminologyServerValidationSupport(fhirContext) { - @Override - public IValidationSupport.CodeValidationResult validateCodeInValueSet( - ValidationSupportContext theValidationSupportContext, - ConceptValidationOptions theOptions, - String theCodeSystem, - String theCode, - String theDisplay, - IBaseResource theValueSet) { - String valueSetUrl = CommonCodeSystemsTerminologyService.getValueSetUrl(fhirContext, theValueSet); - - if ("https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationRequest-Code".equals(valueSetUrl) - || "https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationDispense-Code".equals(valueSetUrl) - || "https://fhir.hl7.org.uk/ValueSet/UKCore-MedicationCode".equals(valueSetUrl)) { - return new IValidationSupport.CodeValidationResult() - .setSeverity(IValidationSupport.IssueSeverity.WARNING) - .setMessage("Unable to validate medication codes"); - } - - return super.validateCodeInValueSet( - theValidationSupportContext, - theOptions, - theCodeSystem, - theCode, - theDisplay, - theValueSet); - } - }; - } - - private SimplifierPackage[] getPackages() { - String manifestContent = ResourceUtils.getResourceContent(this.PROFILE_MANIFEST_FILE); - return new Gson().fromJson(manifestContent, SimplifierPackage[].class); - } -} diff --git a/latest/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java b/latest/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java deleted file mode 100644 index d53bc995..00000000 --- a/latest/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java +++ /dev/null @@ -1,117 +0,0 @@ -package software.nhs.fhirvalidator.controller; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; - -import com.google.gson.JsonSyntaxException; - -import org.hl7.fhir.instance.model.api.IBaseResource; -import org.hl7.fhir.r4.model.Bundle; -import org.hl7.fhir.r4.model.OperationOutcome; -import org.hl7.fhir.r4.model.ResourceType; -import org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent; - -import ca.uhn.fhir.context.FhirContext; -import ca.uhn.fhir.parser.DataFormatException; -import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException; -import ca.uhn.fhir.validation.FhirValidator; -import software.nhs.fhirvalidator.configuration.ValidatorConfiguration; -import software.nhs.fhirvalidator.service.CapabilityStatementApplier; -import software.nhs.fhirvalidator.service.ImplementationGuideParser; -import software.nhs.fhirvalidator.service.MessageDefinitionApplier; -import software.nhs.fhirvalidator.util.OperationOutcomeUtils; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -/** - * This class is a wrapper around the HAPI FhirValidator. - * The FhirValidator is built using default settings and the available - * implementation guides are loaded into it. - */ - -public class ValidateController { - private ValidatorConfiguration validatorConfiguration; - private FhirValidator validator; - private FhirContext fhirContext; - private ImplementationGuideParser implementationGuideParser; - private CapabilityStatementApplier capabilityStatementApplier; - private MessageDefinitionApplier messageDefinitionApplier; - - Logger log = LogManager.getLogger(ValidateController.class); - - public ValidateController(String PROFILE_MANIFEST_FILE) { - validatorConfiguration = new ValidatorConfiguration(PROFILE_MANIFEST_FILE); - validator = validatorConfiguration.validator; - fhirContext = validatorConfiguration.fhirContext; - implementationGuideParser = new ImplementationGuideParser( - fhirContext); - capabilityStatementApplier = new CapabilityStatementApplier( - implementationGuideParser, - validatorConfiguration.npmPackages); - messageDefinitionApplier = new MessageDefinitionApplier( - implementationGuideParser, validatorConfiguration.npmPackages); - } - public String validate(String input) { - OperationOutcome result = parseAndValidateResource(input); - return fhirContext.newJsonParser().encodeResourceToString(result); - } - - public OperationOutcome parseAndValidateResource(String input) { - - try { - IBaseResource inputResource = fhirContext.newJsonParser().parseResource(input); - List resources = getResourcesToValidate(inputResource); - - List operationOutcomeList = resources.stream() - .map(this::validateResource) - .collect(Collectors.toList()); - - List operationOutcomeIssues = operationOutcomeList.stream() - .filter(Objects::nonNull) - .flatMap(operationOutcome -> operationOutcome.getIssue().stream()) - .collect(Collectors.toList()); - - return OperationOutcomeUtils.createOperationOutcome(operationOutcomeIssues); - } catch (JsonSyntaxException | NullPointerException | IllegalArgumentException | InvalidRequestException - | DataFormatException e) { - log.error(e.toString()); - return OperationOutcomeUtils - .createOperationOutcome(e.getMessage() != null ? e.getMessage() : "Invalid JSON", null); - } - } - - private OperationOutcome validateResource(IBaseResource resource) { - capabilityStatementApplier.applyCapabilityStatementProfiles(resource); - OperationOutcome messageDefinitionErrors = messageDefinitionApplier.applyMessageDefinition(resource); - if (messageDefinitionErrors != null) { - return messageDefinitionErrors; - } - return (OperationOutcome) validator.validateWithResult(resource).toOperationOutcome(); - } - - private List getResourcesToValidate(IBaseResource inputResource) { - if (inputResource == null) { - return new ArrayList<>(); - } - - if (inputResource instanceof Bundle _inputResource && (_inputResource.getType() == Bundle.BundleType.SEARCHSET)) { - List bundleResources = new ArrayList<>(); - for (Bundle.BundleEntryComponent entry : ((Bundle) inputResource).getEntry()) { - if (entry.getResource().fhirType().equals("Bundle")) { - bundleResources.add(entry.getResource()); - } - } - - if (bundleResources.stream() - .allMatch(resource -> ((Bundle) resource).getResourceType() == ResourceType.Bundle)) { - return bundleResources; - } - } - - return Arrays.asList(inputResource); - } -} diff --git a/latest/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java b/latest/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java deleted file mode 100644 index 3fe331c5..00000000 --- a/latest/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java +++ /dev/null @@ -1,81 +0,0 @@ -package software.nhs.fhirvalidator.handler; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.PrintWriter; - -import com.amazonaws.services.lambda.runtime.Context; -import com.amazonaws.services.lambda.runtime.RequestStreamHandler; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import software.amazon.lambda.powertools.logging.Logging; -import software.amazon.lambda.powertools.logging.LoggingUtils; -import software.nhs.fhirvalidator.controller.ValidateController; -import software.nhs.fhirvalidator.util.ResourceUtils; - -public class HandlerStream implements RequestStreamHandler { - - private final ValidateController validateController; - Logger log = LogManager.getLogger(HandlerStream.class); - - public HandlerStream() { - log.info("Creating the Validator instance for the first time..."); - String manifest_file = System.getenv("PROFILE_MANIFEST_FILE"); - if (manifest_file == null) { - manifest_file = "uk_core.manifest.json"; - } - log.info(String.format("Using manifest file : %s", manifest_file)); - - validateController = new ValidateController(manifest_file); - - log.info("Validating once to force the loading of all the validator related classes"); - String primerPayload = ResourceUtils.getResourceContent("primerPayload.json"); - validateController.validate(primerPayload); - - log.info("Validator is ready"); - } - - @Logging(clearState = true) - @Override - public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException { - ByteArrayOutputStream result = new ByteArrayOutputStream(); - byte[] buffer = new byte[1024]; - try { - for (int length; (length = inputStream.read(buffer)) != -1;) { - result.write(buffer, 0, length); - } - String rawInput = result.toString(); - log.info(rawInput); - JsonObject jsonPayload = JsonParser.parseString(rawInput).getAsJsonObject(); - JsonObject headers = jsonPayload.get("headers").getAsJsonObject(); - String xRequestID = headers.get("x-request-id") == null ? "" : headers.get("x-request-id").getAsString(); - LoggingUtils.appendKey("x-request-id", xRequestID); - String nhsdCorrelationID = headers.get("nhsd-correlation-id") == null ? "" : headers.get("nhsd-correlation-id").getAsString(); - LoggingUtils.appendKey("nhsd-correlation-id", nhsdCorrelationID); - String nhsdRequestID = headers.get("nhsd-request-id") == null ? "" : headers.get("nhsd-request-id").getAsString(); - LoggingUtils.appendKey("nhsd-request-id", nhsdRequestID); - String xCorrelationID = headers.get("x-correlation-id") == null ? "" : headers.get("x-correlation-id").getAsString(); - LoggingUtils.appendKey("x-correlation-id", xCorrelationID); - String apigwRequestID = headers.get("apigw-request-id") == null ? "" : headers.get("apigw-request-id").getAsString(); - LoggingUtils.appendKey("apigw-request-id", apigwRequestID); - - log.info("Calling validate function"); - String validatorResult = validateController.validate(jsonPayload.get("body").toString()); - log.info(validatorResult); - - try (PrintWriter writer = new PrintWriter(outputStream)) { - writer.print(validatorResult); - } - - } catch (IOException ex) { - log.error(ex.getMessage(), ex); - throw new RuntimeException("error in handleRequest", ex); - } - } -} diff --git a/latest/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java b/latest/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java deleted file mode 100644 index f2fc9f62..00000000 --- a/latest/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java +++ /dev/null @@ -1,13 +0,0 @@ -package software.nhs.fhirvalidator.models; - -import com.google.gson.annotations.Expose; -import com.google.gson.annotations.SerializedName; - -public class SimplifierPackage { - @SerializedName("packageName") - @Expose - public String packageName; - @SerializedName("version") - @Expose - public String version; -} diff --git a/latest/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java b/latest/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java deleted file mode 100644 index 2859ae11..00000000 --- a/latest/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java +++ /dev/null @@ -1,51 +0,0 @@ -package software.nhs.fhirvalidator.service; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.hl7.fhir.instance.model.api.IBaseResource; -import org.hl7.fhir.r4.model.CapabilityStatement; -import org.hl7.fhir.utilities.npm.NpmPackage; - -import software.nhs.fhirvalidator.util.FhirUtils; - -import java.io.IOException; -import java.util.List; -import java.util.stream.Collectors; - -public class CapabilityStatementApplier { - private final List restResources; - - Logger log = LogManager.getLogger(CapabilityStatementApplier.class); - - public CapabilityStatementApplier( - ImplementationGuideParser implementationGuideParser, - List npmPackages) { - - this.restResources = (npmPackages.stream() - .flatMap(packageItem -> { - try { - return implementationGuideParser - .getResourcesOfType(packageItem, CapabilityStatement.class).stream(); - } catch (IOException ex) { - log.error(ex.getMessage(), ex); - throw new RuntimeException("error in handleRequest", ex); - } - }) - .flatMap(capabilityStatement -> capabilityStatement.getRest().stream()) - .flatMap(rest -> rest.getResource().stream()) - .collect(Collectors.toList())); - } - - public void applyCapabilityStatementProfiles(IBaseResource resource) { - restResources.forEach(restResource -> applyRestResource(resource, restResource)); - } - - private void applyRestResource( - IBaseResource resource, - CapabilityStatement.CapabilityStatementRestResourceComponent restResource) { - List matchingResources = FhirUtils.getResourcesOfType(resource, restResource.getType()); - if (restResource.hasProfile()) { - FhirUtils.applyProfile(matchingResources, restResource.getProfileElement()); - } - } -} diff --git a/latest/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java b/latest/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java deleted file mode 100644 index cd678d87..00000000 --- a/latest/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java +++ /dev/null @@ -1,43 +0,0 @@ -package software.nhs.fhirvalidator.service; - -import ca.uhn.fhir.context.FhirContext; -import ca.uhn.fhir.parser.IParser; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.hl7.fhir.r4.model.*; -import org.hl7.fhir.utilities.npm.NpmPackage; - -import java.io.IOException; -import java.util.List; -import java.util.stream.Collectors; - -public class ImplementationGuideParser { - - private final FhirContext fhirContext; - - Logger log = LogManager.getLogger(ImplementationGuideParser.class); - - public ImplementationGuideParser(FhirContext fhirContext) { - this.fhirContext = fhirContext; - } - - public List getResourcesOfType(NpmPackage npmPackage, Class resourceType) - throws IOException { - IParser jsonParser = fhirContext.newJsonParser(); - return npmPackage.listResources(resourceType.getSimpleName()) - .stream() - .map(t -> { - try { - return npmPackage.loadResource(t); - } catch (IOException ex) { - log.error(ex.getMessage(), ex); - throw new RuntimeException("error in getResourcesOfTypes", ex); - } - }) - .map(jsonParser::parseResource) - .filter(resourceType::isInstance) - .map(resourceType::cast) - .collect(Collectors.toList()); - } -} diff --git a/latest/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java b/latest/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java deleted file mode 100644 index 29123bd6..00000000 --- a/latest/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java +++ /dev/null @@ -1,145 +0,0 @@ -package software.nhs.fhirvalidator.service; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.hl7.fhir.instance.model.api.IBaseResource; -import org.hl7.fhir.r4.model.*; -import org.hl7.fhir.utilities.npm.NpmPackage; - -import software.nhs.fhirvalidator.util.FhirUtils; -import software.nhs.fhirvalidator.util.OperationOutcomeUtils; - -import java.io.IOException; -import java.util.List; -import java.util.stream.Collectors; - -public class MessageDefinitionApplier { - - private final List messageDefinitions; - Logger log = LogManager.getLogger(MessageDefinitionApplier.class); - - public MessageDefinitionApplier( - ImplementationGuideParser implementationGuideParser, - List npmPackages) { - this.messageDefinitions = npmPackages.stream() - .flatMap(packageItem -> { - try { - return implementationGuideParser.getResourcesOfType(packageItem, MessageDefinition.class) - .stream(); - } catch (IOException ex) { - log.error(ex.getMessage(), ex); - throw new RuntimeException("error in MessageDefinitionApplier", ex); - } - }) - .collect(Collectors.toList()); - } - - public OperationOutcome applyMessageDefinition(IBaseResource resource) { - if (!(resource instanceof Bundle _resource) || (_resource.getType() != Bundle.BundleType.MESSAGE)) { - return null; - } - - MessageHeader messageHeader = findMessageHeader((Bundle) resource); - if (messageHeader == null) { - return OperationOutcomeUtils.createOperationOutcome("No MessageHeader found.", "Bundle.entry"); - } - - Coding messageType = messageHeader.getEventCoding(); - String messageDefinitionProfile = messageHeader.getDefinition(); - MessageDefinition messageDefinition = findMessageDefinition(messageType, messageDefinitionProfile); - - if (messageDefinition == null) { - return OperationOutcomeUtils.createOperationOutcome( - "Unsupported message type " + messageType.getSystem() + "#" + messageType.getCode() + ".", - "MessageHeader.eventCoding"); - } - - return applyMessageDefinition((Bundle) resource, messageDefinition); - } - - private MessageHeader findMessageHeader(Bundle bundle) { - return bundle.getEntry() - .stream() - .map(Bundle.BundleEntryComponent::getResource) - .filter(MessageHeader.class::isInstance) - .map(MessageHeader.class::cast) - .findFirst() - .orElse(null); - } - - private MessageDefinition findMessageDefinition(Coding messageType, String messageDefinitionProfile) { - if (messageDefinitionProfile != null) { - return messageDefinitions.stream() - .filter(def -> messageType.getSystem().equals(def.getEventCoding().getSystem()) && - messageType.getCode().equals(def.getEventCoding().getCode()) && - messageDefinitionProfile.equals(def.getUrl())) - .findFirst() - .orElse(null); - } else { - return messageDefinitions.stream() - .filter(def -> messageType.getSystem().equals(def.getEventCoding().getSystem()) && - messageType.getCode().equals(def.getEventCoding().getCode())) - .findFirst() - .orElse(null); - } - } - - private OperationOutcome applyMessageDefinition(Bundle resource, MessageDefinition messageDefinition) { - List issues = messageDefinition.getFocus() - .stream() - .map(focus -> applyMessageDefinitionFocus(resource, focus)) - .filter(OperationOutcome.OperationOutcomeIssueComponent.class::isInstance) - .map(OperationOutcome.OperationOutcomeIssueComponent.class::cast) - .collect(Collectors.toList()); - - if (issues.isEmpty()) { - return null; - } - - return OperationOutcomeUtils.createOperationOutcome(issues); - } - - private OperationOutcome.OperationOutcomeIssueComponent applyMessageDefinitionFocus(Bundle bundle, - MessageDefinition.MessageDefinitionFocusComponent focus) { - List matchingResources = FhirUtils.getResourcesOfType(bundle, focus.getCode()); - applyMessageDefinitionFocusProfile(focus, matchingResources); - return applyMessageDefinitionFocusMinMax(focus, matchingResources.size()); - } - - private void applyMessageDefinitionFocusProfile(MessageDefinition.MessageDefinitionFocusComponent focus, - List matchingResources) { - if (focus.hasProfile()) { - FhirUtils.applyProfile(matchingResources, focus.getProfileElement()); - } - } - - private OperationOutcome.OperationOutcomeIssueComponent applyMessageDefinitionFocusMinMax( - MessageDefinition.MessageDefinitionFocusComponent focus, int resourceCount) { - String resourceType = focus.getCode(); - - if (focus.hasMin()) { - int min = focus.getMin(); - if (resourceCount < min) { - return OperationOutcomeUtils.createOperationOutcomeIssue( - "Bundle contains too few resources of type " + resourceType + ". Expected at least " + min - + ".", - "Bundle.entry"); - } - } - - if (focus.hasMax()) { - String maxStr = focus.getMax(); - if (!maxStr.equals("*")) { - int max = Integer.parseInt(maxStr); - if (resourceCount > max) { - return OperationOutcomeUtils.createOperationOutcomeIssue( - "Bundle contains too many resources of type " + resourceType + ". Expected at most " + max - + ".", - "Bundle.entry"); - } - } - } - - return null; - } -} diff --git a/latest/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java b/latest/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java deleted file mode 100644 index d27ca8aa..00000000 --- a/latest/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java +++ /dev/null @@ -1,44 +0,0 @@ -package software.nhs.fhirvalidator.util; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import org.hl7.fhir.instance.model.api.IBaseResource; -import org.hl7.fhir.instance.model.api.IPrimitiveType; -import org.hl7.fhir.r4.model.Bundle; - -public final class FhirUtils { - static Logger log = LogManager.getLogger(FhirUtils.class); - - private FhirUtils() { - throw new IllegalStateException("Utility class"); - } - - public static List getResourcesOfType(IBaseResource resource, String resourceType) { - List matchingResources = new ArrayList<>(); - - if (resource.fhirType().equals(resourceType)) { - matchingResources.add(resource); - } - - if (resource instanceof Bundle) { - Bundle bundle = (Bundle) resource; - bundle.getEntry().stream() - .map(Bundle.BundleEntryComponent::getResource) - .filter(entryResource -> entryResource.fhirType().equals(resourceType)) - .forEach(matchingResources::add); - } - - return matchingResources; - } - - public static void applyProfile(List resources, IPrimitiveType profile) { - resources.forEach(resource -> { - resource.getMeta().getProfile().clear(); - resource.getMeta().addProfile(profile.getValue()); - }); - } -} diff --git a/latest/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java b/latest/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java deleted file mode 100644 index bc8726d9..00000000 --- a/latest/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java +++ /dev/null @@ -1,39 +0,0 @@ -package software.nhs.fhirvalidator.util; - -import java.util.Collections; -import java.util.List; - -import org.hl7.fhir.r4.model.OperationOutcome; - -public class OperationOutcomeUtils { - - private OperationOutcomeUtils() { - throw new IllegalStateException("Utility class"); - } - - public static OperationOutcome createOperationOutcome(String diagnostics, String expression) { - OperationOutcome.OperationOutcomeIssueComponent issue = createOperationOutcomeIssue(diagnostics, expression); - List issues = Collections.singletonList(issue); - return createOperationOutcome(issues); - } - - public static OperationOutcome createOperationOutcome( - List issues) { - OperationOutcome operationOutcome = new OperationOutcome(); - issues.forEach(operationOutcome::addIssue); - return operationOutcome; - } - - public static OperationOutcome.OperationOutcomeIssueComponent createOperationOutcomeIssue(String diagnostics, - String expression) { - OperationOutcome.OperationOutcomeIssueComponent issue = new OperationOutcome.OperationOutcomeIssueComponent(); - issue.setSeverity(OperationOutcome.IssueSeverity.ERROR); - issue.setCode(OperationOutcome.IssueType.PROCESSING); - issue.setDiagnostics(diagnostics); - if (expression != null) { - issue.addExpression(expression); - } - return issue; - } - -} diff --git a/latest/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java b/latest/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java deleted file mode 100644 index fad95105..00000000 --- a/latest/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java +++ /dev/null @@ -1,37 +0,0 @@ -package software.nhs.fhirvalidator.util; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -public class ResourceUtils { - static Logger log = LogManager.getLogger(ResourceUtils.class); - - private ResourceUtils() { - throw new IllegalStateException("Utility class"); - } - - public static String getResourceContent(String resource) { - ClassLoader loader = Thread.currentThread().getContextClassLoader(); - try { - ByteArrayOutputStream result; - try (InputStream inputStream = loader.getResourceAsStream(resource)) { - result = new ByteArrayOutputStream(); - byte[] buffer = new byte[1024]; - - for (int length; (length = inputStream.read(buffer)) != -1;) { - result.write(buffer, 0, length); - } - } - return result.toString("UTF-8"); - - } catch (IOException ex) { - log.error(ex.getMessage(), ex); - throw new RuntimeException("error in getResourceContent", ex); - } - } - -} diff --git a/latest/src/main/resources/log4j2.xml b/latest/src/main/resources/log4j2.xml deleted file mode 100644 index 0cc0953f..00000000 --- a/latest/src/main/resources/log4j2.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/latest/src/main/resources/nhs_digital.manifest.json b/latest/src/main/resources/nhs_digital.manifest.json deleted file mode 100644 index a26b3c6a..00000000 --- a/latest/src/main/resources/nhs_digital.manifest.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { - "packageName": "fhir.r4.ukcore.stu3.currentbuild", - "version": "0.0.9-pre-release" - }, - { - "packageName": "uk.nhsdigital.r4.test", - "version": "2.8.17-prerelease" - }, - { - "packageName": "uk.nhsdigital.medicines.r4.test", - "version": "2.8.16-prerelease" - } -] diff --git a/latest/src/main/resources/primerPayload.json b/latest/src/main/resources/primerPayload.json deleted file mode 100644 index 648561e3..00000000 --- a/latest/src/main/resources/primerPayload.json +++ /dev/null @@ -1,467 +0,0 @@ -{ - "resourceType": "Bundle", - "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", - "meta": { - "lastUpdated": "2022-10-21T13:47:00+00:00" - }, - "identifier": { - "system": "https://tools.ietf.org/html/rfc4122", - "value": "5ca1d5d1-fe4f-4c14-8584-7089d2000219" - }, - "type": "message", - "entry": [ - { - "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", - "resource": { - "resourceType": "MessageHeader", - "eventCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/message-event", - "code": "prescription-order", - "display": "Prescription Order" - }, - "sender": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A83008" - }, - "display": "HALLGARTH SURGERY" - }, - "source": { - "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" - }, - "destination": [ - { - "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", - "receiver": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - } - } - } - ], - "focus": [ - { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - { - "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" - }, - { - "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" - } - ] - } - }, - { - "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", - "resource": { - "resourceType": "MedicationRequest", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101", - "display": "Primary Care Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" - } - ], - "status": "active", - "intent": "order", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "community", - "display": "Community" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "322237000", - "display": "Paracetamol 500mg soluble tablets" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "c59b0ad3-b6c9-49f1-a50a-0595b97c503d" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "315A44-A83008-4C9BB1" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "4 times a day - Oral", - "timing": { - "repeat": { - "frequency": 4, - "period": 1, - "periodUnit": "d" - } - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "26643006", - "display": "Oral" - } - ] - } - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "0004" - } - } - ], - "validityPeriod": { - "start": "2021-05-07", - "end": "2021-06-04" - }, - "expectedSupplyDuration": { - "value": 30, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "quantity": { - "value": 100, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", - "resource": { - "resourceType": "MedicationRequest", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101", - "display": "Primary Care Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" - } - ], - "status": "active", - "intent": "order", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "community", - "display": "Community" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "39113611000001102", - "display": "Salbutamol 100micrograms/dose inhaler CFC free" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "c59b0ad3-b6c9-49f1-a50a-0595b97c503d" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "315A44-A83008-4C9BB1" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "5 times a day - Inhalation", - "timing": { - "repeat": { - "frequency": 5, - "period": 1, - "periodUnit": "d" - } - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "18679011000001101", - "display": "Inhalation" - } - ] - } - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "0004" - } - } - ], - "validityPeriod": { - "start": "2021-05-07", - "end": "2021-06-04" - }, - "expectedSupplyDuration": { - "value": 30, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "quantity": { - "value": 200, - "unit": "dose", - "system": "http://snomed.info/sct", - "code": "3317411000001100" - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", - "resource": { - "resourceType": "Patient", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9990548609" - } - ], - "name": [ - { - "use": "usual", - "family": "XXTESTPATIENT-TGNP", - "given": [ - "DONOTUSE" - ], - "prefix": [ - "MR" - ] - } - ], - "gender": "male", - "birthDate": "1932-01-06", - "address": [ - { - "use": "home", - "line": [ - "1 Trevelyan Square", - "Boar Lane", - "Leeds", - "West Yorkshire" - ], - "postalCode": "LS1 6AE" - } - ], - "generalPractitioner": [ - { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A83008" - } - } - ] - } - }, - { - "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", - "resource": { - "resourceType": "PractitionerRole", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", - "value": "200102238987" - } - ], - "practitioner": { - "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" - }, - "organization": { - "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" - }, - "code": [ - { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", - "code": "S8000:G8000:R8000", - "display": "Clinical Practitioner Access Role" - } - ] - } - ], - "telecom": [ - { - "system": "phone", - "value": "01234567890", - "use": "work" - } - ] - } - }, - { - "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", - "resource": { - "resourceType": "Practitioner", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/sds-user-id", - "value": "555086689106" - }, - { - "system": "https://fhir.hl7.org.uk/Id/gmc-number", - "value": "6095103" - }, - { - "system": "https://fhir.hl7.org.uk/Id/din-number", - "value": "977677" - } - ], - "name": [ - { - "family": "BOIN", - "given": [ - "C" - ], - "prefix": [ - "DR" - ] - } - ] - } - }, - { - "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", - "resource": { - "resourceType": "Organization", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A83008" - } - ], - "type": [ - { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", - "code": "76", - "display": "GP PRACTICE" - } - ] - } - ], - "name": "HALLGARTH SURGERY", - "address": [ - { - "use": "work", - "type": "both", - "line": [ - "HALLGARTH SURGERY", - "CHEAPSIDE" - ], - "city": "SHILDON", - "district": "COUNTY DURHAM", - "postalCode": "DL4 2HP" - } - ], - "telecom": [ - { - "system": "phone", - "value": "0115 9737320", - "use": "work" - } - ], - "partOf": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "84H" - }, - "display": "NHS COUNTY DURHAM CCG" - } - } - } - ] -} diff --git a/latest/src/main/resources/uk_core.manifest.json b/latest/src/main/resources/uk_core.manifest.json deleted file mode 100644 index 99ef7657..00000000 --- a/latest/src/main/resources/uk_core.manifest.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - { - "packageName": "fhir.r4.ukcore.stu3.currentbuild", - "version": "0.0.9-pre-release" - } -] diff --git a/latest/src/test/java/software/nhs/fhirvalidator/HandlerTest.java b/latest/src/test/java/software/nhs/fhirvalidator/HandlerTest.java deleted file mode 100644 index c2dc6fd6..00000000 --- a/latest/src/test/java/software/nhs/fhirvalidator/HandlerTest.java +++ /dev/null @@ -1,51 +0,0 @@ -package software.nhs.fhirvalidator; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; - -import nl.altindag.log.LogCaptor; -import software.nhs.fhirvalidator.handler.HandlerStream; -import software.nhs.fhirvalidator.util.ResourceUtils; - -import com.amazonaws.services.lambda.runtime.Context; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; - -import org.junit.jupiter.api.Test; -import static org.mockito.Mockito.mock; - -class HandlerTest { - - @Test - void logStartupMessage() { - LogCaptor logCaptor = LogCaptor.forClass(HandlerStream.class); - - new HandlerStream(); - - assertTrue(logCaptor.getInfoLogs().contains("Validator is ready")); - } - - @Test - void handlerCanProcessEvent() throws IOException { - String stepFunctionEvent = ResourceUtils.getResourceContent("examples/stepFunctionEvent.json"); - HandlerStream handlerStream = new HandlerStream(); - - InputStream inputStream = new ByteArrayInputStream(stepFunctionEvent.getBytes()); - OutputStream outputStream = new ByteArrayOutputStream(); - - handlerStream.handleRequest(inputStream, outputStream, mock(Context.class)); - - JsonObject actualJsonResult = JsonParser.parseString(outputStream.toString()).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/stepFunctionResult.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } -} diff --git a/latest/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java b/latest/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java deleted file mode 100644 index 34bff1cc..00000000 --- a/latest/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java +++ /dev/null @@ -1,310 +0,0 @@ -package software.nhs.fhirvalidator; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; - -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; - -import ca.uhn.fhir.context.FhirContext; -import software.nhs.fhirvalidator.controller.ValidateController; -import software.nhs.fhirvalidator.util.ResourceUtils; - -import org.hl7.fhir.r4.model.OperationOutcome; -import org.hl7.fhir.r4.model.OperationOutcome.IssueSeverity; -import org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent; -import org.hl7.fhir.r4.model.Bundle; -import org.hl7.fhir.r4.model.Bundle.BundleEntryComponent; -import org.hl7.fhir.r4.model.Patient; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; - -class Validator_nhs_digital_Test { - - static ValidateController validateController; - static FhirContext fhirContext; - - Boolean issueListHasSeverity(List issueList, IssueSeverity severity) { - for (OperationOutcomeIssueComponent issue : issueList) { - if (issue.getSeverity().equals(severity)) { - return true; - } - } - return false; - } - - Boolean issueListHasDiagnosticMessageAtSeverity(List issueList, - String diagnosticMessage, IssueSeverity severity) { - for (OperationOutcomeIssueComponent issue : issueList) { - if (issue.getSeverity().equals(severity)) { - if (issue.getDiagnostics().equals(diagnosticMessage)) { - return true; - } - } - } - return false; - } - - @BeforeAll - static void setup() { - // Creating the HAPI validator takes several seconds. It's ok to reuse the same - // validator across tests to speed up tests - String manifest_file = "nhs_digital.manifest.json"; - validateController = new ValidateController(manifest_file); - fhirContext = FhirContext.forR4(); - } - - @Test - void simpleBundle() { - Bundle bundle = new Bundle(); - bundle.setType(Bundle.BundleType.COLLECTION); - BundleEntryComponent bundleEntry = bundle.addEntry(); - bundleEntry.setResource(new Patient()); - String FHIRDocument = fhirContext.newJsonParser().encodeResourceToString(bundle); - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/validSimpleBundle.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - - assertFalse(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); - assertFalse(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.WARNING)); - } - - @Test - void validBundle() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/validBundle.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/validBundle.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - - assertFalse(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); - assertTrue(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.WARNING)); - } - - @Test - void invalidBundle() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/invalidBundle.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/invalidBundle.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - - assertTrue(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); - assertTrue(issueListHasDiagnosticMessageAtSeverity(validatorResult.getIssue(), "Bundle entry missing fullUrl", - OperationOutcome.IssueSeverity.ERROR)); - assertTrue(issueListHasDiagnosticMessageAtSeverity(validatorResult.getIssue(), - "Unable to find a match for profile urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666 among choices: https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-EPSLegal", - OperationOutcome.IssueSeverity.ERROR)); - assertTrue(issueListHasDiagnosticMessageAtSeverity(validatorResult.getIssue(), - "Except for transactions and batches, each entry in a Bundle must have a fullUrl which is the identity of the resource in the entry", - OperationOutcome.IssueSeverity.ERROR)); - } - - @Test - void validParameters() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/validParameters.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/validParameters.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void invalidParameters() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/invalidParameters.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/invalidParameters.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void validOperationOutcome() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/validOperationOutcome.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/successfulOperationOutcome.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void invalidOperationOutcome() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/invalidOperationOutcome.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/invalidOperationOutcome.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void searchSet() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/searchSet.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/searchSet.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void missingHeader() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/missingHeader.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/missingHeader.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void empty() { - String FHIRDocument = ""; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/empty.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void array() { - String FHIRDocument = "[1,2,3]"; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/array.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void null_java() { - String FHIRDocument = null; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/null_java.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void null_json() { - String FHIRDocument = "null"; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/null_json.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void number_json() { - String FHIRDocument = "123"; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/number_json.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void boolean_json() { - String FHIRDocument = "true"; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/boolean_json.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void bad_json() { - String FHIRDocument = "{a:<>}}}"; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/bad_json.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void psuUpdate() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/psu_update.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/psu_nhs_digital.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - - assertTrue(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); - } -} diff --git a/latest/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java b/latest/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java deleted file mode 100644 index 59358e13..00000000 --- a/latest/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java +++ /dev/null @@ -1,179 +0,0 @@ -package software.nhs.fhirvalidator; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; - -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; - -import ca.uhn.fhir.context.FhirContext; -import software.nhs.fhirvalidator.controller.ValidateController; -import software.nhs.fhirvalidator.util.ResourceUtils; - -import org.hl7.fhir.r4.model.OperationOutcome; -import org.hl7.fhir.r4.model.OperationOutcome.IssueSeverity; -import org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; - -class Validator_uk_core_Test { - - static ValidateController validateController; - static FhirContext fhirContext; - - Boolean issueListHasSeverity(List issueList, IssueSeverity severity) { - for (OperationOutcomeIssueComponent issue : issueList) { - if (issue.getSeverity().equals(severity)) { - return true; - } - } - return false; - } - - Boolean issueListHasDiagnosticMessageAtSeverity(List issueList, - String diagnosticMessage, IssueSeverity severity) { - for (OperationOutcomeIssueComponent issue : issueList) { - if (issue.getSeverity().equals(severity)) { - if (issue.getDiagnostics().equals(diagnosticMessage)) { - return true; - } - } - } - return false; - } - - @BeforeAll - static void setup() { - // Creating the HAPI validator takes several seconds. It's ok to reuse the same - // validator across tests to speed up tests - String manifest_file = "uk_core.manifest.json"; - validateController = new ValidateController(manifest_file); - fhirContext = FhirContext.forR4(); - } - - @Test - void psuUpdate() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/psu_update.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/psu_update.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - - assertFalse(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); - //assertFalse(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.WARNING)); - } - - @Test - void validBundle_nhsdigitalProfile() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/validBundle.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - - assertTrue(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); - } - - @Test - void empty() { - String FHIRDocument = ""; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/empty.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void array() { - String FHIRDocument = "[1,2,3]"; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/array.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void null_java() { - String FHIRDocument = null; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/null_java.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void null_json() { - String FHIRDocument = "null"; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/null_json.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void number_json() { - String FHIRDocument = "123"; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/number_json.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void boolean_json() { - String FHIRDocument = "true"; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/boolean_json.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void bad_json() { - String FHIRDocument = "{a:<>}}}"; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/bad_json.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - -} diff --git a/latest/src/test/resources/examples/invalidBundle.json b/latest/src/test/resources/examples/invalidBundle.json deleted file mode 100644 index 0d8d7427..00000000 --- a/latest/src/test/resources/examples/invalidBundle.json +++ /dev/null @@ -1,376 +0,0 @@ -{ - "resourceType": "Bundle", - "id": "0A1FD9EF-A3D5-4E95-84CD-352070A03086", - "meta": { - "lastUpdated": "2022-10-21T13:47:00+00:00" - }, - "identifier": { - "value": "34470bbf-07cb-4b49-bef9-f958114f821f" - }, - "type": "message", - "entry": [ - { - "resource": { - "resourceType": "MessageHeader", - "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03086", - "eventCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/message-event", - "code": "prescription-order", - "display": "Prescription Order" - }, - "sender": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "RBA" - }, - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", - "display": "BOOTH|PHIL" - }, - "source": { - "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" - }, - "destination": [ - { - "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", - "receiver": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FH542" - } - } - } - ], - "focus": [ - { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - { - "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" - } - ] - } - }, - { - "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", - "resource": { - "resourceType": "MedicationRequest", - "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "1001", - "display": "Outpatient Community Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" - } - ], - "status": "active", - "intent": "plan", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "outpatient", - "display": "Outpatient" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "15517911000001104", - "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "030611b2-9769-4696-88d9-9ddcf1132584" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "315A44-A83008-4C9BB1" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", - "timing": { - "repeat": { - "frequency": 5, - "period": 1, - "periodUnit": "d", - "boundsDuration": { - "value": 10, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - } - } - }, - "method": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "422145002", - "display": "Inject" - } - ] - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "34206005", - "display": "Subcutaneous route" - } - ] - }, - "doseAndRate": [ - { - "doseQuantity": { - "value": 10, - "unit": "milligram", - "system": "http://unitsofmeasure.org", - "code": "mg" - } - } - ] - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1" - } - } - ], - "quantity": { - "value": 1, - "unit": "pre-filled disposable injection", - "system": "http://snomed.info/sct", - "code": "3318611000001103" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FH542" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", - "resource": { - "resourceType": "Patient", - "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449305552" - } - ], - "name": [ - { - "use": "usual", - "family": "DAVIS", - "given": [ - "JANE" - ], - "prefix": [ - "MRS" - ] - } - ], - "gender": "female", - "birthDate": "1999-11-25", - "address": [ - { - "use": "home", - "line": [ - "53 Harrogate Road", - "Chapel Allerton", - "Leeds" - ], - "postalCode": "LS7 3PY" - } - ], - "generalPractitioner": [ - { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "B81001" - } - } - ] - } - }, - { - "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", - "resource": { - "resourceType": "Practitioner", - "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/sds-user-id", - "value": "555086689106" - }, - { - "system": "https://fhir.hl7.org.uk/Id/gmc-number", - "value": "6150129" - } - ], - "name": [ - { - "family": "FIFTYSEVEN", - "given": [ - "RANDOM" - ], - "prefix": [ - "MR" - ] - } - ] - } - }, - { - "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", - "resource": { - "resourceType": "PractitionerRole", - "id": "56166769-c1c4-4d07-afa8-132b5dfca666", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", - "value": "601986680555" - }, - { - "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", - "value": "683458" - } - ], - "practitioner": { - "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" - }, - "organization": { - "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" - }, - "telecom": [ - { - "system": "phone", - "value": "01234567890", - "use": "work" - } - ] - } - }, - { - "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", - "resource": { - "resourceType": "Organization", - "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A99968" - } - ], - "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", - "address": [ - { - "use": "work", - "line": [ - "MUSGROVE PARK HOSPITAL" - ], - "city": "TAUNTON", - "postalCode": "TA1 5DA" - } - ], - "telecom": [ - { - "system": "phone", - "value": "01823 333444", - "use": "work" - } - ], - "partOf": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "RBA" - }, - "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" - } - } - }, - { - "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", - "resource": { - "resourceType": "Provenance", - "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", - "target": [ - { - "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" - } - ], - "recorded": "2008-02-27T11:38:00+00:00", - "agent": [ - { - "who": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - } - } - ], - "signature": [ - { - "type": [ - { - "system": "urn:iso-astm:E1762-95:2013", - "code": "1.2.840.10065.1.12.1.1" - } - ], - "when": "2021-03-16T12:34:33+00:00", - "who": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPmlscE5XeW05Wk1Pbk5jV1VzWk9TditmbFJwQT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+S1Yzc0RsY1UzbUhZcmcwYjBhbnBtTjJ4djRpVXJGRmVzVTl1TVZQL2UycHp0aUduT0pKcGFoanBtbGRGTFRIVE1pdXFpbHlwZTVMZDAvdWNlWnR5Q2gzMHUvOW50aEVpLyszOFljcVNNRlNTeWpuN1FPUXl2VFNqTkVqT3Fhb2FTaEhnSmNaR3hUei9GcG5iYktCUUI0NCt0MXVZSjlZbFFJdWNKSkRZWjFZPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" - } - ] - } - } - ] -} diff --git a/latest/src/test/resources/examples/invalidOperationOutcome.json b/latest/src/test/resources/examples/invalidOperationOutcome.json deleted file mode 100644 index 26800155..00000000 --- a/latest/src/test/resources/examples/invalidOperationOutcome.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "meta": { - "lastUpdated": "2022-10-21T13:47:00+00:00" - } -} diff --git a/latest/src/test/resources/examples/invalidParameters.json b/latest/src/test/resources/examples/invalidParameters.json deleted file mode 100644 index a7a447b2..00000000 --- a/latest/src/test/resources/examples/invalidParameters.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "resourceType": "Parameters", - "parameter": [ - { - "name": "timestamp" - } - ] -} diff --git a/latest/src/test/resources/examples/missingHeader.json b/latest/src/test/resources/examples/missingHeader.json deleted file mode 100644 index b6d21b99..00000000 --- a/latest/src/test/resources/examples/missingHeader.json +++ /dev/null @@ -1,696 +0,0 @@ -{ - "resourceType": "Bundle", - "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", - "identifier": { - "system": "https://tools.ietf.org/html/rfc4122", - "value": "5dfe538a-b922-4e8e-ae61-ab80ee6affe7" - }, - "type": "message", - "entry": [ - { - "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", - "resource": { - "resourceType": "MedicationRequest", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101", - "display": "Primary Care Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "9bda1fa2-7a5f-4142-a394-5d262f3fd920" - } - ], - "status": "active", - "intent": "order", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "community", - "display": "Community" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "39732311000001104", - "display": "Amoxicillin 250mg capsules" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "334AF1-A83008-B442F2", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" - } - } - ] - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "2 times a day for 10 days", - "timing": { - "repeat": { - "frequency": 2, - "period": 1, - "periodUnit": "d" - } - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "26643006", - "display": "Oral" - } - ] - } - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1" - } - } - ], - "validityPeriod": { - "start": "2024-03-05", - "end": "2024-04-05" - }, - "quantity": { - "value": 20, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "expectedSupplyDuration": { - "value": 10, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", - "resource": { - "resourceType": "MedicationRequest", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101", - "display": "Primary Care Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "cae365a5-9835-406e-be57-473fae309760" - } - ], - "status": "active", - "intent": "order", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "community", - "display": "Community" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "322341003", - "display": "Co-codamol 30mg/500mg tablets" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "334AF1-A83008-B442F2", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" - } - } - ] - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "2 times a day for 10 days", - "timing": { - "repeat": { - "frequency": 2, - "period": 1, - "periodUnit": "d" - } - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "26643006", - "display": "Oral" - } - ] - } - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1" - } - } - ], - "validityPeriod": { - "start": "2024-03-05", - "end": "2024-04-05" - }, - "quantity": { - "value": 20, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "expectedSupplyDuration": { - "value": 10, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", - "resource": { - "resourceType": "MedicationRequest", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101", - "display": "Primary Care Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "2b24d698-0491-4c3c-9f7a-2dd6f18eafbb" - } - ], - "status": "active", - "intent": "order", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "community", - "display": "Community" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "321080004", - "display": "Pseudoephedrine hydrochloride 60mg tablets" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "334AF1-A83008-B442F2", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" - } - } - ] - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "3 times a day for 10 days", - "timing": { - "repeat": { - "frequency": 3, - "period": 1, - "periodUnit": "d" - } - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "26643006", - "display": "Oral" - } - ] - } - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1" - } - } - ], - "validityPeriod": { - "start": "2024-03-05", - "end": "2024-04-05" - }, - "quantity": { - "value": 30, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "expectedSupplyDuration": { - "value": 10, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", - "resource": { - "resourceType": "MedicationRequest", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101", - "display": "Primary Care Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "4f13a628-d226-4a03-a547-ff45577e9157" - } - ], - "status": "active", - "intent": "order", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "community", - "display": "Community" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "324252006", - "display": "Azithromycin 250mg capsules" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "334AF1-A83008-B442F2", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" - } - } - ] - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "3 times a day for 10 days", - "timing": { - "repeat": { - "frequency": 3, - "period": 1, - "periodUnit": "d" - } - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "26643006", - "display": "Oral" - } - ] - } - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1" - } - } - ], - "validityPeriod": { - "start": "2024-03-05", - "end": "2024-04-05" - }, - "quantity": { - "value": 30, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "expectedSupplyDuration": { - "value": 10, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", - "resource": { - "resourceType": "Patient", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449304130" - } - ], - "name": [ - { - "use": "usual", - "family": "TWITCHETT", - "given": [ - "STACEY", - "MARISA" - ], - "prefix": [ - "MS" - ] - } - ], - "gender": "female", - "birthDate": "1948-04-30", - "address": [ - { - "use": "home", - "line": [ - "10 HEATHFIELD", - "COBHAM", - "SURREY" - ], - "postalCode": "KT11 2QY" - } - ], - "generalPractitioner": [ - { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A83008" - } - } - ] - } - }, - { - "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", - "resource": { - "resourceType": "PractitionerRole", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", - "value": "200102238987" - } - ], - "practitioner": { - "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" - }, - "organization": { - "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" - }, - "code": [ - { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", - "code": "R8000", - "display": "Clinical Practitioner Access Role" - }, - { - "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", - "code": "R8000", - "display": "Clinical Practitioner Access Role" - } - ] - } - ], - "telecom": [ - { - "system": "phone", - "use": "work", - "value": "01234567890" - } - ] - } - }, - { - "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", - "resource": { - "resourceType": "Practitioner", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/sds-user-id", - "value": "555086689106" - }, - { - "system": "https://fhir.hl7.org.uk/Id/gmc-number", - "value": "6095103" - }, - { - "system": "https://fhir.hl7.org.uk/Id/din-number", - "value": "977677" - } - ], - "name": [ - { - "family": "BOIN", - "given": [ - "C" - ], - "prefix": [ - "DR" - ] - } - ] - } - }, - { - "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", - "resource": { - "resourceType": "Organization", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A83008" - } - ], - "type": [ - { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", - "code": "76", - "display": "GP PRACTICE" - } - ] - } - ], - "name": "HALLGARTH SURGERY", - "telecom": [ - { - "system": "phone", - "use": "work", - "value": "0115 9737320" - } - ], - "address": [ - { - "use": "work", - "type": "both", - "line": [ - "HALLGARTH SURGERY", - "CHEAPSIDE" - ], - "city": "SHILDON", - "district": "COUNTY DURHAM", - "postalCode": "DL4 2HP" - } - ], - "partOf": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "84H" - }, - "display": "NHS COUNTY DURHAM CCG" - } - } - } - ] -} diff --git a/latest/src/test/resources/examples/psu_update.json b/latest/src/test/resources/examples/psu_update.json deleted file mode 100644 index 0faa5c6a..00000000 --- a/latest/src/test/resources/examples/psu_update.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "resourceType": "Bundle", - "type": "transaction", - "entry": [ - { - "fullUrl": "http://example.org/fhir/Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46", - "resource": { - "resourceType": "Task", - "id": "4d70678c-81e4-4ff4-8c67-17596fd0aa46", - "basedOn": [ - { - "identifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "07A66F-A83008-1EEEA0" - } - } - ], - "status": "completed", - "businessStatus": { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/task-businessStatus-nppt", - "code": "Dispatched" - } - ] - }, - "intent": "order", - "focus": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "6989b7bd-8db6-428c-a593-4022e3044c00" - } - }, - "for": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449304130" - } - }, - "lastModified": "2024-01-30T12:01:24Z", - "owner": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "C9Z1O" - } - } - }, - "request": { - "method": "POST", - "url": "Task" - } - } - ] -} diff --git a/latest/src/test/resources/examples/searchSet.json b/latest/src/test/resources/examples/searchSet.json deleted file mode 100644 index 09fcfcc4..00000000 --- a/latest/src/test/resources/examples/searchSet.json +++ /dev/null @@ -1,711 +0,0 @@ -{ - "resourceType": "Bundle", - "id": "test-request-id", - "meta": { - "lastUpdated": "2022-11-21T14:00:00+00:00" - }, - "type": "searchset", - "total": 2, - "entry": [ - { - "fullUrl": "urn:uuid:0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", - "search": { - "mode": "match" - }, - "resource": { - "resourceType": "Bundle", - "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", - "type": "collection", - "entry": [ - { - "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", - "resource": { - "resourceType": "MedicationRequest", - "status": "active", - "intent": "order", - "medicationCodeableConcept": { - "coding": [ - { - "system": "https://snomed.info/sct", - "code": "39732311000001104", - "display": "Amoxicillin 250mg capsules" - } - ] - }, - "subject": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449304130" - } - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "24F5DA-A83008-7EFE6Z" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dispenseRequest": { - "validityPeriod": { - "start": "2022-10-21" - }, - "quantity": { - "value": 20, - "unit": "tablet", - "system": "https://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "reference": "urn:uuid:afb07f8b-e8d7-4cad-895d-494e6b35b2a1" - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", - "resource": { - "resourceType": "MedicationRequest", - "status": "active", - "intent": "order", - "medicationCodeableConcept": { - "coding": [ - { - "system": "https://snomed.info/sct", - "code": "322341003", - "display": "Co-codamol 30mg/500mg tablets" - } - ] - }, - "subject": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449304130" - } - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "24F5DA-A83008-7EFE6Z" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dispenseRequest": { - "validityPeriod": { - "start": "2022-10-21" - }, - "quantity": { - "value": 20, - "unit": "tablet", - "system": "https://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "reference": "urn:uuid:afb07f8b-e8d7-4cad-895d-494e6b35b2a1" - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", - "resource": { - "resourceType": "MedicationRequest", - "status": "active", - "intent": "order", - "medicationCodeableConcept": { - "coding": [ - { - "system": "https://snomed.info/sct", - "code": "321080004", - "display": "Pseudoephedrine hydrochloride 60mg tablets" - } - ] - }, - "subject": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449304130" - } - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "24F5DA-A83008-7EFE6Z" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dispenseRequest": { - "validityPeriod": { - "start": "2022-10-21" - }, - "quantity": { - "value": 30, - "unit": "tablet", - "system": "https://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "reference": "urn:uuid:afb07f8b-e8d7-4cad-895d-494e6b35b2a1" - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", - "resource": { - "resourceType": "MedicationRequest", - "status": "cancelled", - "intent": "order", - "medicationCodeableConcept": { - "coding": [ - { - "system": "https://snomed.info/sct", - "code": "324252006", - "display": "Azithromycin 250mg capsules" - } - ] - }, - "subject": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449304130" - } - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "24F5DA-A83008-7EFE6Z" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dispenseRequest": { - "validityPeriod": { - "start": "2022-10-21" - }, - "quantity": { - "value": 30, - "unit": "tablet", - "system": "https://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "reference": "urn:uuid:afb07f8b-e8d7-4cad-895d-494e6b35b2a1" - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", - "resource": { - "resourceType": "PractitionerRole", - "id": "56166769-c1c4-4d07-afa8-132b5dfca666", - "practitioner": { - "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" - }, - "organization": { - "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" - } - } - }, - { - "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", - "resource": { - "resourceType": "Practitioner", - "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", - "name": [ - { - "family": "BOIN", - "given": [ - "C" - ], - "prefix": [ - "DR" - ] - } - ] - } - }, - { - "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", - "resource": { - "resourceType": "Organization", - "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A83008" - } - ], - "name": "HALLGARTH SURGERY", - "telecom": [ - { - "system": "phone", - "use": "work", - "value": "0115 9737320" - } - ], - "address": [ - { - "use": "work", - "type": "both", - "line": [ - "HALLGARTH SURGERY", - "CHEAPSIDE" - ], - "city": "SHILDON", - "district": "COUNTY DURHAM", - "postalCode": "DL4 2HP" - } - ] - } - }, - { - "fullUrl": "urn:uuid:afb07f8b-e8d7-4cad-895d-494e6b35b2a1", - "resource": { - "resourceType": "Organization", - "id": "afb07f8b-e8d7-4cad-895d-494e6b35b2a1", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FLM49" - } - ], - "name": "Pharmacy2u", - "telecom": [ - { - "system": "phone", - "use": "work", - "value": "0113 2650222" - }, - { - "system": "url", - "use": "work", - "value": "www.pharmacy2u.co.uk" - } - ], - "address": [ - { - "use": "work", - "type": "both", - "line": [ - "Unit 4B", - "Victoria Road" - ], - "city": "LEEDS", - "district": "WEST YORKSHIRE", - "postalCode": "LS14 2LA" - } - ] - } - } - ] - } - }, - { - "fullUrl": "urn:uuid:0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", - "search": { - "mode": "match" - }, - "resource": { - "resourceType": "Bundle", - "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", - "type": "collection", - "entry": [ - { - "fullUrl": "urn:uuid:ee035711-7aac-48c4-951a-62c07891d37d", - "resource": { - "resourceType": "MedicationRequest", - "status": "cancelled", - "intent": "order", - "medicationCodeableConcept": { - "coding": [ - { - "system": "https://snomed.info/sct", - "code": "324252006", - "display": "Azithromycin 250mg capsules" - } - ] - }, - "subject": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449304130" - } - }, - "requester": { - "reference": "urn:uuid:815c6eb3-41f8-4f48-9e0d-2983624d4f90" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "566946-B86044-FEFEFN" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dispenseRequest": { - "validityPeriod": { - "start": "2023-03-14" - }, - "quantity": { - "value": 30, - "unit": "tablet", - "system": "https://snomed.info/sct", - "code": "428673006" - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:815c6eb3-41f8-4f48-9e0d-2983624d4f90", - "resource": { - "resourceType": "PractitionerRole", - "id": "815c6eb3-41f8-4f48-9e0d-2983624d4f90", - "practitioner": { - "reference": "urn:uuid:acd5b009-c78f-40f2-a48b-b38ac72de992" - }, - "organization": { - "reference": "urn:uuid:9683c147-ddad-41d9-9858-6e585c3f04df" - } - } - }, - { - "fullUrl": "urn:uuid:acd5b009-c78f-40f2-a48b-b38ac72de992", - "resource": { - "resourceType": "Practitioner", - "id": "acd5b009-c78f-40f2-a48b-b38ac72de992", - "name": [ - { - "family": "ROBINSON", - "given": [ - "C" - ], - "prefix": [ - "DR" - ] - } - ] - } - }, - { - "fullUrl": "urn:uuid:9683c147-ddad-41d9-9858-6e585c3f04df", - "resource": { - "resourceType": "Organization", - "id": "9683c147-ddad-41d9-9858-6e585c3f04df", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "B86044" - } - ], - "name": "IRELAND WOOD SURGERY", - "telecom": [ - { - "system": "phone", - "value": "0113 2303470" - } - ], - "address": [ - { - "use": "work", - "type": "both", - "line": [ - "IVESON APPROACH" - ], - "city": "LEEDS", - "district": "WEST YORKSHIRE", - "postalCode": "LS16 6FR", - "country": "ENGLAND" - } - ] - } - } - ] - } - }, - { - "fullUrl": "urn:uuid:0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", - "search": { - "mode": "match" - }, - "resource": { - "resourceType": "Bundle", - "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", - "type": "collection", - "entry": [ - { - "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", - "resource": { - "resourceType": "MedicationRequest", - "status": "active", - "intent": "order", - "medicationCodeableConcept": { - "coding": [ - { - "system": "https://snomed.info/sct", - "code": "39732311000001104", - "display": "Amoxicillin 250mg capsules" - } - ] - }, - "subject": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449304130" - } - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "24F5DA-A83008-7EFE6Z" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dispenseRequest": { - "validityPeriod": { - "start": "2022-10-21" - }, - "quantity": { - "value": 20, - "unit": "tablet", - "system": "https://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "reference": "urn:uuid:154dcc4a-0006-4272-9758-9dcb8d95ce8b" - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:815c6eb3-41f8-4f48-9e0d-2983624d4f90", - "resource": { - "resourceType": "PractitionerRole", - "id": "815c6eb3-41f8-4f48-9e0d-2983624d4f90", - "practitioner": { - "reference": "urn:uuid:acd5b009-c78f-40f2-a48b-b38ac72de992" - }, - "organization": { - "reference": "urn:uuid:9683c147-ddad-41d9-9858-6e585c3f04df" - } - } - }, - { - "fullUrl": "urn:uuid:acd5b009-c78f-40f2-a48b-b38ac72de992", - "resource": { - "resourceType": "Practitioner", - "id": "acd5b009-c78f-40f2-a48b-b38ac72de992", - "name": [ - { - "family": "ROBINSON", - "given": [ - "C" - ], - "prefix": [ - "DR" - ] - } - ] - } - }, - { - "fullUrl": "urn:uuid:9683c147-ddad-41d9-9858-6e585c3f04df", - "resource": { - "resourceType": "Organization", - "id": "9683c147-ddad-41d9-9858-6e585c3f04df", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "B86044" - } - ], - "name": "IRELAND WOOD SURGERY", - "telecom": [ - { - "system": "phone", - "value": "0113 2303470" - } - ], - "address": [ - { - "use": "work", - "type": "both", - "line": [ - "IVESON APPROACH" - ], - "city": "LEEDS", - "district": "WEST YORKSHIRE", - "postalCode": "LS16 6FR", - "country": "ENGLAND" - } - ] - } - }, - { - "fullUrl": "urn:uuid:154dcc4a-0006-4272-9758-9dcb8d95ce8b", - "resource": { - "resourceType": "Organization", - "id": "154dcc4a-0006-4272-9758-9dcb8d95ce8b", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FEW08" - } - ], - "name": "Pharmica", - "telecom": [ - { - "system": "phone", - "use": "work", - "value": "020 71129014" - }, - { - "system": "url", - "use": "work", - "value": "www.pharmica.co.uk" - } - ], - "address": [ - { - "use": "work", - "type": "both", - "line": [ - "1-5 Clerkenwell Road" - ], - "city": "LONDON", - "district": "GREATER LONDON", - "postalCode": "EC1M 5PA" - } - ] - } - } - ] - } - }, - { - "fullUrl": "urn:uuid:1a388581-dbbe-43e3-9054-f5976c0245e5", - "search": { - "mode": "outcome" - }, - "resource": { - "resourceType": "OperationOutcome", - "id": "1a388581-dbbe-43e3-9054-f5976c0245e5", - "meta": { - "lastUpdated": "2023-09-29T10:52:00+00:00" - }, - "issue": [ - { - "code": "business-rule", - "severity": "warning", - "details": { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/Spine-ErrorOrWarningCode", - "code": "INVALIDATED_RESOURCE", - "display": "Invalidated resource" - } - ] - }, - "diagnostics": "Prescription with short form ID D7AC09-A99968-4BA59C has been invalidated so could not be returned." - } - ] - } - }, - { - "fullUrl": "urn:uuid:fedef61e-bc62-452e-91c0-6f44ad2d5c0c", - "search": { - "mode": "outcome" - }, - "resource": { - "resourceType": "OperationOutcome", - "id": "fedef61e-bc62-452e-91c0-6f44ad2d5c0c", - "meta": { - "lastUpdated": "2023-09-29T10:52:00+00:00" - }, - "issue": [ - { - "code": "business-rule", - "severity": "warning", - "details": { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/Spine-ErrorOrWarningCode", - "code": "INVALIDATED_RESOURCE", - "display": "Invalidated resource" - } - ] - }, - "diagnostics": "Prescription with short form ID CDF34E-A99968-4FF3BQ has been invalidated so could not be returned." - } - ] - } - } - ] -} diff --git a/latest/src/test/resources/examples/stepFunctionEvent.json b/latest/src/test/resources/examples/stepFunctionEvent.json deleted file mode 100644 index 9b4e447d..00000000 --- a/latest/src/test/resources/examples/stepFunctionEvent.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "body": { - "resourceType": "Bundle", - "type": "transaction", - "entry": [ - { - "fullUrl": "urn:uuid:4d70678c-81e4-4ff4-8c67-17596fd0aa46", - "resource": { - "resourceType": "Task", - "id": "4d70678c-81e4-4ff4-8c67-17596fd0aa46", - "basedOn": [ - { - "identifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "16B2E0-A83008-81C13H" - } - } - ], - "status": "completed", - "businessStatus": { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/task-businessStatus-nppt", - "code": "dispatched" - } - ] - }, - "intent": "order", - "focus": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "6989b7bd-8db6-428c-a593-4022e3044c00" - } - }, - "for": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449304130" - } - }, - "lastModified": "2023-10-11T10:11:12Z", - "owner": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "C9Z1O" - } - } - }, - "request": { - "method": "POST", - "url": "Task" - } - } - ] - }, - "headers": { - "Accept": "*/*", - "Accept-Encoding": "gzip, deflate, br", - "apigw-request-id": "5600dff8-6553-42e3-a0ff-c2c9d04d3de6", - "Authorization": "Bearer nSoPA0PNA2JG8phqPwtCn9ys1G6z", - "Content-Type": "application/json", - "Host": "psu-pr-150.dev.eps.national.nhs.uk", - "nhsd-nhslogin-user": "P9:9912003071", - "Postman-Token": "8ca7a240-0b9e-4c1f-90d8-a526faa533e2", - "User-Agent": "PostmanRuntime/7.37.3", - "X-Amzn-Trace-Id": "Root=1-66290323-47ec5ff50d05147878b956d3", - "x-correlation-id": "ead03d9a-d14e-414d-9e01-217319210ddd", - "X-Forwarded-For": "86.5.218.71", - "X-Forwarded-Port": "443", - "X-Forwarded-Proto": "https", - "x-request-id": "c39f1caa-cd63-438d-bc2b-fafd3f02ed41" - }, - "querystring": {}, - "path": {} -} diff --git a/latest/src/test/resources/examples/validBundle.json b/latest/src/test/resources/examples/validBundle.json deleted file mode 100644 index fe040eb9..00000000 --- a/latest/src/test/resources/examples/validBundle.json +++ /dev/null @@ -1,749 +0,0 @@ -{ - "resourceType": "Bundle", - "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", - "identifier": { - "system": "https://tools.ietf.org/html/rfc4122", - "value": "5dfe538a-b922-4e8e-ae61-ab80ee6affe7" - }, - "type": "message", - "entry": [ - { - "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", - "resource": { - "resourceType": "MessageHeader", - "eventCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/message-event", - "code": "prescription-order", - "display": "Prescription Order" - }, - "destination": [ - { - "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", - "receiver": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - }, - "display": "The Simple Pharmacy" - } - } - ], - "sender": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A83008" - }, - "display": "HALLGARTH SURGERY" - }, - "source": { - "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" - }, - "focus": [ - { - "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" - }, - { - "reference": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00" - }, - { - "reference": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a" - }, - { - "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" - }, - { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - } - ] - } - }, - { - "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", - "resource": { - "resourceType": "MedicationRequest", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101", - "display": "Primary Care Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "9bda1fa2-7a5f-4142-a394-5d262f3fd920" - } - ], - "status": "active", - "intent": "order", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "community", - "display": "Community" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "39732311000001104", - "display": "Amoxicillin 250mg capsules" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "334AF1-A83008-B442F2", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" - } - } - ] - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "2 times a day for 10 days", - "timing": { - "repeat": { - "frequency": 2, - "period": 1, - "periodUnit": "d" - } - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "26643006", - "display": "Oral" - } - ] - } - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1" - } - } - ], - "validityPeriod": { - "start": "2024-03-05", - "end": "2024-04-05" - }, - "quantity": { - "value": 20, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "expectedSupplyDuration": { - "value": 10, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", - "resource": { - "resourceType": "MedicationRequest", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101", - "display": "Primary Care Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "cae365a5-9835-406e-be57-473fae309760" - } - ], - "status": "active", - "intent": "order", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "community", - "display": "Community" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "322341003", - "display": "Co-codamol 30mg/500mg tablets" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "334AF1-A83008-B442F2", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" - } - } - ] - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "2 times a day for 10 days", - "timing": { - "repeat": { - "frequency": 2, - "period": 1, - "periodUnit": "d" - } - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "26643006", - "display": "Oral" - } - ] - } - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1" - } - } - ], - "validityPeriod": { - "start": "2024-03-05", - "end": "2024-04-05" - }, - "quantity": { - "value": 20, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "expectedSupplyDuration": { - "value": 10, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", - "resource": { - "resourceType": "MedicationRequest", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101", - "display": "Primary Care Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "2b24d698-0491-4c3c-9f7a-2dd6f18eafbb" - } - ], - "status": "active", - "intent": "order", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "community", - "display": "Community" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "321080004", - "display": "Pseudoephedrine hydrochloride 60mg tablets" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "334AF1-A83008-B442F2", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" - } - } - ] - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "3 times a day for 10 days", - "timing": { - "repeat": { - "frequency": 3, - "period": 1, - "periodUnit": "d" - } - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "26643006", - "display": "Oral" - } - ] - } - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1" - } - } - ], - "validityPeriod": { - "start": "2024-03-05", - "end": "2024-04-05" - }, - "quantity": { - "value": 30, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "expectedSupplyDuration": { - "value": 10, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", - "resource": { - "resourceType": "MedicationRequest", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101", - "display": "Primary Care Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "4f13a628-d226-4a03-a547-ff45577e9157" - } - ], - "status": "active", - "intent": "order", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "community", - "display": "Community" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "324252006", - "display": "Azithromycin 250mg capsules" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "334AF1-A83008-B442F2", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" - } - } - ] - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "3 times a day for 10 days", - "timing": { - "repeat": { - "frequency": 3, - "period": 1, - "periodUnit": "d" - } - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "26643006", - "display": "Oral" - } - ] - } - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1" - } - } - ], - "validityPeriod": { - "start": "2024-03-05", - "end": "2024-04-05" - }, - "quantity": { - "value": 30, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "expectedSupplyDuration": { - "value": 10, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", - "resource": { - "resourceType": "Patient", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449304130" - } - ], - "name": [ - { - "use": "usual", - "family": "TWITCHETT", - "given": [ - "STACEY", - "MARISA" - ], - "prefix": [ - "MS" - ] - } - ], - "gender": "female", - "birthDate": "1948-04-30", - "address": [ - { - "use": "home", - "line": [ - "10 HEATHFIELD", - "COBHAM", - "SURREY" - ], - "postalCode": "KT11 2QY" - } - ], - "generalPractitioner": [ - { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A83008" - } - } - ] - } - }, - { - "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", - "resource": { - "resourceType": "PractitionerRole", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", - "value": "200102238987" - } - ], - "practitioner": { - "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" - }, - "organization": { - "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" - }, - "code": [ - { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", - "code": "R8000", - "display": "Clinical Practitioner Access Role" - }, - { - "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", - "code": "R8000", - "display": "Clinical Practitioner Access Role" - } - ] - } - ], - "telecom": [ - { - "system": "phone", - "use": "work", - "value": "01234567890" - } - ] - } - }, - { - "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", - "resource": { - "resourceType": "Practitioner", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/sds-user-id", - "value": "555086689106" - }, - { - "system": "https://fhir.hl7.org.uk/Id/gmc-number", - "value": "6095103" - }, - { - "system": "https://fhir.hl7.org.uk/Id/din-number", - "value": "977677" - } - ], - "name": [ - { - "family": "BOIN", - "given": [ - "C" - ], - "prefix": [ - "DR" - ] - } - ] - } - }, - { - "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", - "resource": { - "resourceType": "Organization", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A83008" - } - ], - "type": [ - { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", - "code": "76", - "display": "GP PRACTICE" - } - ] - } - ], - "name": "HALLGARTH SURGERY", - "telecom": [ - { - "system": "phone", - "use": "work", - "value": "0115 9737320" - } - ], - "address": [ - { - "use": "work", - "type": "both", - "line": [ - "HALLGARTH SURGERY", - "CHEAPSIDE" - ], - "city": "SHILDON", - "district": "COUNTY DURHAM", - "postalCode": "DL4 2HP" - } - ], - "partOf": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "84H" - }, - "display": "NHS COUNTY DURHAM CCG" - } - } - } - ] -} diff --git a/latest/src/test/resources/examples/validOperationOutcome.json b/latest/src/test/resources/examples/validOperationOutcome.json deleted file mode 100644 index 4d90c94d..00000000 --- a/latest/src/test/resources/examples/validOperationOutcome.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "meta": { - "lastUpdated": "2022-10-21T13:47:00+00:00" - }, - "issue": [ - { - "severity": "information", - "code": "informational" - } - ] -} diff --git a/latest/src/test/resources/examples/validParameters.json b/latest/src/test/resources/examples/validParameters.json deleted file mode 100644 index 4e86b816..00000000 --- a/latest/src/test/resources/examples/validParameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "resourceType": "Parameters", - "parameter": [ - { - "name": "timestamp", - "valueString": "2022-10-25T10:24:34+00:00" - } - ] -} diff --git a/latest/src/test/resources/logback-test.xml b/latest/src/test/resources/logback-test.xml deleted file mode 100644 index 5d4ea2c8..00000000 --- a/latest/src/test/resources/logback-test.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n - - - - - - diff --git a/latest/src/test/resources/results/array.json b/latest/src/test/resources/results/array.json deleted file mode 100644 index 56b7de3e..00000000 --- a/latest/src/test/resources/results/array.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "severity": "error", - "code": "processing", - "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: HAPI-1859: Content does not appear to be FHIR JSON, first non-whitespace character was: '[' (must be '{')" - } - ] -} diff --git a/latest/src/test/resources/results/bad_json.json b/latest/src/test/resources/results/bad_json.json deleted file mode 100644 index 00fa9f96..00000000 --- a/latest/src/test/resources/results/bad_json.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "severity": "error", - "code": "processing", - "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: Unexpected character ('a' (code 97)): was expecting double-quote to start field name\n at [line: 1, column: 2]" - } - ] -} diff --git a/latest/src/test/resources/results/boolean_json.json b/latest/src/test/resources/results/boolean_json.json deleted file mode 100644 index 88471801..00000000 --- a/latest/src/test/resources/results/boolean_json.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "severity": "error", - "code": "processing", - "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: HAPI-1859: Content does not appear to be FHIR JSON, first non-whitespace character was: 't' (must be '{')" - } - ] -} diff --git a/latest/src/test/resources/results/empty.json b/latest/src/test/resources/results/empty.json deleted file mode 100644 index 8ad8d892..00000000 --- a/latest/src/test/resources/results/empty.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "severity": "error", - "code": "processing", - "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: HAPI-1857: Did not find any content to parse" - } - ] -} diff --git a/latest/src/test/resources/results/invalidBundle.json b/latest/src/test/resources/results/invalidBundle.json deleted file mode 100644 index 84810782..00000000 --- a/latest/src/test/resources/results/invalidBundle.json +++ /dev/null @@ -1,431 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1082 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Bundle_BUNDLE_Entry_NoFullUrl" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Bundle_BUNDLE_Entry_NoFullUrl" - } - ] - }, - "diagnostics": "Bundle entry missing fullUrl", - "location": [ - "Bundle.entry[0]", - "Line[1] Col[1082]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1081 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[0].resource/*MessageHeader/0a1fd9ef-a3d5-4e95-84cd-552070a03086*/", - "Line[1] Col[1081]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3724 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/", - "Line[1] Col[3724]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2030 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[2030]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2030 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#15517911000001104)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[2030]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2028 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Unable to validate medication codes", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[2028]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2176 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Reference_REF_CantMatchChoice" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Reference_REF_CantMatchChoice" - } - ] - }, - "diagnostics": "Unable to find a match for profile urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666 among choices: https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-EPSLegal", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.requester", - "Line[1] Col[2176]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2176 - } - ], - "severity": "information", - "code": "processing", - "diagnostics": "Details for urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666 matching against profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-EPSLegal - Bundle.entry[4].resource/*PractitionerRole/null*/: PractitionerRole.code: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-EPSLegal)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.requester", - "Line[1] Col[2176]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3034 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.dosageInstruction[0].route", - "Line[1] Col[3034]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3130 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.dosageInstruction[0].method", - "Line[1] Col[3130]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4325 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[2].resource/*Patient/null*/", - "Line[1] Col[4325]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4738 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[3].resource/*Practitioner/null*/", - "Line[1] Col[4738]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4738 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: prac-gmc: 'GMC must be of the format CNNNNNNN' (defined in https://fhir.nhs.uk/StructureDefinition/NHSDigital-Practitioner)", - "location": [ - "Bundle.entry[3].resource/*Practitioner/null*/", - "Line[1] Col[4738]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 5328 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[4].resource/*PractitionerRole/null*/", - "Line[1] Col[5328]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 5328 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: role-spurious: 'Spurious Code format must be G6NNNNNN or G7NNNNNN'", - "location": [ - "Bundle.entry[4].resource/*PractitionerRole/null*/", - "Line[1] Col[5328]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 5974 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[5].resource/*Organization/null*/", - "Line[1] Col[5974]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 9357 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[6].resource/*Provenance/null*/", - "Line[1] Col[9357]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1082 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "BUNDLE_BUNDLE_ENTRY_FULLURL_REQUIRED" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "BUNDLE_BUNDLE_ENTRY_FULLURL_REQUIRED" - } - ] - }, - "diagnostics": "Except for transactions and batches, each entry in a Bundle must have a fullUrl which is the identity of the resource in the entry", - "location": [ - "Bundle.entry[0]", - "Line[1] Col[1082]" - ] - } - ] -} diff --git a/latest/src/test/resources/results/invalidOperationOutcome.json b/latest/src/test/resources/results/invalidOperationOutcome.json deleted file mode 100644 index 9a26e5dd..00000000 --- a/latest/src/test/resources/results/invalidOperationOutcome.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 169 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "OperationOutcome.issue: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-OperationOutcome|1.1.1)", - "location": [ - "OperationOutcome", - "Line[1] Col[169]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 169 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "OperationOutcome", - "Line[1] Col[169]" - ] - } - ] -} diff --git a/latest/src/test/resources/results/invalidParameters.json b/latest/src/test/resources/results/invalidParameters.json deleted file mode 100644 index 54260ed6..00000000 --- a/latest/src/test/resources/results/invalidParameters.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 63 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "http://hl7.org/fhir/StructureDefinition/Parameters#inv-1" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "http://hl7.org/fhir/StructureDefinition/Parameters#inv-1" - } - ] - }, - "diagnostics": "Constraint failed: inv-1: 'A parameter must have one and only one of (value, resource, part)'", - "location": [ - "Parameters.parameter[0]", - "Line[1] Col[63]" - ] - } - ] -} diff --git a/latest/src/test/resources/results/missingHeader.json b/latest/src/test/resources/results/missingHeader.json deleted file mode 100644 index f59f1f0c..00000000 --- a/latest/src/test/resources/results/missingHeader.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "severity": "error", - "code": "processing", - "diagnostics": "No MessageHeader found.", - "expression": [ - "Bundle.entry" - ] - } - ] -} diff --git a/latest/src/test/resources/results/null_java.json b/latest/src/test/resources/results/null_java.json deleted file mode 100644 index 27be4901..00000000 --- a/latest/src/test/resources/results/null_java.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "severity": "error", - "code": "processing", - "diagnostics": "Cannot invoke \"String.length()\" because \"s\" is null" - } - ] -} diff --git a/latest/src/test/resources/results/null_json.json b/latest/src/test/resources/results/null_json.json deleted file mode 100644 index 49593577..00000000 --- a/latest/src/test/resources/results/null_json.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "severity": "error", - "code": "processing", - "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: HAPI-1859: Content does not appear to be FHIR JSON, first non-whitespace character was: 'n' (must be '{')" - } - ] -} diff --git a/latest/src/test/resources/results/number_json.json b/latest/src/test/resources/results/number_json.json deleted file mode 100644 index f821bbb7..00000000 --- a/latest/src/test/resources/results/number_json.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "severity": "error", - "code": "processing", - "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: HAPI-1859: Content does not appear to be FHIR JSON, first non-whitespace character was: '1' (must be '{')" - } - ] -} diff --git a/latest/src/test/resources/results/psu_nhs_digital.json b/latest/src/test/resources/results/psu_nhs_digital.json deleted file mode 100644 index f43818cf..00000000 --- a/latest/src/test/resources/results/psu_nhs_digital.json +++ /dev/null @@ -1,210 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1004 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", - "Line[1] Col[1004]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1004 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "Task.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", - "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", - "Line[1] Col[1004]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1004 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "Task.code: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", - "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", - "Line[1] Col[1004]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1004 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "Task.authoredOn: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", - "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", - "Line[1] Col[1004]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1004 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "Task.requester: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", - "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", - "Line[1] Col[1004]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 625 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_1_CC" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_1_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'EPSTaskBusinessPrescriptionStatus' (https://fhir.nhs.uk/ValueSet/DM-task-business-status|1.0.0), and a coding from this value set is required) (codes = https://fhir.nhs.uk/CodeSystem/task-businessStatus-nppt#Dispatched)", - "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/.businessStatus", - "Line[1] Col[625]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 623 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "Task.businessStatus.coding.display: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", - "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/.businessStatus.coding[0]", - "Line[1] Col[623]" - ] - } - ] -} diff --git a/latest/src/test/resources/results/psu_update.json b/latest/src/test/resources/results/psu_update.json deleted file mode 100644 index a0682728..00000000 --- a/latest/src/test/resources/results/psu_update.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 851 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", - "Line[1] Col[851]" - ] - } - ] -} diff --git a/latest/src/test/resources/results/searchSet.json b/latest/src/test/resources/results/searchSet.json deleted file mode 100644 index 2e53ede9..00000000 --- a/latest/src/test/resources/results/searchSet.json +++ /dev/null @@ -1,2396 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1227 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1227]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1227 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1227]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1227 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1227]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1227 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1227]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 501 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#39732311000001104)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[501]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 499 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "This_element_does_not_match_any_known_slice_" - } - ], - "severity": "information", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "This_element_does_not_match_any_known_slice_" - } - ] - }, - "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[499]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 501 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[501]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 779 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[779]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 779 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[779]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 958 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_1_CC" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_1_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.courseOfTherapyType", - "Line[1] Col[958]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1186 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[1186]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1186 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[1186]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2326 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/", - "Line[1] Col[2326]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2326 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/", - "Line[1] Col[2326]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2326 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/", - "Line[1] Col[2326]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2326 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/", - "Line[1] Col[2326]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1600 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#322341003)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[1600]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1598 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "This_element_does_not_match_any_known_slice_" - } - ], - "severity": "information", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "This_element_does_not_match_any_known_slice_" - } - ] - }, - "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[1598]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1600 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[1600]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1878 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[1878]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1878 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[1878]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2057 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_1_CC" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_1_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.courseOfTherapyType", - "Line[1] Col[2057]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2285 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[2285]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2285 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[2285]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3438 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/", - "Line[1] Col[3438]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3438 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/", - "Line[1] Col[3438]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3438 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/", - "Line[1] Col[3438]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3438 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/", - "Line[1] Col[3438]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2712 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#321080004)", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[2712]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2710 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "This_element_does_not_match_any_known_slice_" - } - ], - "severity": "information", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "This_element_does_not_match_any_known_slice_" - } - ] - }, - "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[2710]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2712 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[2712]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2990 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[2990]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2990 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[2990]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3169 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_1_CC" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_1_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.courseOfTherapyType", - "Line[1] Col[3169]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3397 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[3397]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3397 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[3397]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4538 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/", - "Line[1] Col[4538]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4538 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/", - "Line[1] Col[4538]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4538 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/", - "Line[1] Col[4538]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4538 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/", - "Line[1] Col[4538]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3812 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#324252006)", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[3812]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3810 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "This_element_does_not_match_any_known_slice_" - } - ], - "severity": "information", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "This_element_does_not_match_any_known_slice_" - } - ] - }, - "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[3810]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3812 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[3812]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4090 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[4090]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4090 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[4090]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4269 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_1_CC" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_1_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.courseOfTherapyType", - "Line[1] Col[4269]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4497 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[4497]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4497 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[4497]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4934 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[4].resource/*PractitionerRole/56166769-c1c4-4d07-afa8-132b5dfca666*/", - "Line[1] Col[4934]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 5225 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[5].resource/*Practitioner/a8c85454-f8cb-498d-9629-78e2cb5fa47a*/", - "Line[1] Col[5225]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 5792 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[6].resource/*Organization/3b4b03a5-52ba-4ba6-9b82-70350aa109d8*/", - "Line[1] Col[5792]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 6406 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[7].resource/*Organization/afb07f8b-e8d7-4cad-895d-494e6b35b2a1*/", - "Line[1] Col[6406]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1149 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1149]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1149 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1149]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1149 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1149]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1149 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1149]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 497 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#324252006)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[497]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 495 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "This_element_does_not_match_any_known_slice_" - } - ], - "severity": "information", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "This_element_does_not_match_any_known_slice_" - } - ] - }, - "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[495]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 497 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[497]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 775 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[775]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 775 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[775]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 954 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_1_CC" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_1_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.courseOfTherapyType", - "Line[1] Col[954]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1108 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[1108]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1108 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[1108]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1545 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[1].resource/*PractitionerRole/815c6eb3-41f8-4f48-9e0d-2983624d4f90*/", - "Line[1] Col[1545]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1840 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[2].resource/*Practitioner/acd5b009-c78f-40f2-a48b-b38ac72de992*/", - "Line[1] Col[1840]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2403 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[3].resource/*Organization/9683c147-ddad-41d9-9858-6e585c3f04df*/", - "Line[1] Col[2403]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Bundle_BUNDLE_Not_Local" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Bundle_BUNDLE_Not_Local" - } - ] - }, - "diagnostics": "URN reference is not locally contained within the bundle urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.requester" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1227 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1227]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1227 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1227]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1227 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1227]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1227 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1227]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 501 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#39732311000001104)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[501]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 499 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "This_element_does_not_match_any_known_slice_" - } - ], - "severity": "information", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "This_element_does_not_match_any_known_slice_" - } - ] - }, - "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[499]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 501 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[501]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 779 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[779]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 779 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[779]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 958 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_1_CC" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_1_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.courseOfTherapyType", - "Line[1] Col[958]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1186 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[1186]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1186 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[1186]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1623 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[1].resource/*PractitionerRole/815c6eb3-41f8-4f48-9e0d-2983624d4f90*/", - "Line[1] Col[1623]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1918 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[2].resource/*Practitioner/acd5b009-c78f-40f2-a48b-b38ac72de992*/", - "Line[1] Col[1918]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2481 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[3].resource/*Organization/9683c147-ddad-41d9-9858-6e585c3f04df*/", - "Line[1] Col[2481]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3089 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[4].resource/*Organization/154dcc4a-0006-4272-9758-9dcb8d95ce8b*/", - "Line[1] Col[3089]" - ] - } - ] -} diff --git a/latest/src/test/resources/results/stepFunctionResult.json b/latest/src/test/resources/results/stepFunctionResult.json deleted file mode 100644 index 0124a66b..00000000 --- a/latest/src/test/resources/results/stepFunctionResult.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 787 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[0].resource/*Task/null*/", - "Line[1] Col[787]" - ] - } - ] -} diff --git a/latest/src/test/resources/results/successfulOperationOutcome.json b/latest/src/test/resources/results/successfulOperationOutcome.json deleted file mode 100644 index 84eb7bda..00000000 --- a/latest/src/test/resources/results/successfulOperationOutcome.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 229 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "OperationOutcome", - "Line[1] Col[229]" - ] - } - ] -} diff --git a/latest/src/test/resources/results/validBundle.json b/latest/src/test/resources/results/validBundle.json deleted file mode 100644 index d16c7f91..00000000 --- a/latest/src/test/resources/results/validBundle.json +++ /dev/null @@ -1,674 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1344 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[0].resource/*MessageHeader/null*/", - "Line[1] Col[1344]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3705 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/", - "Line[1] Col[3705]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2244 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[2244]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2244 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#39732311000001104)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[2244]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2242 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Unable to validate medication codes", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[2242]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3098 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.dosageInstruction[0].route", - "Line[1] Col[3098]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 6061 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/", - "Line[1] Col[6061]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4600 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[4600]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4600 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#322341003)", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[4600]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4598 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Unable to validate medication codes", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[4598]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 5454 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.dosageInstruction[0].route", - "Line[1] Col[5454]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 8430 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/", - "Line[1] Col[8430]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 6969 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[6969]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 6969 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#321080004)", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[6969]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 6967 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Unable to validate medication codes", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[6967]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 7823 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.dosageInstruction[0].route", - "Line[1] Col[7823]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 10784 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[4].resource/*MedicationRequest/null*/", - "Line[1] Col[10784]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 9323 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[4].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[9323]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 9323 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#324252006)", - "location": [ - "Bundle.entry[4].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[9323]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 9321 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Unable to validate medication codes", - "location": [ - "Bundle.entry[4].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[9321]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 10177 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[4].resource/*MedicationRequest/null*/.dosageInstruction[0].route", - "Line[1] Col[10177]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 11388 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[5].resource/*Patient/null*/", - "Line[1] Col[11388]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 12117 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unknown code in fragment CodeSystem 'https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode#R8000'", - "location": [ - "Bundle.entry[6].resource/*PractitionerRole/null*/.code[0]", - "Line[1] Col[12117]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 12185 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[6].resource/*PractitionerRole/null*/", - "Line[1] Col[12185]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 12655 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[7].resource/*Practitioner/null*/", - "Line[1] Col[12655]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 12655 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: prac-gmc: 'GMC must be of the format CNNNNNNN' (defined in https://fhir.nhs.uk/StructureDefinition/NHSDigital-Practitioner)", - "location": [ - "Bundle.entry[7].resource/*Practitioner/null*/", - "Line[1] Col[12655]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 13428 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[8].resource/*Organization/null*/", - "Line[1] Col[13428]" - ] - } - ] -} diff --git a/latest/src/test/resources/results/validParameters.json b/latest/src/test/resources/results/validParameters.json deleted file mode 100644 index 08a3fa46..00000000 --- a/latest/src/test/resources/results/validParameters.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "severity": "information", - "code": "informational", - "diagnostics": "No issues detected during validation" - } - ] -} diff --git a/latest/src/test/resources/results/validSimpleBundle.json b/latest/src/test/resources/results/validSimpleBundle.json deleted file mode 100644 index 08a3fa46..00000000 --- a/latest/src/test/resources/results/validSimpleBundle.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "severity": "information", - "code": "informational", - "diagnostics": "No issues detected during validation" - } - ] -} diff --git a/legacy/licenses/allowedMissingLicense.xml b/legacy/licenses/allowedMissingLicense.xml deleted file mode 100644 index 568b7bf9..00000000 --- a/legacy/licenses/allowedMissingLicense.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - jakarta-regexp - jakarta-regexp - 1.4 - - diff --git a/legacy/licenses/licenses.xml b/legacy/licenses/licenses.xml deleted file mode 100644 index c3cb5e76..00000000 --- a/legacy/licenses/licenses.xml +++ /dev/null @@ -1,166 +0,0 @@ - - - - - The Apache Software License, Version 2.0 - - The Apache Software License, Version 2.0 - Apache License, Version 2.0 - Apache Software License 2.0 - Apache License 2.0 - - - http://www.apache.org/licenses/LICENSE-2.0.txt - https://www.apache.org/licenses/LICENSE-2.0 - https://www.apache.org/licenses/LICENSE-2.0.txt - https://www.apache.org/licenses/LICENSE-2.0 - - - - Eclipse Public License 1.0 - - Eclipse Public License 1.0 - Eclipse Public License - v 1.0 - Eclipse Distribution License - v 1.0 - - - http://www.eclipse.org/legal/epl-v10.html - http://www.eclipse.org/legal/epl-v10.html - http://www.eclipse.org/org/documents/edl-v10.php - - - - Eclipse Public License v2.0 - - Eclipse Public License v2.0 - EPL 2.0 - Eclipse Public License - v 2.0 - - - https://www.eclipse.org/legal/epl-v20.html - http://www.eclipse.org/legal/epl-2.0 - - - - - The MIT License - - The MIT License - MIT License - MIT - - - http://code.google.com/p/mockito/wiki/License - http://www.opensource.org/licenses/mit-license - https://opensource.org/licenses/MIT - - - - BSD - - BSD - - - http://asm.objectweb.org/license.html - - - - BSD License 3 - - BSD License 3 - - - http://opensource.org/licenses/BSD-3-Clause - - - - BSD-2-Clause - - BSD-2-Clause - - - https://opensource.org/licenses/BSD-2-Clause - - - - LGPL 2.1 - - LGPL 2.1 - GNU Lesser General Public License - http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html - - - http://www.gnu.org/licenses/lgpl-2.1.html - - - - MPL 1.1 - - MPL 1.1 - - - http://www.mozilla.org/MPL/MPL-1.1.html - - - - Mozilla Public License Version 2.0 - - Mozilla Public License Version 2.0 - - - http://www.mozilla.org/MPL/2.0/ - - - - Unicode/ICU License - - Unicode/ICU License - - - https://raw.githubusercontent.com/unicode-org/icu/main/icu4c/LICENSE - - - - GPL2 w/ CPE - - GPL2 w/ CPE - - - https://www.gnu.org/software/classpath/license.html - - - - Public Domain, per Creative Commons CC0 - - Public Domain, per Creative Commons CC0 - - - http://creativecommons.org/publicdomain/zero/1.0 - - - - Indiana University Extreme! Lab Software License, vesion 1.1.1 - - Indiana University Extreme! Lab Software License, vesion 1.1.1 - Public Domain - Apache Software License, version 1.1 - - - http://www.extreme.indiana.edu/viewcvs/~checkout~/XPP3/java/LICENSE.txt - http://creativecommons.org/licenses/publicdomain - http://www.apache.org/licenses/LICENSE-1.1 - - - - - - GNU General Public License version 2 - - GNU General Public License version 2 - - - https://opensource.org/licenses/gpl-2.0.php - - - - diff --git a/legacy/pom.xml b/legacy/pom.xml deleted file mode 100644 index ea219f60..00000000 --- a/legacy/pom.xml +++ /dev/null @@ -1,308 +0,0 @@ - - 4.0.0 - - software.nhs.fhirvalidator - FHIRValidator - jar - dev - FHIRValidator - - - The MIT License - https://opensource.org/license/mit - - - - 21 - 21 - UTF-8 - 5.4.2 - 2.24.3 - 2.19.0 - nhsdigital - https://sonarcloud.io - NHSDigital_eps-FHIR-validator-lambda - 1.9.24 - - - - - org.junit - junit-bom - 5.12.2 - pom - import - - - - - - io.github.hakky54 - logcaptor - 2.11.0 - test - - - - - - ca.uhn.hapi.fhir - hapi-fhir-validation-resources-r4 - ${fhir.version} - - - ca.uhn.hapi.fhir - hapi-fhir-structures-r4 - ${fhir.version} - - - ca.uhn.hapi.fhir - hapi-fhir-validation - ${fhir.version} - - - ca.uhn.hapi.fhir - hapi-fhir-base - ${fhir.version} - - - - - com.amazonaws - aws-lambda-java-core - 1.2.3 - - - com.amazonaws - aws-lambda-java-events - 3.15.0 - - - com.amazonaws - aws-lambda-java-log4j2 - 1.6.0 - - - com.google.code.gson - gson - 2.13.1 - - - org.apache.logging.log4j - log4j-api - ${log4j.version} - - - org.apache.logging.log4j - log4j-core - ${log4j.version} - - - org.apache.logging.log4j - log4j-slf4j2-impl - ${log4j.version} - - - org.apache.logging.log4j - log4j-layout-template-json - ${log4j.version} - - - software.amazon.lambda - powertools-logging - 1.20.1 - - - org.aspectj - aspectjrt - ${aspectj.version} - - - com.fasterxml.jackson.core - jackson-core - ${fasterxml.version} - - - com.fasterxml.jackson.core - jackson-databind - ${fasterxml.version} - - - com.fasterxml.jackson.core - jackson-annotations - ${fasterxml.version} - - - - org.junit.jupiter - junit-jupiter - test - - - org.junit.jupiter - junit-jupiter-api - test - - - org.mockito - mockito-core - 5.17.0 - test - - - - - - - - src/main/resources - - log4j2.xml - package/* - *.tgz - primerPayload.json - nhs_digital.manifest.json - uk_core.manifest.json - - - - - - se.ayoy.maven-plugins - ayoy-license-verifier-maven-plugin - 1.2.0 - - - validate - - verify - - - - - ${project.basedir}/licenses/licenses.xml - - ${project.basedir}/licenses/allowedMissingLicense.xml - true - true - true - - - - maven-dependency-plugin - 3.8.1 - - - maven-compiler-plugin - 3.14.0 - - - maven-surefire-plugin - 3.5.3 - - - dev.aspectj - aspectj-maven-plugin - 1.14.1 - - - org.aspectj - aspectjtools - ${aspectj.version} - - - - 21 - true - - - ${project.build.directory}/classes - - - - software.amazon.lambda - powertools-logging - - - - - - - compile - - - - - - - org.jacoco - jacoco-maven-plugin - 0.8.13 - - - - prepare-agent - - - - - report - test - - report - - - - - - - org.apache.maven.plugins - maven-shade-plugin - 3.6.0 - - false - - - - package - - shade - - - - - - - META-INF/TE-050AC.SF - META-INF/TE-050AC.RSA - - - - - - - - com.github.edwgiz - maven-shade-plugin.log4j2-cachefile-transformer - 2.15 - - - - - - - diff --git a/legacy/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java b/legacy/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java deleted file mode 100644 index 9853edad..00000000 --- a/legacy/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java +++ /dev/null @@ -1,255 +0,0 @@ -package software.nhs.fhirvalidator.configuration; - -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -import com.google.gson.Gson; - -import org.hl7.fhir.common.hapi.validation.support.CachingValidationSupport; -import org.hl7.fhir.common.hapi.validation.support.CommonCodeSystemsTerminologyService; -import org.hl7.fhir.common.hapi.validation.support.InMemoryTerminologyServerValidationSupport; -import org.hl7.fhir.common.hapi.validation.support.PrePopulatedValidationSupport; -import org.hl7.fhir.common.hapi.validation.support.SnapshotGeneratingValidationSupport; -import org.hl7.fhir.common.hapi.validation.support.ValidationSupportChain; -import org.hl7.fhir.common.hapi.validation.validator.FhirInstanceValidator; -import org.hl7.fhir.instance.model.api.IBaseResource; -import org.hl7.fhir.r4.model.CanonicalType; -import org.hl7.fhir.r4.model.CodeSystem; -import org.hl7.fhir.r4.model.ElementDefinition; -import org.hl7.fhir.r4.model.Resource; -import org.hl7.fhir.r4.model.StructureDefinition; -import org.hl7.fhir.r4.model.ValueSet; -import org.hl7.fhir.utilities.npm.NpmPackage; - -import ca.uhn.fhir.context.FhirContext; -import ca.uhn.fhir.context.support.ConceptValidationOptions; -import ca.uhn.fhir.context.support.DefaultProfileValidationSupport; -import ca.uhn.fhir.context.support.IValidationSupport; -import ca.uhn.fhir.context.support.ValidationSupportContext; -import ca.uhn.fhir.parser.IParser; -import ca.uhn.fhir.rest.server.exceptions.InternalErrorException; -import ca.uhn.fhir.util.ClasspathUtil; -import ca.uhn.fhir.validation.FhirValidator; -import software.nhs.fhirvalidator.models.SimplifierPackage; -import software.nhs.fhirvalidator.util.ResourceUtils; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -/** - * This class is a wrapper around the HAPI FhirValidator. - * The FhirValidator is built using default settings and the available - * implementation guides are loaded into it. - */ - -public class ValidatorConfiguration { - private String PROFILE_MANIFEST_FILE; - public final FhirValidator validator; - public final FhirContext fhirContext; - public final List npmPackages = new ArrayList<>(); - - Logger log = LogManager.getLogger(ValidatorConfiguration.class); - - private List getResourcesOfType(NpmPackage npmPackage, T resourceType) throws IOException { - IParser jsonParser = fhirContext.newJsonParser(); - - return npmPackage.listResources(resourceType.fhirType()).stream() - .map(t -> { - try { - return npmPackage.loadResource(t); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return null; - }) - .map(jsonParser::parseResource) - .filter(resource -> resourceType.getClass().isInstance(resource)) - .map(resource -> (T) resource) - .collect(Collectors.toList()); - } - - private PrePopulatedValidationSupport createPrePopulatedValidationSupport(InputStream inputStream) throws IOException { - NpmPackage npmPackage = NpmPackage.fromPackage(inputStream); - PrePopulatedValidationSupport prePopulatedSupport = new PrePopulatedValidationSupport(fhirContext); - - for (StructureDefinition sd : getResourcesOfType(npmPackage, new StructureDefinition())) { - prePopulatedSupport.addStructureDefinition(sd); - } - - for (CodeSystem cs : getResourcesOfType(npmPackage, new CodeSystem())) { - prePopulatedSupport.addCodeSystem(cs); - } - - for (ValueSet vs : getResourcesOfType(npmPackage, new ValueSet())) { - prePopulatedSupport.addValueSet(vs); - } - - return prePopulatedSupport; - } - - public ValidatorConfiguration(String _PROFILE_MANIFEST_FILE) { - PROFILE_MANIFEST_FILE = _PROFILE_MANIFEST_FILE; - fhirContext = FhirContext.forR4(); - - // Create a chain that will hold our modules - ValidationSupportChain supportChain = new ValidationSupportChain( - new DefaultProfileValidationSupport(fhirContext), - new CommonCodeSystemsTerminologyService(fhirContext), - terminologyValidationSupport(fhirContext), - new SnapshotGeneratingValidationSupport(fhirContext)); - - SimplifierPackage[] packages = getPackages(); - - try { - for (SimplifierPackage individualPackage : packages) { - String packagePath = String.format("%s-%s.tgz", individualPackage.packageName, - individualPackage.version); - try (InputStream is = ClasspathUtil.loadResourceAsStream(packagePath)) { - PrePopulatedValidationSupport foo = createPrePopulatedValidationSupport(is); - supportChain.addValidationSupport(foo); - } - try (InputStream is = ClasspathUtil.loadResourceAsStream(packagePath)) { - NpmPackage pkg = NpmPackage.fromPackage(is); - npmPackages.add(pkg); - } - } - } catch (InternalErrorException | IOException ex) { - log.error(ex.getMessage(), ex); - throw new RuntimeException("error loading simplifier packages", ex); - } - generateSnapshots(supportChain); - supportChain.fetchCodeSystem("http://snomed.info/sct"); - - CachingValidationSupport validationSupport = new CachingValidationSupport(supportChain); - - // Create a validator using the FhirInstanceValidator module. - FhirInstanceValidator validatorModule = new FhirInstanceValidator(validationSupport); - validator = fhirContext.newValidator().registerValidatorModule(validatorModule); - } - - private void generateSnapshots(IValidationSupport supportChain) { - List structureDefinitions = supportChain.fetchAllStructureDefinitions(); - if (structureDefinitions == null) { - return; - } - - ValidationSupportContext context = new ValidationSupportContext(supportChain); - - structureDefinitions.stream() - .filter(this::shouldGenerateSnapshot) - .forEach(it -> { - try { - circularReferenceCheck(it, supportChain); - } catch (Exception e) { - log.error(String.format("Failed to generate snapshot for %s", it), e); - } - }); - - structureDefinitions.stream() - .filter(this::shouldGenerateSnapshot) - .forEach(it -> { - try { - supportChain.generateSnapshot(context, it, it.getUrl(), "https://fhir.nhs.uk/R4", it.getName()); - } catch (Exception e) { - log.error(String.format("Failed to generate snapshot for %s", it), e); - } - }); - } - - private boolean shouldGenerateSnapshot(StructureDefinition structureDefinition) { - return !structureDefinition.hasSnapshot() - && structureDefinition.getDerivation() == StructureDefinition.TypeDerivationRule.CONSTRAINT; - } - - private StructureDefinition circularReferenceCheck(StructureDefinition structureDefinition, - IValidationSupport supportChain) { - if (structureDefinition.hasSnapshot()) { - log.error(String.format("%s has snapshot!!", structureDefinition.getUrl())); - } - - for (ElementDefinition element : structureDefinition.getDifferential().getElement()) { - if ((element.getId().endsWith(".partOf") || - element.getId().endsWith(".basedOn") || - element.getId().endsWith(".replaces") || - element.getId().contains("Condition.stage.assessment") || - element.getId().contains("Observation.derivedFrom") || - element.getId().contains("Observation.hasMember") || - element.getId().contains("CareTeam.encounter") || - element.getId().contains("CareTeam.reasonReference") || - element.getId().contains("ServiceRequest.encounter") || - element.getId().contains("ServiceRequest.reasonReference") || - element.getId().contains("EpisodeOfCare.diagnosis.condition") || - element.getId().contains("Encounter.diagnosis.condition") || - element.getId().contains("Encounter.reasonReference") || - element.getId().contains("Encounter.appointment")) && element.hasType()) { - - log.warn(String.format("%s has circular references (%s)", structureDefinition.getUrl(), - element.getId())); - - for (ElementDefinition.TypeRefComponent typeRef : element.getType()) { - if (typeRef.hasTargetProfile()) { - for (CanonicalType targetProfile : typeRef.getTargetProfile()) { - typeRef.setTargetProfile((List) getBase(targetProfile, supportChain)); - } - } - } - } - } - return structureDefinition; - } - - private CanonicalType getBase(CanonicalType profile, IValidationSupport supportChain) { - StructureDefinition structureDefinition = (StructureDefinition) supportChain - .fetchStructureDefinition(profile.toString()); - - if (structureDefinition != null && structureDefinition.hasBaseDefinition()) { - String baseProfile = structureDefinition.getBaseDefinition(); - CanonicalType canonicalBaseProfile = new CanonicalType(baseProfile); - if (baseProfile.contains(".uk")) { - canonicalBaseProfile = getBase(canonicalBaseProfile, supportChain); - } - return canonicalBaseProfile; - } - return null; - } - - private InMemoryTerminologyServerValidationSupport terminologyValidationSupport(FhirContext fhirContext) { - return new InMemoryTerminologyServerValidationSupport(fhirContext) { - @Override - public IValidationSupport.CodeValidationResult validateCodeInValueSet( - ValidationSupportContext theValidationSupportContext, - ConceptValidationOptions theOptions, - String theCodeSystem, - String theCode, - String theDisplay, - IBaseResource theValueSet) { - String valueSetUrl = CommonCodeSystemsTerminologyService.getValueSetUrl(theValueSet); - - if ("https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationRequest-Code".equals(valueSetUrl) - || "https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationDispense-Code".equals(valueSetUrl) - || "https://fhir.hl7.org.uk/ValueSet/UKCore-MedicationCode".equals(valueSetUrl)) { - return new IValidationSupport.CodeValidationResult() - .setSeverity(IValidationSupport.IssueSeverity.WARNING) - .setMessage("Unable to validate medication codes"); - } - - return super.validateCodeInValueSet( - theValidationSupportContext, - theOptions, - theCodeSystem, - theCode, - theDisplay, - theValueSet); - } - }; - } - - private SimplifierPackage[] getPackages() { - String manifestContent = ResourceUtils.getResourceContent(this.PROFILE_MANIFEST_FILE); - return new Gson().fromJson(manifestContent, SimplifierPackage[].class); - } -} diff --git a/legacy/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java b/legacy/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java deleted file mode 100644 index d53bc995..00000000 --- a/legacy/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java +++ /dev/null @@ -1,117 +0,0 @@ -package software.nhs.fhirvalidator.controller; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; - -import com.google.gson.JsonSyntaxException; - -import org.hl7.fhir.instance.model.api.IBaseResource; -import org.hl7.fhir.r4.model.Bundle; -import org.hl7.fhir.r4.model.OperationOutcome; -import org.hl7.fhir.r4.model.ResourceType; -import org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent; - -import ca.uhn.fhir.context.FhirContext; -import ca.uhn.fhir.parser.DataFormatException; -import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException; -import ca.uhn.fhir.validation.FhirValidator; -import software.nhs.fhirvalidator.configuration.ValidatorConfiguration; -import software.nhs.fhirvalidator.service.CapabilityStatementApplier; -import software.nhs.fhirvalidator.service.ImplementationGuideParser; -import software.nhs.fhirvalidator.service.MessageDefinitionApplier; -import software.nhs.fhirvalidator.util.OperationOutcomeUtils; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -/** - * This class is a wrapper around the HAPI FhirValidator. - * The FhirValidator is built using default settings and the available - * implementation guides are loaded into it. - */ - -public class ValidateController { - private ValidatorConfiguration validatorConfiguration; - private FhirValidator validator; - private FhirContext fhirContext; - private ImplementationGuideParser implementationGuideParser; - private CapabilityStatementApplier capabilityStatementApplier; - private MessageDefinitionApplier messageDefinitionApplier; - - Logger log = LogManager.getLogger(ValidateController.class); - - public ValidateController(String PROFILE_MANIFEST_FILE) { - validatorConfiguration = new ValidatorConfiguration(PROFILE_MANIFEST_FILE); - validator = validatorConfiguration.validator; - fhirContext = validatorConfiguration.fhirContext; - implementationGuideParser = new ImplementationGuideParser( - fhirContext); - capabilityStatementApplier = new CapabilityStatementApplier( - implementationGuideParser, - validatorConfiguration.npmPackages); - messageDefinitionApplier = new MessageDefinitionApplier( - implementationGuideParser, validatorConfiguration.npmPackages); - } - public String validate(String input) { - OperationOutcome result = parseAndValidateResource(input); - return fhirContext.newJsonParser().encodeResourceToString(result); - } - - public OperationOutcome parseAndValidateResource(String input) { - - try { - IBaseResource inputResource = fhirContext.newJsonParser().parseResource(input); - List resources = getResourcesToValidate(inputResource); - - List operationOutcomeList = resources.stream() - .map(this::validateResource) - .collect(Collectors.toList()); - - List operationOutcomeIssues = operationOutcomeList.stream() - .filter(Objects::nonNull) - .flatMap(operationOutcome -> operationOutcome.getIssue().stream()) - .collect(Collectors.toList()); - - return OperationOutcomeUtils.createOperationOutcome(operationOutcomeIssues); - } catch (JsonSyntaxException | NullPointerException | IllegalArgumentException | InvalidRequestException - | DataFormatException e) { - log.error(e.toString()); - return OperationOutcomeUtils - .createOperationOutcome(e.getMessage() != null ? e.getMessage() : "Invalid JSON", null); - } - } - - private OperationOutcome validateResource(IBaseResource resource) { - capabilityStatementApplier.applyCapabilityStatementProfiles(resource); - OperationOutcome messageDefinitionErrors = messageDefinitionApplier.applyMessageDefinition(resource); - if (messageDefinitionErrors != null) { - return messageDefinitionErrors; - } - return (OperationOutcome) validator.validateWithResult(resource).toOperationOutcome(); - } - - private List getResourcesToValidate(IBaseResource inputResource) { - if (inputResource == null) { - return new ArrayList<>(); - } - - if (inputResource instanceof Bundle _inputResource && (_inputResource.getType() == Bundle.BundleType.SEARCHSET)) { - List bundleResources = new ArrayList<>(); - for (Bundle.BundleEntryComponent entry : ((Bundle) inputResource).getEntry()) { - if (entry.getResource().fhirType().equals("Bundle")) { - bundleResources.add(entry.getResource()); - } - } - - if (bundleResources.stream() - .allMatch(resource -> ((Bundle) resource).getResourceType() == ResourceType.Bundle)) { - return bundleResources; - } - } - - return Arrays.asList(inputResource); - } -} diff --git a/legacy/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java b/legacy/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java deleted file mode 100644 index 3fe331c5..00000000 --- a/legacy/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java +++ /dev/null @@ -1,81 +0,0 @@ -package software.nhs.fhirvalidator.handler; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.PrintWriter; - -import com.amazonaws.services.lambda.runtime.Context; -import com.amazonaws.services.lambda.runtime.RequestStreamHandler; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import software.amazon.lambda.powertools.logging.Logging; -import software.amazon.lambda.powertools.logging.LoggingUtils; -import software.nhs.fhirvalidator.controller.ValidateController; -import software.nhs.fhirvalidator.util.ResourceUtils; - -public class HandlerStream implements RequestStreamHandler { - - private final ValidateController validateController; - Logger log = LogManager.getLogger(HandlerStream.class); - - public HandlerStream() { - log.info("Creating the Validator instance for the first time..."); - String manifest_file = System.getenv("PROFILE_MANIFEST_FILE"); - if (manifest_file == null) { - manifest_file = "uk_core.manifest.json"; - } - log.info(String.format("Using manifest file : %s", manifest_file)); - - validateController = new ValidateController(manifest_file); - - log.info("Validating once to force the loading of all the validator related classes"); - String primerPayload = ResourceUtils.getResourceContent("primerPayload.json"); - validateController.validate(primerPayload); - - log.info("Validator is ready"); - } - - @Logging(clearState = true) - @Override - public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException { - ByteArrayOutputStream result = new ByteArrayOutputStream(); - byte[] buffer = new byte[1024]; - try { - for (int length; (length = inputStream.read(buffer)) != -1;) { - result.write(buffer, 0, length); - } - String rawInput = result.toString(); - log.info(rawInput); - JsonObject jsonPayload = JsonParser.parseString(rawInput).getAsJsonObject(); - JsonObject headers = jsonPayload.get("headers").getAsJsonObject(); - String xRequestID = headers.get("x-request-id") == null ? "" : headers.get("x-request-id").getAsString(); - LoggingUtils.appendKey("x-request-id", xRequestID); - String nhsdCorrelationID = headers.get("nhsd-correlation-id") == null ? "" : headers.get("nhsd-correlation-id").getAsString(); - LoggingUtils.appendKey("nhsd-correlation-id", nhsdCorrelationID); - String nhsdRequestID = headers.get("nhsd-request-id") == null ? "" : headers.get("nhsd-request-id").getAsString(); - LoggingUtils.appendKey("nhsd-request-id", nhsdRequestID); - String xCorrelationID = headers.get("x-correlation-id") == null ? "" : headers.get("x-correlation-id").getAsString(); - LoggingUtils.appendKey("x-correlation-id", xCorrelationID); - String apigwRequestID = headers.get("apigw-request-id") == null ? "" : headers.get("apigw-request-id").getAsString(); - LoggingUtils.appendKey("apigw-request-id", apigwRequestID); - - log.info("Calling validate function"); - String validatorResult = validateController.validate(jsonPayload.get("body").toString()); - log.info(validatorResult); - - try (PrintWriter writer = new PrintWriter(outputStream)) { - writer.print(validatorResult); - } - - } catch (IOException ex) { - log.error(ex.getMessage(), ex); - throw new RuntimeException("error in handleRequest", ex); - } - } -} diff --git a/legacy/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java b/legacy/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java deleted file mode 100644 index f2fc9f62..00000000 --- a/legacy/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java +++ /dev/null @@ -1,13 +0,0 @@ -package software.nhs.fhirvalidator.models; - -import com.google.gson.annotations.Expose; -import com.google.gson.annotations.SerializedName; - -public class SimplifierPackage { - @SerializedName("packageName") - @Expose - public String packageName; - @SerializedName("version") - @Expose - public String version; -} diff --git a/legacy/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java b/legacy/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java deleted file mode 100644 index 2859ae11..00000000 --- a/legacy/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java +++ /dev/null @@ -1,51 +0,0 @@ -package software.nhs.fhirvalidator.service; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.hl7.fhir.instance.model.api.IBaseResource; -import org.hl7.fhir.r4.model.CapabilityStatement; -import org.hl7.fhir.utilities.npm.NpmPackage; - -import software.nhs.fhirvalidator.util.FhirUtils; - -import java.io.IOException; -import java.util.List; -import java.util.stream.Collectors; - -public class CapabilityStatementApplier { - private final List restResources; - - Logger log = LogManager.getLogger(CapabilityStatementApplier.class); - - public CapabilityStatementApplier( - ImplementationGuideParser implementationGuideParser, - List npmPackages) { - - this.restResources = (npmPackages.stream() - .flatMap(packageItem -> { - try { - return implementationGuideParser - .getResourcesOfType(packageItem, CapabilityStatement.class).stream(); - } catch (IOException ex) { - log.error(ex.getMessage(), ex); - throw new RuntimeException("error in handleRequest", ex); - } - }) - .flatMap(capabilityStatement -> capabilityStatement.getRest().stream()) - .flatMap(rest -> rest.getResource().stream()) - .collect(Collectors.toList())); - } - - public void applyCapabilityStatementProfiles(IBaseResource resource) { - restResources.forEach(restResource -> applyRestResource(resource, restResource)); - } - - private void applyRestResource( - IBaseResource resource, - CapabilityStatement.CapabilityStatementRestResourceComponent restResource) { - List matchingResources = FhirUtils.getResourcesOfType(resource, restResource.getType()); - if (restResource.hasProfile()) { - FhirUtils.applyProfile(matchingResources, restResource.getProfileElement()); - } - } -} diff --git a/legacy/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java b/legacy/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java deleted file mode 100644 index cd678d87..00000000 --- a/legacy/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java +++ /dev/null @@ -1,43 +0,0 @@ -package software.nhs.fhirvalidator.service; - -import ca.uhn.fhir.context.FhirContext; -import ca.uhn.fhir.parser.IParser; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.hl7.fhir.r4.model.*; -import org.hl7.fhir.utilities.npm.NpmPackage; - -import java.io.IOException; -import java.util.List; -import java.util.stream.Collectors; - -public class ImplementationGuideParser { - - private final FhirContext fhirContext; - - Logger log = LogManager.getLogger(ImplementationGuideParser.class); - - public ImplementationGuideParser(FhirContext fhirContext) { - this.fhirContext = fhirContext; - } - - public List getResourcesOfType(NpmPackage npmPackage, Class resourceType) - throws IOException { - IParser jsonParser = fhirContext.newJsonParser(); - return npmPackage.listResources(resourceType.getSimpleName()) - .stream() - .map(t -> { - try { - return npmPackage.loadResource(t); - } catch (IOException ex) { - log.error(ex.getMessage(), ex); - throw new RuntimeException("error in getResourcesOfTypes", ex); - } - }) - .map(jsonParser::parseResource) - .filter(resourceType::isInstance) - .map(resourceType::cast) - .collect(Collectors.toList()); - } -} diff --git a/legacy/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java b/legacy/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java deleted file mode 100644 index 29123bd6..00000000 --- a/legacy/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java +++ /dev/null @@ -1,145 +0,0 @@ -package software.nhs.fhirvalidator.service; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.hl7.fhir.instance.model.api.IBaseResource; -import org.hl7.fhir.r4.model.*; -import org.hl7.fhir.utilities.npm.NpmPackage; - -import software.nhs.fhirvalidator.util.FhirUtils; -import software.nhs.fhirvalidator.util.OperationOutcomeUtils; - -import java.io.IOException; -import java.util.List; -import java.util.stream.Collectors; - -public class MessageDefinitionApplier { - - private final List messageDefinitions; - Logger log = LogManager.getLogger(MessageDefinitionApplier.class); - - public MessageDefinitionApplier( - ImplementationGuideParser implementationGuideParser, - List npmPackages) { - this.messageDefinitions = npmPackages.stream() - .flatMap(packageItem -> { - try { - return implementationGuideParser.getResourcesOfType(packageItem, MessageDefinition.class) - .stream(); - } catch (IOException ex) { - log.error(ex.getMessage(), ex); - throw new RuntimeException("error in MessageDefinitionApplier", ex); - } - }) - .collect(Collectors.toList()); - } - - public OperationOutcome applyMessageDefinition(IBaseResource resource) { - if (!(resource instanceof Bundle _resource) || (_resource.getType() != Bundle.BundleType.MESSAGE)) { - return null; - } - - MessageHeader messageHeader = findMessageHeader((Bundle) resource); - if (messageHeader == null) { - return OperationOutcomeUtils.createOperationOutcome("No MessageHeader found.", "Bundle.entry"); - } - - Coding messageType = messageHeader.getEventCoding(); - String messageDefinitionProfile = messageHeader.getDefinition(); - MessageDefinition messageDefinition = findMessageDefinition(messageType, messageDefinitionProfile); - - if (messageDefinition == null) { - return OperationOutcomeUtils.createOperationOutcome( - "Unsupported message type " + messageType.getSystem() + "#" + messageType.getCode() + ".", - "MessageHeader.eventCoding"); - } - - return applyMessageDefinition((Bundle) resource, messageDefinition); - } - - private MessageHeader findMessageHeader(Bundle bundle) { - return bundle.getEntry() - .stream() - .map(Bundle.BundleEntryComponent::getResource) - .filter(MessageHeader.class::isInstance) - .map(MessageHeader.class::cast) - .findFirst() - .orElse(null); - } - - private MessageDefinition findMessageDefinition(Coding messageType, String messageDefinitionProfile) { - if (messageDefinitionProfile != null) { - return messageDefinitions.stream() - .filter(def -> messageType.getSystem().equals(def.getEventCoding().getSystem()) && - messageType.getCode().equals(def.getEventCoding().getCode()) && - messageDefinitionProfile.equals(def.getUrl())) - .findFirst() - .orElse(null); - } else { - return messageDefinitions.stream() - .filter(def -> messageType.getSystem().equals(def.getEventCoding().getSystem()) && - messageType.getCode().equals(def.getEventCoding().getCode())) - .findFirst() - .orElse(null); - } - } - - private OperationOutcome applyMessageDefinition(Bundle resource, MessageDefinition messageDefinition) { - List issues = messageDefinition.getFocus() - .stream() - .map(focus -> applyMessageDefinitionFocus(resource, focus)) - .filter(OperationOutcome.OperationOutcomeIssueComponent.class::isInstance) - .map(OperationOutcome.OperationOutcomeIssueComponent.class::cast) - .collect(Collectors.toList()); - - if (issues.isEmpty()) { - return null; - } - - return OperationOutcomeUtils.createOperationOutcome(issues); - } - - private OperationOutcome.OperationOutcomeIssueComponent applyMessageDefinitionFocus(Bundle bundle, - MessageDefinition.MessageDefinitionFocusComponent focus) { - List matchingResources = FhirUtils.getResourcesOfType(bundle, focus.getCode()); - applyMessageDefinitionFocusProfile(focus, matchingResources); - return applyMessageDefinitionFocusMinMax(focus, matchingResources.size()); - } - - private void applyMessageDefinitionFocusProfile(MessageDefinition.MessageDefinitionFocusComponent focus, - List matchingResources) { - if (focus.hasProfile()) { - FhirUtils.applyProfile(matchingResources, focus.getProfileElement()); - } - } - - private OperationOutcome.OperationOutcomeIssueComponent applyMessageDefinitionFocusMinMax( - MessageDefinition.MessageDefinitionFocusComponent focus, int resourceCount) { - String resourceType = focus.getCode(); - - if (focus.hasMin()) { - int min = focus.getMin(); - if (resourceCount < min) { - return OperationOutcomeUtils.createOperationOutcomeIssue( - "Bundle contains too few resources of type " + resourceType + ". Expected at least " + min - + ".", - "Bundle.entry"); - } - } - - if (focus.hasMax()) { - String maxStr = focus.getMax(); - if (!maxStr.equals("*")) { - int max = Integer.parseInt(maxStr); - if (resourceCount > max) { - return OperationOutcomeUtils.createOperationOutcomeIssue( - "Bundle contains too many resources of type " + resourceType + ". Expected at most " + max - + ".", - "Bundle.entry"); - } - } - } - - return null; - } -} diff --git a/legacy/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java b/legacy/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java deleted file mode 100644 index d27ca8aa..00000000 --- a/legacy/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java +++ /dev/null @@ -1,44 +0,0 @@ -package software.nhs.fhirvalidator.util; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import org.hl7.fhir.instance.model.api.IBaseResource; -import org.hl7.fhir.instance.model.api.IPrimitiveType; -import org.hl7.fhir.r4.model.Bundle; - -public final class FhirUtils { - static Logger log = LogManager.getLogger(FhirUtils.class); - - private FhirUtils() { - throw new IllegalStateException("Utility class"); - } - - public static List getResourcesOfType(IBaseResource resource, String resourceType) { - List matchingResources = new ArrayList<>(); - - if (resource.fhirType().equals(resourceType)) { - matchingResources.add(resource); - } - - if (resource instanceof Bundle) { - Bundle bundle = (Bundle) resource; - bundle.getEntry().stream() - .map(Bundle.BundleEntryComponent::getResource) - .filter(entryResource -> entryResource.fhirType().equals(resourceType)) - .forEach(matchingResources::add); - } - - return matchingResources; - } - - public static void applyProfile(List resources, IPrimitiveType profile) { - resources.forEach(resource -> { - resource.getMeta().getProfile().clear(); - resource.getMeta().addProfile(profile.getValue()); - }); - } -} diff --git a/legacy/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java b/legacy/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java deleted file mode 100644 index bc8726d9..00000000 --- a/legacy/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java +++ /dev/null @@ -1,39 +0,0 @@ -package software.nhs.fhirvalidator.util; - -import java.util.Collections; -import java.util.List; - -import org.hl7.fhir.r4.model.OperationOutcome; - -public class OperationOutcomeUtils { - - private OperationOutcomeUtils() { - throw new IllegalStateException("Utility class"); - } - - public static OperationOutcome createOperationOutcome(String diagnostics, String expression) { - OperationOutcome.OperationOutcomeIssueComponent issue = createOperationOutcomeIssue(diagnostics, expression); - List issues = Collections.singletonList(issue); - return createOperationOutcome(issues); - } - - public static OperationOutcome createOperationOutcome( - List issues) { - OperationOutcome operationOutcome = new OperationOutcome(); - issues.forEach(operationOutcome::addIssue); - return operationOutcome; - } - - public static OperationOutcome.OperationOutcomeIssueComponent createOperationOutcomeIssue(String diagnostics, - String expression) { - OperationOutcome.OperationOutcomeIssueComponent issue = new OperationOutcome.OperationOutcomeIssueComponent(); - issue.setSeverity(OperationOutcome.IssueSeverity.ERROR); - issue.setCode(OperationOutcome.IssueType.PROCESSING); - issue.setDiagnostics(diagnostics); - if (expression != null) { - issue.addExpression(expression); - } - return issue; - } - -} diff --git a/legacy/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java b/legacy/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java deleted file mode 100644 index fad95105..00000000 --- a/legacy/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java +++ /dev/null @@ -1,37 +0,0 @@ -package software.nhs.fhirvalidator.util; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -public class ResourceUtils { - static Logger log = LogManager.getLogger(ResourceUtils.class); - - private ResourceUtils() { - throw new IllegalStateException("Utility class"); - } - - public static String getResourceContent(String resource) { - ClassLoader loader = Thread.currentThread().getContextClassLoader(); - try { - ByteArrayOutputStream result; - try (InputStream inputStream = loader.getResourceAsStream(resource)) { - result = new ByteArrayOutputStream(); - byte[] buffer = new byte[1024]; - - for (int length; (length = inputStream.read(buffer)) != -1;) { - result.write(buffer, 0, length); - } - } - return result.toString("UTF-8"); - - } catch (IOException ex) { - log.error(ex.getMessage(), ex); - throw new RuntimeException("error in getResourceContent", ex); - } - } - -} diff --git a/legacy/src/main/resources/log4j2.xml b/legacy/src/main/resources/log4j2.xml deleted file mode 100644 index 0cc0953f..00000000 --- a/legacy/src/main/resources/log4j2.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/legacy/src/main/resources/nhs_digital.manifest.json b/legacy/src/main/resources/nhs_digital.manifest.json deleted file mode 100644 index c39ca89a..00000000 --- a/legacy/src/main/resources/nhs_digital.manifest.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { - "packageName": "fhir.r4.ukcore.stu3.currentbuild", - "version": "0.0.3-pre-release" - }, - { - "packageName": "uk.nhsdigital.r4.test", - "version": "2.14.0-prerelease" - }, - { - "packageName": "uk.nhsdigital.medicines.r4.test", - "version": "2.8.21-prerelease" - } -] diff --git a/legacy/src/main/resources/primerPayload.json b/legacy/src/main/resources/primerPayload.json deleted file mode 100644 index 648561e3..00000000 --- a/legacy/src/main/resources/primerPayload.json +++ /dev/null @@ -1,467 +0,0 @@ -{ - "resourceType": "Bundle", - "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", - "meta": { - "lastUpdated": "2022-10-21T13:47:00+00:00" - }, - "identifier": { - "system": "https://tools.ietf.org/html/rfc4122", - "value": "5ca1d5d1-fe4f-4c14-8584-7089d2000219" - }, - "type": "message", - "entry": [ - { - "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", - "resource": { - "resourceType": "MessageHeader", - "eventCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/message-event", - "code": "prescription-order", - "display": "Prescription Order" - }, - "sender": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A83008" - }, - "display": "HALLGARTH SURGERY" - }, - "source": { - "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" - }, - "destination": [ - { - "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", - "receiver": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - } - } - } - ], - "focus": [ - { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - { - "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" - }, - { - "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" - } - ] - } - }, - { - "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", - "resource": { - "resourceType": "MedicationRequest", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101", - "display": "Primary Care Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" - } - ], - "status": "active", - "intent": "order", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "community", - "display": "Community" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "322237000", - "display": "Paracetamol 500mg soluble tablets" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "c59b0ad3-b6c9-49f1-a50a-0595b97c503d" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "315A44-A83008-4C9BB1" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "4 times a day - Oral", - "timing": { - "repeat": { - "frequency": 4, - "period": 1, - "periodUnit": "d" - } - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "26643006", - "display": "Oral" - } - ] - } - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "0004" - } - } - ], - "validityPeriod": { - "start": "2021-05-07", - "end": "2021-06-04" - }, - "expectedSupplyDuration": { - "value": 30, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "quantity": { - "value": 100, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", - "resource": { - "resourceType": "MedicationRequest", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101", - "display": "Primary Care Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" - } - ], - "status": "active", - "intent": "order", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "community", - "display": "Community" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "39113611000001102", - "display": "Salbutamol 100micrograms/dose inhaler CFC free" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "c59b0ad3-b6c9-49f1-a50a-0595b97c503d" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "315A44-A83008-4C9BB1" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "5 times a day - Inhalation", - "timing": { - "repeat": { - "frequency": 5, - "period": 1, - "periodUnit": "d" - } - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "18679011000001101", - "display": "Inhalation" - } - ] - } - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "0004" - } - } - ], - "validityPeriod": { - "start": "2021-05-07", - "end": "2021-06-04" - }, - "expectedSupplyDuration": { - "value": 30, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "quantity": { - "value": 200, - "unit": "dose", - "system": "http://snomed.info/sct", - "code": "3317411000001100" - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", - "resource": { - "resourceType": "Patient", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9990548609" - } - ], - "name": [ - { - "use": "usual", - "family": "XXTESTPATIENT-TGNP", - "given": [ - "DONOTUSE" - ], - "prefix": [ - "MR" - ] - } - ], - "gender": "male", - "birthDate": "1932-01-06", - "address": [ - { - "use": "home", - "line": [ - "1 Trevelyan Square", - "Boar Lane", - "Leeds", - "West Yorkshire" - ], - "postalCode": "LS1 6AE" - } - ], - "generalPractitioner": [ - { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A83008" - } - } - ] - } - }, - { - "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", - "resource": { - "resourceType": "PractitionerRole", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", - "value": "200102238987" - } - ], - "practitioner": { - "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" - }, - "organization": { - "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" - }, - "code": [ - { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", - "code": "S8000:G8000:R8000", - "display": "Clinical Practitioner Access Role" - } - ] - } - ], - "telecom": [ - { - "system": "phone", - "value": "01234567890", - "use": "work" - } - ] - } - }, - { - "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", - "resource": { - "resourceType": "Practitioner", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/sds-user-id", - "value": "555086689106" - }, - { - "system": "https://fhir.hl7.org.uk/Id/gmc-number", - "value": "6095103" - }, - { - "system": "https://fhir.hl7.org.uk/Id/din-number", - "value": "977677" - } - ], - "name": [ - { - "family": "BOIN", - "given": [ - "C" - ], - "prefix": [ - "DR" - ] - } - ] - } - }, - { - "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", - "resource": { - "resourceType": "Organization", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A83008" - } - ], - "type": [ - { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", - "code": "76", - "display": "GP PRACTICE" - } - ] - } - ], - "name": "HALLGARTH SURGERY", - "address": [ - { - "use": "work", - "type": "both", - "line": [ - "HALLGARTH SURGERY", - "CHEAPSIDE" - ], - "city": "SHILDON", - "district": "COUNTY DURHAM", - "postalCode": "DL4 2HP" - } - ], - "telecom": [ - { - "system": "phone", - "value": "0115 9737320", - "use": "work" - } - ], - "partOf": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "84H" - }, - "display": "NHS COUNTY DURHAM CCG" - } - } - } - ] -} diff --git a/legacy/src/main/resources/uk_core.manifest.json b/legacy/src/main/resources/uk_core.manifest.json deleted file mode 100644 index 99ef7657..00000000 --- a/legacy/src/main/resources/uk_core.manifest.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - { - "packageName": "fhir.r4.ukcore.stu3.currentbuild", - "version": "0.0.9-pre-release" - } -] diff --git a/legacy/src/test/java/software/nhs/fhirvalidator/HandlerTest.java.ignore b/legacy/src/test/java/software/nhs/fhirvalidator/HandlerTest.java.ignore deleted file mode 100644 index c2dc6fd6..00000000 --- a/legacy/src/test/java/software/nhs/fhirvalidator/HandlerTest.java.ignore +++ /dev/null @@ -1,51 +0,0 @@ -package software.nhs.fhirvalidator; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; - -import nl.altindag.log.LogCaptor; -import software.nhs.fhirvalidator.handler.HandlerStream; -import software.nhs.fhirvalidator.util.ResourceUtils; - -import com.amazonaws.services.lambda.runtime.Context; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; - -import org.junit.jupiter.api.Test; -import static org.mockito.Mockito.mock; - -class HandlerTest { - - @Test - void logStartupMessage() { - LogCaptor logCaptor = LogCaptor.forClass(HandlerStream.class); - - new HandlerStream(); - - assertTrue(logCaptor.getInfoLogs().contains("Validator is ready")); - } - - @Test - void handlerCanProcessEvent() throws IOException { - String stepFunctionEvent = ResourceUtils.getResourceContent("examples/stepFunctionEvent.json"); - HandlerStream handlerStream = new HandlerStream(); - - InputStream inputStream = new ByteArrayInputStream(stepFunctionEvent.getBytes()); - OutputStream outputStream = new ByteArrayOutputStream(); - - handlerStream.handleRequest(inputStream, outputStream, mock(Context.class)); - - JsonObject actualJsonResult = JsonParser.parseString(outputStream.toString()).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/stepFunctionResult.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } -} diff --git a/legacy/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java.ignore b/legacy/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java.ignore deleted file mode 100644 index 34bff1cc..00000000 --- a/legacy/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java.ignore +++ /dev/null @@ -1,310 +0,0 @@ -package software.nhs.fhirvalidator; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; - -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; - -import ca.uhn.fhir.context.FhirContext; -import software.nhs.fhirvalidator.controller.ValidateController; -import software.nhs.fhirvalidator.util.ResourceUtils; - -import org.hl7.fhir.r4.model.OperationOutcome; -import org.hl7.fhir.r4.model.OperationOutcome.IssueSeverity; -import org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent; -import org.hl7.fhir.r4.model.Bundle; -import org.hl7.fhir.r4.model.Bundle.BundleEntryComponent; -import org.hl7.fhir.r4.model.Patient; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; - -class Validator_nhs_digital_Test { - - static ValidateController validateController; - static FhirContext fhirContext; - - Boolean issueListHasSeverity(List issueList, IssueSeverity severity) { - for (OperationOutcomeIssueComponent issue : issueList) { - if (issue.getSeverity().equals(severity)) { - return true; - } - } - return false; - } - - Boolean issueListHasDiagnosticMessageAtSeverity(List issueList, - String diagnosticMessage, IssueSeverity severity) { - for (OperationOutcomeIssueComponent issue : issueList) { - if (issue.getSeverity().equals(severity)) { - if (issue.getDiagnostics().equals(diagnosticMessage)) { - return true; - } - } - } - return false; - } - - @BeforeAll - static void setup() { - // Creating the HAPI validator takes several seconds. It's ok to reuse the same - // validator across tests to speed up tests - String manifest_file = "nhs_digital.manifest.json"; - validateController = new ValidateController(manifest_file); - fhirContext = FhirContext.forR4(); - } - - @Test - void simpleBundle() { - Bundle bundle = new Bundle(); - bundle.setType(Bundle.BundleType.COLLECTION); - BundleEntryComponent bundleEntry = bundle.addEntry(); - bundleEntry.setResource(new Patient()); - String FHIRDocument = fhirContext.newJsonParser().encodeResourceToString(bundle); - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/validSimpleBundle.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - - assertFalse(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); - assertFalse(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.WARNING)); - } - - @Test - void validBundle() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/validBundle.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/validBundle.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - - assertFalse(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); - assertTrue(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.WARNING)); - } - - @Test - void invalidBundle() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/invalidBundle.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/invalidBundle.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - - assertTrue(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); - assertTrue(issueListHasDiagnosticMessageAtSeverity(validatorResult.getIssue(), "Bundle entry missing fullUrl", - OperationOutcome.IssueSeverity.ERROR)); - assertTrue(issueListHasDiagnosticMessageAtSeverity(validatorResult.getIssue(), - "Unable to find a match for profile urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666 among choices: https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-EPSLegal", - OperationOutcome.IssueSeverity.ERROR)); - assertTrue(issueListHasDiagnosticMessageAtSeverity(validatorResult.getIssue(), - "Except for transactions and batches, each entry in a Bundle must have a fullUrl which is the identity of the resource in the entry", - OperationOutcome.IssueSeverity.ERROR)); - } - - @Test - void validParameters() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/validParameters.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/validParameters.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void invalidParameters() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/invalidParameters.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/invalidParameters.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void validOperationOutcome() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/validOperationOutcome.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/successfulOperationOutcome.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void invalidOperationOutcome() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/invalidOperationOutcome.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/invalidOperationOutcome.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void searchSet() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/searchSet.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/searchSet.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void missingHeader() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/missingHeader.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/missingHeader.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void empty() { - String FHIRDocument = ""; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/empty.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void array() { - String FHIRDocument = "[1,2,3]"; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/array.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void null_java() { - String FHIRDocument = null; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/null_java.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void null_json() { - String FHIRDocument = "null"; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/null_json.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void number_json() { - String FHIRDocument = "123"; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/number_json.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void boolean_json() { - String FHIRDocument = "true"; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/boolean_json.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void bad_json() { - String FHIRDocument = "{a:<>}}}"; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/bad_json.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void psuUpdate() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/psu_update.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/psu_nhs_digital.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - - assertTrue(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); - } -} diff --git a/legacy/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java.ignore b/legacy/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java.ignore deleted file mode 100644 index 59358e13..00000000 --- a/legacy/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java.ignore +++ /dev/null @@ -1,179 +0,0 @@ -package software.nhs.fhirvalidator; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; - -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; - -import ca.uhn.fhir.context.FhirContext; -import software.nhs.fhirvalidator.controller.ValidateController; -import software.nhs.fhirvalidator.util.ResourceUtils; - -import org.hl7.fhir.r4.model.OperationOutcome; -import org.hl7.fhir.r4.model.OperationOutcome.IssueSeverity; -import org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; - -class Validator_uk_core_Test { - - static ValidateController validateController; - static FhirContext fhirContext; - - Boolean issueListHasSeverity(List issueList, IssueSeverity severity) { - for (OperationOutcomeIssueComponent issue : issueList) { - if (issue.getSeverity().equals(severity)) { - return true; - } - } - return false; - } - - Boolean issueListHasDiagnosticMessageAtSeverity(List issueList, - String diagnosticMessage, IssueSeverity severity) { - for (OperationOutcomeIssueComponent issue : issueList) { - if (issue.getSeverity().equals(severity)) { - if (issue.getDiagnostics().equals(diagnosticMessage)) { - return true; - } - } - } - return false; - } - - @BeforeAll - static void setup() { - // Creating the HAPI validator takes several seconds. It's ok to reuse the same - // validator across tests to speed up tests - String manifest_file = "uk_core.manifest.json"; - validateController = new ValidateController(manifest_file); - fhirContext = FhirContext.forR4(); - } - - @Test - void psuUpdate() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/psu_update.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/psu_update.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - - assertFalse(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); - //assertFalse(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.WARNING)); - } - - @Test - void validBundle_nhsdigitalProfile() { - String FHIRDocument = ResourceUtils.getResourceContent("examples/validBundle.json"); - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - - assertTrue(issueListHasSeverity(validatorResult.getIssue(), OperationOutcome.IssueSeverity.ERROR)); - } - - @Test - void empty() { - String FHIRDocument = ""; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/empty.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void array() { - String FHIRDocument = "[1,2,3]"; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/array.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void null_java() { - String FHIRDocument = null; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/null_java.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void null_json() { - String FHIRDocument = "null"; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/null_json.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void number_json() { - String FHIRDocument = "123"; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/number_json.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void boolean_json() { - String FHIRDocument = "true"; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/boolean_json.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - - @Test - void bad_json() { - String FHIRDocument = "{a:<>}}}"; - - OperationOutcome validatorResult = validateController.parseAndValidateResource(FHIRDocument); - JsonObject actualJsonResult = JsonParser - .parseString(fhirContext.newJsonParser().encodeResourceToString(validatorResult)).getAsJsonObject(); - - String expectedResult = ResourceUtils.getResourceContent("results/bad_json.json"); - JsonObject expectedJsonResult = JsonParser.parseString(expectedResult).getAsJsonObject(); - - assertEquals(expectedJsonResult, actualJsonResult); - } - -} diff --git a/legacy/src/test/resources/examples/invalidBundle.json b/legacy/src/test/resources/examples/invalidBundle.json deleted file mode 100644 index 0d8d7427..00000000 --- a/legacy/src/test/resources/examples/invalidBundle.json +++ /dev/null @@ -1,376 +0,0 @@ -{ - "resourceType": "Bundle", - "id": "0A1FD9EF-A3D5-4E95-84CD-352070A03086", - "meta": { - "lastUpdated": "2022-10-21T13:47:00+00:00" - }, - "identifier": { - "value": "34470bbf-07cb-4b49-bef9-f958114f821f" - }, - "type": "message", - "entry": [ - { - "resource": { - "resourceType": "MessageHeader", - "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03086", - "eventCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/message-event", - "code": "prescription-order", - "display": "Prescription Order" - }, - "sender": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "RBA" - }, - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", - "display": "BOOTH|PHIL" - }, - "source": { - "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" - }, - "destination": [ - { - "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", - "receiver": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FH542" - } - } - } - ], - "focus": [ - { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - { - "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" - } - ] - } - }, - { - "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", - "resource": { - "resourceType": "MedicationRequest", - "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "1001", - "display": "Outpatient Community Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" - } - ], - "status": "active", - "intent": "plan", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "outpatient", - "display": "Outpatient" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "15517911000001104", - "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "030611b2-9769-4696-88d9-9ddcf1132584" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "315A44-A83008-4C9BB1" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", - "timing": { - "repeat": { - "frequency": 5, - "period": 1, - "periodUnit": "d", - "boundsDuration": { - "value": 10, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - } - } - }, - "method": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "422145002", - "display": "Inject" - } - ] - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "34206005", - "display": "Subcutaneous route" - } - ] - }, - "doseAndRate": [ - { - "doseQuantity": { - "value": 10, - "unit": "milligram", - "system": "http://unitsofmeasure.org", - "code": "mg" - } - } - ] - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1" - } - } - ], - "quantity": { - "value": 1, - "unit": "pre-filled disposable injection", - "system": "http://snomed.info/sct", - "code": "3318611000001103" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FH542" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", - "resource": { - "resourceType": "Patient", - "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449305552" - } - ], - "name": [ - { - "use": "usual", - "family": "DAVIS", - "given": [ - "JANE" - ], - "prefix": [ - "MRS" - ] - } - ], - "gender": "female", - "birthDate": "1999-11-25", - "address": [ - { - "use": "home", - "line": [ - "53 Harrogate Road", - "Chapel Allerton", - "Leeds" - ], - "postalCode": "LS7 3PY" - } - ], - "generalPractitioner": [ - { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "B81001" - } - } - ] - } - }, - { - "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", - "resource": { - "resourceType": "Practitioner", - "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/sds-user-id", - "value": "555086689106" - }, - { - "system": "https://fhir.hl7.org.uk/Id/gmc-number", - "value": "6150129" - } - ], - "name": [ - { - "family": "FIFTYSEVEN", - "given": [ - "RANDOM" - ], - "prefix": [ - "MR" - ] - } - ] - } - }, - { - "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", - "resource": { - "resourceType": "PractitionerRole", - "id": "56166769-c1c4-4d07-afa8-132b5dfca666", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", - "value": "601986680555" - }, - { - "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", - "value": "683458" - } - ], - "practitioner": { - "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" - }, - "organization": { - "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" - }, - "telecom": [ - { - "system": "phone", - "value": "01234567890", - "use": "work" - } - ] - } - }, - { - "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", - "resource": { - "resourceType": "Organization", - "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A99968" - } - ], - "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", - "address": [ - { - "use": "work", - "line": [ - "MUSGROVE PARK HOSPITAL" - ], - "city": "TAUNTON", - "postalCode": "TA1 5DA" - } - ], - "telecom": [ - { - "system": "phone", - "value": "01823 333444", - "use": "work" - } - ], - "partOf": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "RBA" - }, - "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" - } - } - }, - { - "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", - "resource": { - "resourceType": "Provenance", - "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", - "target": [ - { - "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" - } - ], - "recorded": "2008-02-27T11:38:00+00:00", - "agent": [ - { - "who": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - } - } - ], - "signature": [ - { - "type": [ - { - "system": "urn:iso-astm:E1762-95:2013", - "code": "1.2.840.10065.1.12.1.1" - } - ], - "when": "2021-03-16T12:34:33+00:00", - "who": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPmlscE5XeW05Wk1Pbk5jV1VzWk9TditmbFJwQT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+S1Yzc0RsY1UzbUhZcmcwYjBhbnBtTjJ4djRpVXJGRmVzVTl1TVZQL2UycHp0aUduT0pKcGFoanBtbGRGTFRIVE1pdXFpbHlwZTVMZDAvdWNlWnR5Q2gzMHUvOW50aEVpLyszOFljcVNNRlNTeWpuN1FPUXl2VFNqTkVqT3Fhb2FTaEhnSmNaR3hUei9GcG5iYktCUUI0NCt0MXVZSjlZbFFJdWNKSkRZWjFZPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" - } - ] - } - } - ] -} diff --git a/legacy/src/test/resources/examples/invalidOperationOutcome.json b/legacy/src/test/resources/examples/invalidOperationOutcome.json deleted file mode 100644 index 26800155..00000000 --- a/legacy/src/test/resources/examples/invalidOperationOutcome.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "meta": { - "lastUpdated": "2022-10-21T13:47:00+00:00" - } -} diff --git a/legacy/src/test/resources/examples/invalidParameters.json b/legacy/src/test/resources/examples/invalidParameters.json deleted file mode 100644 index a7a447b2..00000000 --- a/legacy/src/test/resources/examples/invalidParameters.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "resourceType": "Parameters", - "parameter": [ - { - "name": "timestamp" - } - ] -} diff --git a/legacy/src/test/resources/examples/missingHeader.json b/legacy/src/test/resources/examples/missingHeader.json deleted file mode 100644 index b6d21b99..00000000 --- a/legacy/src/test/resources/examples/missingHeader.json +++ /dev/null @@ -1,696 +0,0 @@ -{ - "resourceType": "Bundle", - "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", - "identifier": { - "system": "https://tools.ietf.org/html/rfc4122", - "value": "5dfe538a-b922-4e8e-ae61-ab80ee6affe7" - }, - "type": "message", - "entry": [ - { - "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", - "resource": { - "resourceType": "MedicationRequest", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101", - "display": "Primary Care Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "9bda1fa2-7a5f-4142-a394-5d262f3fd920" - } - ], - "status": "active", - "intent": "order", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "community", - "display": "Community" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "39732311000001104", - "display": "Amoxicillin 250mg capsules" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "334AF1-A83008-B442F2", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" - } - } - ] - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "2 times a day for 10 days", - "timing": { - "repeat": { - "frequency": 2, - "period": 1, - "periodUnit": "d" - } - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "26643006", - "display": "Oral" - } - ] - } - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1" - } - } - ], - "validityPeriod": { - "start": "2024-03-05", - "end": "2024-04-05" - }, - "quantity": { - "value": 20, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "expectedSupplyDuration": { - "value": 10, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", - "resource": { - "resourceType": "MedicationRequest", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101", - "display": "Primary Care Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "cae365a5-9835-406e-be57-473fae309760" - } - ], - "status": "active", - "intent": "order", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "community", - "display": "Community" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "322341003", - "display": "Co-codamol 30mg/500mg tablets" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "334AF1-A83008-B442F2", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" - } - } - ] - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "2 times a day for 10 days", - "timing": { - "repeat": { - "frequency": 2, - "period": 1, - "periodUnit": "d" - } - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "26643006", - "display": "Oral" - } - ] - } - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1" - } - } - ], - "validityPeriod": { - "start": "2024-03-05", - "end": "2024-04-05" - }, - "quantity": { - "value": 20, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "expectedSupplyDuration": { - "value": 10, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", - "resource": { - "resourceType": "MedicationRequest", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101", - "display": "Primary Care Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "2b24d698-0491-4c3c-9f7a-2dd6f18eafbb" - } - ], - "status": "active", - "intent": "order", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "community", - "display": "Community" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "321080004", - "display": "Pseudoephedrine hydrochloride 60mg tablets" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "334AF1-A83008-B442F2", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" - } - } - ] - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "3 times a day for 10 days", - "timing": { - "repeat": { - "frequency": 3, - "period": 1, - "periodUnit": "d" - } - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "26643006", - "display": "Oral" - } - ] - } - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1" - } - } - ], - "validityPeriod": { - "start": "2024-03-05", - "end": "2024-04-05" - }, - "quantity": { - "value": 30, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "expectedSupplyDuration": { - "value": 10, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", - "resource": { - "resourceType": "MedicationRequest", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101", - "display": "Primary Care Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "4f13a628-d226-4a03-a547-ff45577e9157" - } - ], - "status": "active", - "intent": "order", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "community", - "display": "Community" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "324252006", - "display": "Azithromycin 250mg capsules" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "334AF1-A83008-B442F2", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" - } - } - ] - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "3 times a day for 10 days", - "timing": { - "repeat": { - "frequency": 3, - "period": 1, - "periodUnit": "d" - } - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "26643006", - "display": "Oral" - } - ] - } - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1" - } - } - ], - "validityPeriod": { - "start": "2024-03-05", - "end": "2024-04-05" - }, - "quantity": { - "value": 30, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "expectedSupplyDuration": { - "value": 10, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", - "resource": { - "resourceType": "Patient", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449304130" - } - ], - "name": [ - { - "use": "usual", - "family": "TWITCHETT", - "given": [ - "STACEY", - "MARISA" - ], - "prefix": [ - "MS" - ] - } - ], - "gender": "female", - "birthDate": "1948-04-30", - "address": [ - { - "use": "home", - "line": [ - "10 HEATHFIELD", - "COBHAM", - "SURREY" - ], - "postalCode": "KT11 2QY" - } - ], - "generalPractitioner": [ - { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A83008" - } - } - ] - } - }, - { - "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", - "resource": { - "resourceType": "PractitionerRole", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", - "value": "200102238987" - } - ], - "practitioner": { - "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" - }, - "organization": { - "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" - }, - "code": [ - { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", - "code": "R8000", - "display": "Clinical Practitioner Access Role" - }, - { - "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", - "code": "R8000", - "display": "Clinical Practitioner Access Role" - } - ] - } - ], - "telecom": [ - { - "system": "phone", - "use": "work", - "value": "01234567890" - } - ] - } - }, - { - "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", - "resource": { - "resourceType": "Practitioner", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/sds-user-id", - "value": "555086689106" - }, - { - "system": "https://fhir.hl7.org.uk/Id/gmc-number", - "value": "6095103" - }, - { - "system": "https://fhir.hl7.org.uk/Id/din-number", - "value": "977677" - } - ], - "name": [ - { - "family": "BOIN", - "given": [ - "C" - ], - "prefix": [ - "DR" - ] - } - ] - } - }, - { - "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", - "resource": { - "resourceType": "Organization", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A83008" - } - ], - "type": [ - { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", - "code": "76", - "display": "GP PRACTICE" - } - ] - } - ], - "name": "HALLGARTH SURGERY", - "telecom": [ - { - "system": "phone", - "use": "work", - "value": "0115 9737320" - } - ], - "address": [ - { - "use": "work", - "type": "both", - "line": [ - "HALLGARTH SURGERY", - "CHEAPSIDE" - ], - "city": "SHILDON", - "district": "COUNTY DURHAM", - "postalCode": "DL4 2HP" - } - ], - "partOf": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "84H" - }, - "display": "NHS COUNTY DURHAM CCG" - } - } - } - ] -} diff --git a/legacy/src/test/resources/examples/psu_update.json b/legacy/src/test/resources/examples/psu_update.json deleted file mode 100644 index 0faa5c6a..00000000 --- a/legacy/src/test/resources/examples/psu_update.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "resourceType": "Bundle", - "type": "transaction", - "entry": [ - { - "fullUrl": "http://example.org/fhir/Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46", - "resource": { - "resourceType": "Task", - "id": "4d70678c-81e4-4ff4-8c67-17596fd0aa46", - "basedOn": [ - { - "identifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "07A66F-A83008-1EEEA0" - } - } - ], - "status": "completed", - "businessStatus": { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/task-businessStatus-nppt", - "code": "Dispatched" - } - ] - }, - "intent": "order", - "focus": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "6989b7bd-8db6-428c-a593-4022e3044c00" - } - }, - "for": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449304130" - } - }, - "lastModified": "2024-01-30T12:01:24Z", - "owner": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "C9Z1O" - } - } - }, - "request": { - "method": "POST", - "url": "Task" - } - } - ] -} diff --git a/legacy/src/test/resources/examples/searchSet.json b/legacy/src/test/resources/examples/searchSet.json deleted file mode 100644 index 09fcfcc4..00000000 --- a/legacy/src/test/resources/examples/searchSet.json +++ /dev/null @@ -1,711 +0,0 @@ -{ - "resourceType": "Bundle", - "id": "test-request-id", - "meta": { - "lastUpdated": "2022-11-21T14:00:00+00:00" - }, - "type": "searchset", - "total": 2, - "entry": [ - { - "fullUrl": "urn:uuid:0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", - "search": { - "mode": "match" - }, - "resource": { - "resourceType": "Bundle", - "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", - "type": "collection", - "entry": [ - { - "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", - "resource": { - "resourceType": "MedicationRequest", - "status": "active", - "intent": "order", - "medicationCodeableConcept": { - "coding": [ - { - "system": "https://snomed.info/sct", - "code": "39732311000001104", - "display": "Amoxicillin 250mg capsules" - } - ] - }, - "subject": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449304130" - } - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "24F5DA-A83008-7EFE6Z" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dispenseRequest": { - "validityPeriod": { - "start": "2022-10-21" - }, - "quantity": { - "value": 20, - "unit": "tablet", - "system": "https://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "reference": "urn:uuid:afb07f8b-e8d7-4cad-895d-494e6b35b2a1" - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", - "resource": { - "resourceType": "MedicationRequest", - "status": "active", - "intent": "order", - "medicationCodeableConcept": { - "coding": [ - { - "system": "https://snomed.info/sct", - "code": "322341003", - "display": "Co-codamol 30mg/500mg tablets" - } - ] - }, - "subject": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449304130" - } - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "24F5DA-A83008-7EFE6Z" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dispenseRequest": { - "validityPeriod": { - "start": "2022-10-21" - }, - "quantity": { - "value": 20, - "unit": "tablet", - "system": "https://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "reference": "urn:uuid:afb07f8b-e8d7-4cad-895d-494e6b35b2a1" - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", - "resource": { - "resourceType": "MedicationRequest", - "status": "active", - "intent": "order", - "medicationCodeableConcept": { - "coding": [ - { - "system": "https://snomed.info/sct", - "code": "321080004", - "display": "Pseudoephedrine hydrochloride 60mg tablets" - } - ] - }, - "subject": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449304130" - } - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "24F5DA-A83008-7EFE6Z" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dispenseRequest": { - "validityPeriod": { - "start": "2022-10-21" - }, - "quantity": { - "value": 30, - "unit": "tablet", - "system": "https://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "reference": "urn:uuid:afb07f8b-e8d7-4cad-895d-494e6b35b2a1" - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", - "resource": { - "resourceType": "MedicationRequest", - "status": "cancelled", - "intent": "order", - "medicationCodeableConcept": { - "coding": [ - { - "system": "https://snomed.info/sct", - "code": "324252006", - "display": "Azithromycin 250mg capsules" - } - ] - }, - "subject": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449304130" - } - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "24F5DA-A83008-7EFE6Z" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dispenseRequest": { - "validityPeriod": { - "start": "2022-10-21" - }, - "quantity": { - "value": 30, - "unit": "tablet", - "system": "https://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "reference": "urn:uuid:afb07f8b-e8d7-4cad-895d-494e6b35b2a1" - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", - "resource": { - "resourceType": "PractitionerRole", - "id": "56166769-c1c4-4d07-afa8-132b5dfca666", - "practitioner": { - "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" - }, - "organization": { - "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" - } - } - }, - { - "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", - "resource": { - "resourceType": "Practitioner", - "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", - "name": [ - { - "family": "BOIN", - "given": [ - "C" - ], - "prefix": [ - "DR" - ] - } - ] - } - }, - { - "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", - "resource": { - "resourceType": "Organization", - "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A83008" - } - ], - "name": "HALLGARTH SURGERY", - "telecom": [ - { - "system": "phone", - "use": "work", - "value": "0115 9737320" - } - ], - "address": [ - { - "use": "work", - "type": "both", - "line": [ - "HALLGARTH SURGERY", - "CHEAPSIDE" - ], - "city": "SHILDON", - "district": "COUNTY DURHAM", - "postalCode": "DL4 2HP" - } - ] - } - }, - { - "fullUrl": "urn:uuid:afb07f8b-e8d7-4cad-895d-494e6b35b2a1", - "resource": { - "resourceType": "Organization", - "id": "afb07f8b-e8d7-4cad-895d-494e6b35b2a1", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FLM49" - } - ], - "name": "Pharmacy2u", - "telecom": [ - { - "system": "phone", - "use": "work", - "value": "0113 2650222" - }, - { - "system": "url", - "use": "work", - "value": "www.pharmacy2u.co.uk" - } - ], - "address": [ - { - "use": "work", - "type": "both", - "line": [ - "Unit 4B", - "Victoria Road" - ], - "city": "LEEDS", - "district": "WEST YORKSHIRE", - "postalCode": "LS14 2LA" - } - ] - } - } - ] - } - }, - { - "fullUrl": "urn:uuid:0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", - "search": { - "mode": "match" - }, - "resource": { - "resourceType": "Bundle", - "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", - "type": "collection", - "entry": [ - { - "fullUrl": "urn:uuid:ee035711-7aac-48c4-951a-62c07891d37d", - "resource": { - "resourceType": "MedicationRequest", - "status": "cancelled", - "intent": "order", - "medicationCodeableConcept": { - "coding": [ - { - "system": "https://snomed.info/sct", - "code": "324252006", - "display": "Azithromycin 250mg capsules" - } - ] - }, - "subject": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449304130" - } - }, - "requester": { - "reference": "urn:uuid:815c6eb3-41f8-4f48-9e0d-2983624d4f90" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "566946-B86044-FEFEFN" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dispenseRequest": { - "validityPeriod": { - "start": "2023-03-14" - }, - "quantity": { - "value": 30, - "unit": "tablet", - "system": "https://snomed.info/sct", - "code": "428673006" - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:815c6eb3-41f8-4f48-9e0d-2983624d4f90", - "resource": { - "resourceType": "PractitionerRole", - "id": "815c6eb3-41f8-4f48-9e0d-2983624d4f90", - "practitioner": { - "reference": "urn:uuid:acd5b009-c78f-40f2-a48b-b38ac72de992" - }, - "organization": { - "reference": "urn:uuid:9683c147-ddad-41d9-9858-6e585c3f04df" - } - } - }, - { - "fullUrl": "urn:uuid:acd5b009-c78f-40f2-a48b-b38ac72de992", - "resource": { - "resourceType": "Practitioner", - "id": "acd5b009-c78f-40f2-a48b-b38ac72de992", - "name": [ - { - "family": "ROBINSON", - "given": [ - "C" - ], - "prefix": [ - "DR" - ] - } - ] - } - }, - { - "fullUrl": "urn:uuid:9683c147-ddad-41d9-9858-6e585c3f04df", - "resource": { - "resourceType": "Organization", - "id": "9683c147-ddad-41d9-9858-6e585c3f04df", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "B86044" - } - ], - "name": "IRELAND WOOD SURGERY", - "telecom": [ - { - "system": "phone", - "value": "0113 2303470" - } - ], - "address": [ - { - "use": "work", - "type": "both", - "line": [ - "IVESON APPROACH" - ], - "city": "LEEDS", - "district": "WEST YORKSHIRE", - "postalCode": "LS16 6FR", - "country": "ENGLAND" - } - ] - } - } - ] - } - }, - { - "fullUrl": "urn:uuid:0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", - "search": { - "mode": "match" - }, - "resource": { - "resourceType": "Bundle", - "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", - "type": "collection", - "entry": [ - { - "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", - "resource": { - "resourceType": "MedicationRequest", - "status": "active", - "intent": "order", - "medicationCodeableConcept": { - "coding": [ - { - "system": "https://snomed.info/sct", - "code": "39732311000001104", - "display": "Amoxicillin 250mg capsules" - } - ] - }, - "subject": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449304130" - } - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "24F5DA-A83008-7EFE6Z" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dispenseRequest": { - "validityPeriod": { - "start": "2022-10-21" - }, - "quantity": { - "value": 20, - "unit": "tablet", - "system": "https://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "reference": "urn:uuid:154dcc4a-0006-4272-9758-9dcb8d95ce8b" - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:815c6eb3-41f8-4f48-9e0d-2983624d4f90", - "resource": { - "resourceType": "PractitionerRole", - "id": "815c6eb3-41f8-4f48-9e0d-2983624d4f90", - "practitioner": { - "reference": "urn:uuid:acd5b009-c78f-40f2-a48b-b38ac72de992" - }, - "organization": { - "reference": "urn:uuid:9683c147-ddad-41d9-9858-6e585c3f04df" - } - } - }, - { - "fullUrl": "urn:uuid:acd5b009-c78f-40f2-a48b-b38ac72de992", - "resource": { - "resourceType": "Practitioner", - "id": "acd5b009-c78f-40f2-a48b-b38ac72de992", - "name": [ - { - "family": "ROBINSON", - "given": [ - "C" - ], - "prefix": [ - "DR" - ] - } - ] - } - }, - { - "fullUrl": "urn:uuid:9683c147-ddad-41d9-9858-6e585c3f04df", - "resource": { - "resourceType": "Organization", - "id": "9683c147-ddad-41d9-9858-6e585c3f04df", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "B86044" - } - ], - "name": "IRELAND WOOD SURGERY", - "telecom": [ - { - "system": "phone", - "value": "0113 2303470" - } - ], - "address": [ - { - "use": "work", - "type": "both", - "line": [ - "IVESON APPROACH" - ], - "city": "LEEDS", - "district": "WEST YORKSHIRE", - "postalCode": "LS16 6FR", - "country": "ENGLAND" - } - ] - } - }, - { - "fullUrl": "urn:uuid:154dcc4a-0006-4272-9758-9dcb8d95ce8b", - "resource": { - "resourceType": "Organization", - "id": "154dcc4a-0006-4272-9758-9dcb8d95ce8b", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FEW08" - } - ], - "name": "Pharmica", - "telecom": [ - { - "system": "phone", - "use": "work", - "value": "020 71129014" - }, - { - "system": "url", - "use": "work", - "value": "www.pharmica.co.uk" - } - ], - "address": [ - { - "use": "work", - "type": "both", - "line": [ - "1-5 Clerkenwell Road" - ], - "city": "LONDON", - "district": "GREATER LONDON", - "postalCode": "EC1M 5PA" - } - ] - } - } - ] - } - }, - { - "fullUrl": "urn:uuid:1a388581-dbbe-43e3-9054-f5976c0245e5", - "search": { - "mode": "outcome" - }, - "resource": { - "resourceType": "OperationOutcome", - "id": "1a388581-dbbe-43e3-9054-f5976c0245e5", - "meta": { - "lastUpdated": "2023-09-29T10:52:00+00:00" - }, - "issue": [ - { - "code": "business-rule", - "severity": "warning", - "details": { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/Spine-ErrorOrWarningCode", - "code": "INVALIDATED_RESOURCE", - "display": "Invalidated resource" - } - ] - }, - "diagnostics": "Prescription with short form ID D7AC09-A99968-4BA59C has been invalidated so could not be returned." - } - ] - } - }, - { - "fullUrl": "urn:uuid:fedef61e-bc62-452e-91c0-6f44ad2d5c0c", - "search": { - "mode": "outcome" - }, - "resource": { - "resourceType": "OperationOutcome", - "id": "fedef61e-bc62-452e-91c0-6f44ad2d5c0c", - "meta": { - "lastUpdated": "2023-09-29T10:52:00+00:00" - }, - "issue": [ - { - "code": "business-rule", - "severity": "warning", - "details": { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/Spine-ErrorOrWarningCode", - "code": "INVALIDATED_RESOURCE", - "display": "Invalidated resource" - } - ] - }, - "diagnostics": "Prescription with short form ID CDF34E-A99968-4FF3BQ has been invalidated so could not be returned." - } - ] - } - } - ] -} diff --git a/legacy/src/test/resources/examples/stepFunctionEvent.json b/legacy/src/test/resources/examples/stepFunctionEvent.json deleted file mode 100644 index 9b4e447d..00000000 --- a/legacy/src/test/resources/examples/stepFunctionEvent.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "body": { - "resourceType": "Bundle", - "type": "transaction", - "entry": [ - { - "fullUrl": "urn:uuid:4d70678c-81e4-4ff4-8c67-17596fd0aa46", - "resource": { - "resourceType": "Task", - "id": "4d70678c-81e4-4ff4-8c67-17596fd0aa46", - "basedOn": [ - { - "identifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "16B2E0-A83008-81C13H" - } - } - ], - "status": "completed", - "businessStatus": { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/task-businessStatus-nppt", - "code": "dispatched" - } - ] - }, - "intent": "order", - "focus": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "6989b7bd-8db6-428c-a593-4022e3044c00" - } - }, - "for": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449304130" - } - }, - "lastModified": "2023-10-11T10:11:12Z", - "owner": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "C9Z1O" - } - } - }, - "request": { - "method": "POST", - "url": "Task" - } - } - ] - }, - "headers": { - "Accept": "*/*", - "Accept-Encoding": "gzip, deflate, br", - "apigw-request-id": "5600dff8-6553-42e3-a0ff-c2c9d04d3de6", - "Authorization": "Bearer nSoPA0PNA2JG8phqPwtCn9ys1G6z", - "Content-Type": "application/json", - "Host": "psu-pr-150.dev.eps.national.nhs.uk", - "nhsd-nhslogin-user": "P9:9912003071", - "Postman-Token": "8ca7a240-0b9e-4c1f-90d8-a526faa533e2", - "User-Agent": "PostmanRuntime/7.37.3", - "X-Amzn-Trace-Id": "Root=1-66290323-47ec5ff50d05147878b956d3", - "x-correlation-id": "ead03d9a-d14e-414d-9e01-217319210ddd", - "X-Forwarded-For": "86.5.218.71", - "X-Forwarded-Port": "443", - "X-Forwarded-Proto": "https", - "x-request-id": "c39f1caa-cd63-438d-bc2b-fafd3f02ed41" - }, - "querystring": {}, - "path": {} -} diff --git a/legacy/src/test/resources/examples/validBundle.json b/legacy/src/test/resources/examples/validBundle.json deleted file mode 100644 index fe040eb9..00000000 --- a/legacy/src/test/resources/examples/validBundle.json +++ /dev/null @@ -1,749 +0,0 @@ -{ - "resourceType": "Bundle", - "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", - "identifier": { - "system": "https://tools.ietf.org/html/rfc4122", - "value": "5dfe538a-b922-4e8e-ae61-ab80ee6affe7" - }, - "type": "message", - "entry": [ - { - "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", - "resource": { - "resourceType": "MessageHeader", - "eventCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/message-event", - "code": "prescription-order", - "display": "Prescription Order" - }, - "destination": [ - { - "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", - "receiver": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - }, - "display": "The Simple Pharmacy" - } - } - ], - "sender": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A83008" - }, - "display": "HALLGARTH SURGERY" - }, - "source": { - "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" - }, - "focus": [ - { - "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" - }, - { - "reference": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00" - }, - { - "reference": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a" - }, - { - "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" - }, - { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - } - ] - } - }, - { - "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", - "resource": { - "resourceType": "MedicationRequest", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101", - "display": "Primary Care Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "9bda1fa2-7a5f-4142-a394-5d262f3fd920" - } - ], - "status": "active", - "intent": "order", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "community", - "display": "Community" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "39732311000001104", - "display": "Amoxicillin 250mg capsules" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "334AF1-A83008-B442F2", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" - } - } - ] - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "2 times a day for 10 days", - "timing": { - "repeat": { - "frequency": 2, - "period": 1, - "periodUnit": "d" - } - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "26643006", - "display": "Oral" - } - ] - } - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1" - } - } - ], - "validityPeriod": { - "start": "2024-03-05", - "end": "2024-04-05" - }, - "quantity": { - "value": 20, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "expectedSupplyDuration": { - "value": 10, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", - "resource": { - "resourceType": "MedicationRequest", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101", - "display": "Primary Care Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "cae365a5-9835-406e-be57-473fae309760" - } - ], - "status": "active", - "intent": "order", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "community", - "display": "Community" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "322341003", - "display": "Co-codamol 30mg/500mg tablets" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "334AF1-A83008-B442F2", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" - } - } - ] - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "2 times a day for 10 days", - "timing": { - "repeat": { - "frequency": 2, - "period": 1, - "periodUnit": "d" - } - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "26643006", - "display": "Oral" - } - ] - } - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1" - } - } - ], - "validityPeriod": { - "start": "2024-03-05", - "end": "2024-04-05" - }, - "quantity": { - "value": 20, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "expectedSupplyDuration": { - "value": 10, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", - "resource": { - "resourceType": "MedicationRequest", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101", - "display": "Primary Care Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "2b24d698-0491-4c3c-9f7a-2dd6f18eafbb" - } - ], - "status": "active", - "intent": "order", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "community", - "display": "Community" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "321080004", - "display": "Pseudoephedrine hydrochloride 60mg tablets" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "334AF1-A83008-B442F2", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" - } - } - ] - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "3 times a day for 10 days", - "timing": { - "repeat": { - "frequency": 3, - "period": 1, - "periodUnit": "d" - } - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "26643006", - "display": "Oral" - } - ] - } - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1" - } - } - ], - "validityPeriod": { - "start": "2024-03-05", - "end": "2024-04-05" - }, - "quantity": { - "value": 30, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "expectedSupplyDuration": { - "value": 10, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", - "resource": { - "resourceType": "MedicationRequest", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101", - "display": "Primary Care Prescriber - Medical Prescriber" - } - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "4f13a628-d226-4a03-a547-ff45577e9157" - } - ], - "status": "active", - "intent": "order", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "community", - "display": "Community" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "324252006", - "display": "Azithromycin 250mg capsules" - } - ] - }, - "subject": { - "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" - }, - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "334AF1-A83008-B442F2", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "430ef420-4ac0-4dcc-af1d-6f1739c8cfcb" - } - } - ] - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "3 times a day for 10 days", - "timing": { - "repeat": { - "frequency": 3, - "period": 1, - "periodUnit": "d" - } - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "26643006", - "display": "Oral" - } - ] - } - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1" - } - } - ], - "validityPeriod": { - "start": "2024-03-05", - "end": "2024-04-05" - }, - "quantity": { - "value": 30, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "expectedSupplyDuration": { - "value": 10, - "unit": "day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", - "resource": { - "resourceType": "Patient", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449304130" - } - ], - "name": [ - { - "use": "usual", - "family": "TWITCHETT", - "given": [ - "STACEY", - "MARISA" - ], - "prefix": [ - "MS" - ] - } - ], - "gender": "female", - "birthDate": "1948-04-30", - "address": [ - { - "use": "home", - "line": [ - "10 HEATHFIELD", - "COBHAM", - "SURREY" - ], - "postalCode": "KT11 2QY" - } - ], - "generalPractitioner": [ - { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A83008" - } - } - ] - } - }, - { - "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", - "resource": { - "resourceType": "PractitionerRole", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", - "value": "200102238987" - } - ], - "practitioner": { - "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" - }, - "organization": { - "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" - }, - "code": [ - { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", - "code": "R8000", - "display": "Clinical Practitioner Access Role" - }, - { - "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", - "code": "R8000", - "display": "Clinical Practitioner Access Role" - } - ] - } - ], - "telecom": [ - { - "system": "phone", - "use": "work", - "value": "01234567890" - } - ] - } - }, - { - "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", - "resource": { - "resourceType": "Practitioner", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/sds-user-id", - "value": "555086689106" - }, - { - "system": "https://fhir.hl7.org.uk/Id/gmc-number", - "value": "6095103" - }, - { - "system": "https://fhir.hl7.org.uk/Id/din-number", - "value": "977677" - } - ], - "name": [ - { - "family": "BOIN", - "given": [ - "C" - ], - "prefix": [ - "DR" - ] - } - ] - } - }, - { - "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", - "resource": { - "resourceType": "Organization", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A83008" - } - ], - "type": [ - { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", - "code": "76", - "display": "GP PRACTICE" - } - ] - } - ], - "name": "HALLGARTH SURGERY", - "telecom": [ - { - "system": "phone", - "use": "work", - "value": "0115 9737320" - } - ], - "address": [ - { - "use": "work", - "type": "both", - "line": [ - "HALLGARTH SURGERY", - "CHEAPSIDE" - ], - "city": "SHILDON", - "district": "COUNTY DURHAM", - "postalCode": "DL4 2HP" - } - ], - "partOf": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "84H" - }, - "display": "NHS COUNTY DURHAM CCG" - } - } - } - ] -} diff --git a/legacy/src/test/resources/examples/validOperationOutcome.json b/legacy/src/test/resources/examples/validOperationOutcome.json deleted file mode 100644 index 4d90c94d..00000000 --- a/legacy/src/test/resources/examples/validOperationOutcome.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "meta": { - "lastUpdated": "2022-10-21T13:47:00+00:00" - }, - "issue": [ - { - "severity": "information", - "code": "informational" - } - ] -} diff --git a/legacy/src/test/resources/examples/validParameters.json b/legacy/src/test/resources/examples/validParameters.json deleted file mode 100644 index 4e86b816..00000000 --- a/legacy/src/test/resources/examples/validParameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "resourceType": "Parameters", - "parameter": [ - { - "name": "timestamp", - "valueString": "2022-10-25T10:24:34+00:00" - } - ] -} diff --git a/legacy/src/test/resources/logback-test.xml b/legacy/src/test/resources/logback-test.xml deleted file mode 100644 index 5d4ea2c8..00000000 --- a/legacy/src/test/resources/logback-test.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n - - - - - - diff --git a/legacy/src/test/resources/results/array.json b/legacy/src/test/resources/results/array.json deleted file mode 100644 index 56b7de3e..00000000 --- a/legacy/src/test/resources/results/array.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "severity": "error", - "code": "processing", - "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: HAPI-1859: Content does not appear to be FHIR JSON, first non-whitespace character was: '[' (must be '{')" - } - ] -} diff --git a/legacy/src/test/resources/results/bad_json.json b/legacy/src/test/resources/results/bad_json.json deleted file mode 100644 index 00fa9f96..00000000 --- a/legacy/src/test/resources/results/bad_json.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "severity": "error", - "code": "processing", - "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: Unexpected character ('a' (code 97)): was expecting double-quote to start field name\n at [line: 1, column: 2]" - } - ] -} diff --git a/legacy/src/test/resources/results/boolean_json.json b/legacy/src/test/resources/results/boolean_json.json deleted file mode 100644 index 88471801..00000000 --- a/legacy/src/test/resources/results/boolean_json.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "severity": "error", - "code": "processing", - "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: HAPI-1859: Content does not appear to be FHIR JSON, first non-whitespace character was: 't' (must be '{')" - } - ] -} diff --git a/legacy/src/test/resources/results/empty.json b/legacy/src/test/resources/results/empty.json deleted file mode 100644 index 8ad8d892..00000000 --- a/legacy/src/test/resources/results/empty.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "severity": "error", - "code": "processing", - "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: HAPI-1857: Did not find any content to parse" - } - ] -} diff --git a/legacy/src/test/resources/results/invalidBundle.json b/legacy/src/test/resources/results/invalidBundle.json deleted file mode 100644 index 84810782..00000000 --- a/legacy/src/test/resources/results/invalidBundle.json +++ /dev/null @@ -1,431 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1082 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Bundle_BUNDLE_Entry_NoFullUrl" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Bundle_BUNDLE_Entry_NoFullUrl" - } - ] - }, - "diagnostics": "Bundle entry missing fullUrl", - "location": [ - "Bundle.entry[0]", - "Line[1] Col[1082]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1081 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[0].resource/*MessageHeader/0a1fd9ef-a3d5-4e95-84cd-552070a03086*/", - "Line[1] Col[1081]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3724 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/", - "Line[1] Col[3724]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2030 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[2030]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2030 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#15517911000001104)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[2030]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2028 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Unable to validate medication codes", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[2028]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2176 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Reference_REF_CantMatchChoice" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Reference_REF_CantMatchChoice" - } - ] - }, - "diagnostics": "Unable to find a match for profile urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666 among choices: https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-EPSLegal", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.requester", - "Line[1] Col[2176]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2176 - } - ], - "severity": "information", - "code": "processing", - "diagnostics": "Details for urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666 matching against profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-EPSLegal - Bundle.entry[4].resource/*PractitionerRole/null*/: PractitionerRole.code: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-EPSLegal)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.requester", - "Line[1] Col[2176]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3034 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.dosageInstruction[0].route", - "Line[1] Col[3034]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3130 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.dosageInstruction[0].method", - "Line[1] Col[3130]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4325 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[2].resource/*Patient/null*/", - "Line[1] Col[4325]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4738 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[3].resource/*Practitioner/null*/", - "Line[1] Col[4738]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4738 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: prac-gmc: 'GMC must be of the format CNNNNNNN' (defined in https://fhir.nhs.uk/StructureDefinition/NHSDigital-Practitioner)", - "location": [ - "Bundle.entry[3].resource/*Practitioner/null*/", - "Line[1] Col[4738]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 5328 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[4].resource/*PractitionerRole/null*/", - "Line[1] Col[5328]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 5328 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: role-spurious: 'Spurious Code format must be G6NNNNNN or G7NNNNNN'", - "location": [ - "Bundle.entry[4].resource/*PractitionerRole/null*/", - "Line[1] Col[5328]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 5974 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[5].resource/*Organization/null*/", - "Line[1] Col[5974]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 9357 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[6].resource/*Provenance/null*/", - "Line[1] Col[9357]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1082 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "BUNDLE_BUNDLE_ENTRY_FULLURL_REQUIRED" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "BUNDLE_BUNDLE_ENTRY_FULLURL_REQUIRED" - } - ] - }, - "diagnostics": "Except for transactions and batches, each entry in a Bundle must have a fullUrl which is the identity of the resource in the entry", - "location": [ - "Bundle.entry[0]", - "Line[1] Col[1082]" - ] - } - ] -} diff --git a/legacy/src/test/resources/results/invalidOperationOutcome.json b/legacy/src/test/resources/results/invalidOperationOutcome.json deleted file mode 100644 index 9a26e5dd..00000000 --- a/legacy/src/test/resources/results/invalidOperationOutcome.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 169 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "OperationOutcome.issue: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-OperationOutcome|1.1.1)", - "location": [ - "OperationOutcome", - "Line[1] Col[169]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 169 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "OperationOutcome", - "Line[1] Col[169]" - ] - } - ] -} diff --git a/legacy/src/test/resources/results/invalidParameters.json b/legacy/src/test/resources/results/invalidParameters.json deleted file mode 100644 index 54260ed6..00000000 --- a/legacy/src/test/resources/results/invalidParameters.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 63 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "http://hl7.org/fhir/StructureDefinition/Parameters#inv-1" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "http://hl7.org/fhir/StructureDefinition/Parameters#inv-1" - } - ] - }, - "diagnostics": "Constraint failed: inv-1: 'A parameter must have one and only one of (value, resource, part)'", - "location": [ - "Parameters.parameter[0]", - "Line[1] Col[63]" - ] - } - ] -} diff --git a/legacy/src/test/resources/results/missingHeader.json b/legacy/src/test/resources/results/missingHeader.json deleted file mode 100644 index f59f1f0c..00000000 --- a/legacy/src/test/resources/results/missingHeader.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "severity": "error", - "code": "processing", - "diagnostics": "No MessageHeader found.", - "expression": [ - "Bundle.entry" - ] - } - ] -} diff --git a/legacy/src/test/resources/results/null_java.json b/legacy/src/test/resources/results/null_java.json deleted file mode 100644 index 27be4901..00000000 --- a/legacy/src/test/resources/results/null_java.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "severity": "error", - "code": "processing", - "diagnostics": "Cannot invoke \"String.length()\" because \"s\" is null" - } - ] -} diff --git a/legacy/src/test/resources/results/null_json.json b/legacy/src/test/resources/results/null_json.json deleted file mode 100644 index 49593577..00000000 --- a/legacy/src/test/resources/results/null_json.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "severity": "error", - "code": "processing", - "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: HAPI-1859: Content does not appear to be FHIR JSON, first non-whitespace character was: 'n' (must be '{')" - } - ] -} diff --git a/legacy/src/test/resources/results/number_json.json b/legacy/src/test/resources/results/number_json.json deleted file mode 100644 index f821bbb7..00000000 --- a/legacy/src/test/resources/results/number_json.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "severity": "error", - "code": "processing", - "diagnostics": "HAPI-1861: Failed to parse JSON encoded FHIR content: HAPI-1859: Content does not appear to be FHIR JSON, first non-whitespace character was: '1' (must be '{')" - } - ] -} diff --git a/legacy/src/test/resources/results/psu_nhs_digital.json b/legacy/src/test/resources/results/psu_nhs_digital.json deleted file mode 100644 index f43818cf..00000000 --- a/legacy/src/test/resources/results/psu_nhs_digital.json +++ /dev/null @@ -1,210 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1004 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", - "Line[1] Col[1004]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1004 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "Task.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", - "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", - "Line[1] Col[1004]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1004 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "Task.code: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", - "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", - "Line[1] Col[1004]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1004 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "Task.authoredOn: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", - "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", - "Line[1] Col[1004]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1004 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "Task.requester: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", - "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", - "Line[1] Col[1004]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 625 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_1_CC" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_1_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'EPSTaskBusinessPrescriptionStatus' (https://fhir.nhs.uk/ValueSet/DM-task-business-status|1.0.0), and a coding from this value set is required) (codes = https://fhir.nhs.uk/CodeSystem/task-businessStatus-nppt#Dispatched)", - "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/.businessStatus", - "Line[1] Col[625]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 623 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "Task.businessStatus.coding.display: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS)", - "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/.businessStatus.coding[0]", - "Line[1] Col[623]" - ] - } - ] -} diff --git a/legacy/src/test/resources/results/psu_update.json b/legacy/src/test/resources/results/psu_update.json deleted file mode 100644 index a0682728..00000000 --- a/legacy/src/test/resources/results/psu_update.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 851 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[0].resource/*Task/4d70678c-81e4-4ff4-8c67-17596fd0aa46*/", - "Line[1] Col[851]" - ] - } - ] -} diff --git a/legacy/src/test/resources/results/searchSet.json b/legacy/src/test/resources/results/searchSet.json deleted file mode 100644 index 2e53ede9..00000000 --- a/legacy/src/test/resources/results/searchSet.json +++ /dev/null @@ -1,2396 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1227 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1227]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1227 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1227]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1227 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1227]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1227 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1227]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 501 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#39732311000001104)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[501]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 499 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "This_element_does_not_match_any_known_slice_" - } - ], - "severity": "information", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "This_element_does_not_match_any_known_slice_" - } - ] - }, - "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[499]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 501 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[501]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 779 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[779]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 779 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[779]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 958 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_1_CC" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_1_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.courseOfTherapyType", - "Line[1] Col[958]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1186 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[1186]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1186 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[1186]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2326 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/", - "Line[1] Col[2326]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2326 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/", - "Line[1] Col[2326]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2326 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/", - "Line[1] Col[2326]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2326 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/", - "Line[1] Col[2326]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1600 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#322341003)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[1600]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1598 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "This_element_does_not_match_any_known_slice_" - } - ], - "severity": "information", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "This_element_does_not_match_any_known_slice_" - } - ] - }, - "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[1598]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1600 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[1600]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1878 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[1878]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1878 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[1878]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2057 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_1_CC" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_1_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.courseOfTherapyType", - "Line[1] Col[2057]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2285 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[2285]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2285 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[2285]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3438 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/", - "Line[1] Col[3438]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3438 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/", - "Line[1] Col[3438]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3438 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/", - "Line[1] Col[3438]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3438 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/", - "Line[1] Col[3438]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2712 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#321080004)", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[2712]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2710 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "This_element_does_not_match_any_known_slice_" - } - ], - "severity": "information", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "This_element_does_not_match_any_known_slice_" - } - ] - }, - "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[2710]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2712 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[2712]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2990 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[2990]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2990 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[2990]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3169 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_1_CC" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_1_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.courseOfTherapyType", - "Line[1] Col[3169]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3397 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[3397]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3397 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[3397]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4538 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/", - "Line[1] Col[4538]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4538 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/", - "Line[1] Col[4538]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4538 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/", - "Line[1] Col[4538]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4538 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/", - "Line[1] Col[4538]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3812 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#324252006)", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[3812]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3810 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "This_element_does_not_match_any_known_slice_" - } - ], - "severity": "information", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "This_element_does_not_match_any_known_slice_" - } - ] - }, - "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[3810]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3812 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[3812]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4090 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[4090]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4090 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[4090]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4269 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_1_CC" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_1_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.courseOfTherapyType", - "Line[1] Col[4269]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4497 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[4497]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4497 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[4497]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4934 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[4].resource/*PractitionerRole/56166769-c1c4-4d07-afa8-132b5dfca666*/", - "Line[1] Col[4934]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 5225 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[5].resource/*Practitioner/a8c85454-f8cb-498d-9629-78e2cb5fa47a*/", - "Line[1] Col[5225]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 5792 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[6].resource/*Organization/3b4b03a5-52ba-4ba6-9b82-70350aa109d8*/", - "Line[1] Col[5792]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 6406 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[7].resource/*Organization/afb07f8b-e8d7-4cad-895d-494e6b35b2a1*/", - "Line[1] Col[6406]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1149 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1149]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1149 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1149]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1149 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1149]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1149 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1149]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 497 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#324252006)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[497]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 495 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "This_element_does_not_match_any_known_slice_" - } - ], - "severity": "information", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "This_element_does_not_match_any_known_slice_" - } - ] - }, - "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[495]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 497 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[497]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 775 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[775]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 775 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[775]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 954 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_1_CC" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_1_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.courseOfTherapyType", - "Line[1] Col[954]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1108 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[1108]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1108 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[1108]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1545 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[1].resource/*PractitionerRole/815c6eb3-41f8-4f48-9e0d-2983624d4f90*/", - "Line[1] Col[1545]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1840 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[2].resource/*Practitioner/acd5b009-c78f-40f2-a48b-b38ac72de992*/", - "Line[1] Col[1840]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2403 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[3].resource/*Organization/9683c147-ddad-41d9-9858-6e585c3f04df*/", - "Line[1] Col[2403]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Bundle_BUNDLE_Not_Local" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Bundle_BUNDLE_Not_Local" - } - ] - }, - "diagnostics": "URN reference is not locally contained within the bundle urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.requester" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1227 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1227]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1227 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.identifier: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1227]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1227 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.identifier:prescriptionOrderItem': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1227]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1227 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dosageInstruction: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/", - "Line[1] Col[1227]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 501 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = https://snomed.info/sct#39732311000001104)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[501]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 499 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "This_element_does_not_match_any_known_slice_" - } - ], - "severity": "information", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "This_element_does_not_match_any_known_slice_" - } - ] - }, - "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept (this may not be a problem, but you should check that it's not intended to match a slice) - Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]: Does not match slice 'SNOMED' (discriminator: ('http://snomed.info/sct' in system))", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[499]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 501 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'CodeableConcept.coding:SNOMED': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-CodeableConcept). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[501]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 779 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.groupIdentifier.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[779]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 779 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.groupIdentifier", - "Line[1] Col[779]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 958 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_1_CC" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_1_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'Medication Request Course of Therapy Codes' (https://fhir.nhs.uk/ValueSet/DM-medicationrequest-course-of-therapy|1.0.0), and a coding from this value set is required) (codes = https://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy#acute)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.courseOfTherapyType", - "Line[1] Col[958]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1186 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum" - } - ] - }, - "diagnostics": "MedicationRequest.dispenseRequest.extension: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest)", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[1186]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1186 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Validation_VAL_Profile_Minimum_SLICE" - } - ], - "severity": "error", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Validation_VAL_Profile_Minimum_SLICE" - } - ] - }, - "diagnostics": "Slice 'MedicationRequest.dispenseRequest.extension:performerSiteType': a matching slice is required, but not found (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest). Note that other slices are allowed in addition to this required slice", - "location": [ - "Bundle.entry[0].resource/*MedicationRequest/null*/.dispenseRequest", - "Line[1] Col[1186]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1623 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[1].resource/*PractitionerRole/815c6eb3-41f8-4f48-9e0d-2983624d4f90*/", - "Line[1] Col[1623]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1918 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[2].resource/*Practitioner/acd5b009-c78f-40f2-a48b-b38ac72de992*/", - "Line[1] Col[1918]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2481 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[3].resource/*Organization/9683c147-ddad-41d9-9858-6e585c3f04df*/", - "Line[1] Col[2481]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3089 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[4].resource/*Organization/154dcc4a-0006-4272-9758-9dcb8d95ce8b*/", - "Line[1] Col[3089]" - ] - } - ] -} diff --git a/legacy/src/test/resources/results/stepFunctionResult.json b/legacy/src/test/resources/results/stepFunctionResult.json deleted file mode 100644 index 0124a66b..00000000 --- a/legacy/src/test/resources/results/stepFunctionResult.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 787 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[0].resource/*Task/null*/", - "Line[1] Col[787]" - ] - } - ] -} diff --git a/legacy/src/test/resources/results/successfulOperationOutcome.json b/legacy/src/test/resources/results/successfulOperationOutcome.json deleted file mode 100644 index 84eb7bda..00000000 --- a/legacy/src/test/resources/results/successfulOperationOutcome.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 229 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "OperationOutcome", - "Line[1] Col[229]" - ] - } - ] -} diff --git a/legacy/src/test/resources/results/validBundle.json b/legacy/src/test/resources/results/validBundle.json deleted file mode 100644 index d16c7f91..00000000 --- a/legacy/src/test/resources/results/validBundle.json +++ /dev/null @@ -1,674 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 1344 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[0].resource/*MessageHeader/null*/", - "Line[1] Col[1344]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3705 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/", - "Line[1] Col[3705]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2244 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[2244]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2244 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#39732311000001104)", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[2244]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 2242 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Unable to validate medication codes", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[2242]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 3098 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[1].resource/*MedicationRequest/null*/.dosageInstruction[0].route", - "Line[1] Col[3098]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 6061 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/", - "Line[1] Col[6061]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4600 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[4600]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4600 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#322341003)", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[4600]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 4598 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Unable to validate medication codes", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[4598]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 5454 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[2].resource/*MedicationRequest/null*/.dosageInstruction[0].route", - "Line[1] Col[5454]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 8430 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/", - "Line[1] Col[8430]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 6969 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[6969]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 6969 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#321080004)", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[6969]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 6967 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Unable to validate medication codes", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[6967]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 7823 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[3].resource/*MedicationRequest/null*/.dosageInstruction[0].route", - "Line[1] Col[7823]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 10784 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[4].resource/*MedicationRequest/null*/", - "Line[1] Col[10784]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 9323 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[4].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[9323]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 9323 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_TX_NoValid_2_CC" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_TX_NoValid_2_CC" - } - ] - }, - "diagnostics": "None of the codings provided are in the value set 'NHS Digital Medication Code' (https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationCode|2.1.0), and a coding should come from this value set unless it has no suitable code (note that the validator cannot judge what is suitable) (codes = http://snomed.info/sct#324252006)", - "location": [ - "Bundle.entry[4].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept)", - "Line[1] Col[9323]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 9321 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Unable to validate medication codes", - "location": [ - "Bundle.entry[4].resource/*MedicationRequest/null*/.medication.ofType(CodeableConcept).coding[0]", - "Line[1] Col[9321]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 10177 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unable to expand ValueSet because CodeSystem has CodeSystem.content=not-present but contents were not found: http://snomed.info/sct", - "location": [ - "Bundle.entry[4].resource/*MedicationRequest/null*/.dosageInstruction[0].route", - "Line[1] Col[10177]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 11388 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[5].resource/*Patient/null*/", - "Line[1] Col[11388]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 12117 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id", - "valueString": "Terminology_PassThrough_TX_Message" - } - ], - "severity": "warning", - "code": "processing", - "details": { - "coding": [ - { - "system": "http://hl7.org/fhir/java-core-messageId", - "code": "Terminology_PassThrough_TX_Message" - } - ] - }, - "diagnostics": "Unknown code in fragment CodeSystem 'https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode#R8000'", - "location": [ - "Bundle.entry[6].resource/*PractitionerRole/null*/.code[0]", - "Line[1] Col[12117]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 12185 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[6].resource/*PractitionerRole/null*/", - "Line[1] Col[12185]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 12655 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[7].resource/*Practitioner/null*/", - "Line[1] Col[12655]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 12655 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: prac-gmc: 'GMC must be of the format CNNNNNNN' (defined in https://fhir.nhs.uk/StructureDefinition/NHSDigital-Practitioner)", - "location": [ - "Bundle.entry[7].resource/*Practitioner/null*/", - "Line[1] Col[12655]" - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line", - "valueInteger": 1 - }, - { - "url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col", - "valueInteger": 13428 - } - ], - "severity": "warning", - "code": "processing", - "diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)", - "location": [ - "Bundle.entry[8].resource/*Organization/null*/", - "Line[1] Col[13428]" - ] - } - ] -} diff --git a/legacy/src/test/resources/results/validParameters.json b/legacy/src/test/resources/results/validParameters.json deleted file mode 100644 index 08a3fa46..00000000 --- a/legacy/src/test/resources/results/validParameters.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "severity": "information", - "code": "informational", - "diagnostics": "No issues detected during validation" - } - ] -} diff --git a/legacy/src/test/resources/results/validSimpleBundle.json b/legacy/src/test/resources/results/validSimpleBundle.json deleted file mode 100644 index 08a3fa46..00000000 --- a/legacy/src/test/resources/results/validSimpleBundle.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "resourceType": "OperationOutcome", - "issue": [ - { - "severity": "information", - "code": "informational", - "diagnostics": "No issues detected during validation" - } - ] -} diff --git a/dual/licenses/allowedMissingLicense.xml b/licenses/allowedMissingLicense.xml similarity index 100% rename from dual/licenses/allowedMissingLicense.xml rename to licenses/allowedMissingLicense.xml diff --git a/dual/licenses/licenses.xml b/licenses/licenses.xml similarity index 100% rename from dual/licenses/licenses.xml rename to licenses/licenses.xml diff --git a/dual/pom.xml b/pom.xml similarity index 99% rename from dual/pom.xml rename to pom.xml index 47f42cf1..cdbba12c 100644 --- a/dual/pom.xml +++ b/pom.xml @@ -161,6 +161,7 @@ + FHIRValidator-legacy @@ -210,7 +211,8 @@ - + + FHIRValidator-current diff --git a/scripts/download_dependencies.py b/scripts/download_dependencies.py index 7d6dd048..eef3eb30 100755 --- a/scripts/download_dependencies.py +++ b/scripts/download_dependencies.py @@ -4,18 +4,17 @@ import requests -def download_dependencies(manifest_file, path): - with open(f"{path}/src/main/resources/{manifest_file}", "r") as manifestFile: +def download_dependencies(manifest_file): + with open(f"src/main/resources/{manifest_file}", "r") as manifestFile: manifestStr = manifestFile.read() manifest = json.loads(manifestStr) for entry in manifest: packageName = entry["packageName"] version = entry["version"] packageData = requests.get(f"https://packages.simplifier.net/{packageName}/{version}").content - with open(f"{path}/src/main/resources/{packageName}-{version}.tgz", "wb") as packageFile: + with open(f"src/main/resources/{packageName}-{version}.tgz", "wb") as packageFile: packageFile.write(packageData) -download_dependencies("nhs_digital.manifest.json", "latest") -download_dependencies("uk_core.manifest.json", "latest") -download_dependencies("nhs_digital.manifest.json", "legacy") +download_dependencies("nhs_digital.manifest.json") +download_dependencies("uk_core.manifest.json") diff --git a/dual/src/current/java/software/nhs/fhirvalidator/configuration/GetValueSetImpl.java b/src/current/java/software/nhs/fhirvalidator/configuration/GetValueSetImpl.java similarity index 100% rename from dual/src/current/java/software/nhs/fhirvalidator/configuration/GetValueSetImpl.java rename to src/current/java/software/nhs/fhirvalidator/configuration/GetValueSetImpl.java diff --git a/dual/src/legacy/java/software/nhs/fhirvalidator/configuration/GetValueSetImpl.java b/src/legacy/java/software/nhs/fhirvalidator/configuration/GetValueSetImpl.java similarity index 100% rename from dual/src/legacy/java/software/nhs/fhirvalidator/configuration/GetValueSetImpl.java rename to src/legacy/java/software/nhs/fhirvalidator/configuration/GetValueSetImpl.java diff --git a/dual/src/main/java/software/nhs/fhirvalidator/configuration/GetValueSetInterface.java b/src/main/java/software/nhs/fhirvalidator/configuration/GetValueSetInterface.java similarity index 100% rename from dual/src/main/java/software/nhs/fhirvalidator/configuration/GetValueSetInterface.java rename to src/main/java/software/nhs/fhirvalidator/configuration/GetValueSetInterface.java diff --git a/dual/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java b/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java similarity index 100% rename from dual/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java rename to src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java diff --git a/dual/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java b/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java similarity index 100% rename from dual/src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java rename to src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java diff --git a/dual/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java b/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java similarity index 100% rename from dual/src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java rename to src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java diff --git a/dual/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java b/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java similarity index 100% rename from dual/src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java rename to src/main/java/software/nhs/fhirvalidator/models/SimplifierPackage.java diff --git a/dual/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java b/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java similarity index 100% rename from dual/src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java rename to src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java diff --git a/dual/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java b/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java similarity index 100% rename from dual/src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java rename to src/main/java/software/nhs/fhirvalidator/service/ImplementationGuideParser.java diff --git a/dual/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java b/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java similarity index 100% rename from dual/src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java rename to src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java diff --git a/dual/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java b/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java similarity index 100% rename from dual/src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java rename to src/main/java/software/nhs/fhirvalidator/util/FhirUtils.java diff --git a/dual/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java b/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java similarity index 100% rename from dual/src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java rename to src/main/java/software/nhs/fhirvalidator/util/OperationOutcomeUtils.java diff --git a/dual/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java b/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java similarity index 100% rename from dual/src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java rename to src/main/java/software/nhs/fhirvalidator/util/ResourceUtils.java diff --git a/dual/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml similarity index 100% rename from dual/src/main/resources/log4j2.xml rename to src/main/resources/log4j2.xml diff --git a/dual/src/main/resources/nhs_digital.manifest.json b/src/main/resources/nhs_digital.manifest.json similarity index 100% rename from dual/src/main/resources/nhs_digital.manifest.json rename to src/main/resources/nhs_digital.manifest.json diff --git a/dual/src/main/resources/primerPayload.json b/src/main/resources/primerPayload.json similarity index 100% rename from dual/src/main/resources/primerPayload.json rename to src/main/resources/primerPayload.json diff --git a/dual/src/main/resources/uk_core.manifest.json b/src/main/resources/uk_core.manifest.json similarity index 100% rename from dual/src/main/resources/uk_core.manifest.json rename to src/main/resources/uk_core.manifest.json diff --git a/dual/src/test/java/software/nhs/fhirvalidator/HandlerTest.java b/src/test/java/software/nhs/fhirvalidator/HandlerTest.java similarity index 100% rename from dual/src/test/java/software/nhs/fhirvalidator/HandlerTest.java rename to src/test/java/software/nhs/fhirvalidator/HandlerTest.java diff --git a/dual/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java b/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java similarity index 99% rename from dual/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java rename to src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java index cbeebd35..7c469460 100644 --- a/dual/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java +++ b/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java @@ -42,7 +42,7 @@ Boolean issueListHasDiagnosticMessageAtSeverity(List Date: Tue, 6 May 2025 10:21:28 +0000 Subject: [PATCH 23/35] rollback sonar changes --- sonar-project.properties | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/sonar-project.properties b/sonar-project.properties index 1f9904fa..b6d4e47e 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,14 +1,14 @@ sonar.organization=nhsdigital sonar.projectKey=NHSDigital_eps-FHIR-validator-lambda -sonar.sources=latest/src/main -sonar.tests=latest/src/test -sonar.java.binaries=latest/target/classes -sonar.java.test.binaries=latest/target/test-classes +sonar.sources=src/main +sonar.tests=src/test +sonar.java.binaries=target/classes +sonar.java.test.binaries=target/test-classes sonar.host.url=https://sonarcloud.io -sonar.coverage.exclusions=latest/src/test/** -sonar.cpd.exclusions=latest/src/test/** +sonar.coverage.exclusions=src/test/** +sonar.cpd.exclusions=src/test/** sonar.java.coveragePlugin=jacoco -sonar.coverage.jacoco.xmlReportPaths=latest/target/site/jacoco/jacoco.xml +sonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml From 0fbe072363a331687479fe4a3ef37730f393d8e7 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 6 May 2025 10:23:40 +0000 Subject: [PATCH 24/35] fix makefile --- Makefile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 978453ec..9661a381 100644 --- a/Makefile +++ b/Makefile @@ -55,8 +55,7 @@ check-licenses-python: scripts/check_python_licenses.sh check-licenses-java: - cd latest && mvn validate - cd legacy && mvn validate + mvn validate show-unused-dependencies: mvn dependency:analyze @@ -81,7 +80,7 @@ deep-clean: clean # build targets compile: download-dependencies - cd latest && mvn package + mvn package -Pcurrent download-dependencies: poetry run scripts/download_dependencies.py From 83195ad69e1ab9ad2368e038d3836946f4e32ee7 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 6 May 2025 10:28:20 +0000 Subject: [PATCH 25/35] skip tests when building for sam --- Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 9661a381..7cbaf63f 100644 --- a/Makefile +++ b/Makefile @@ -39,13 +39,14 @@ test: download-dependencies # build targets for SAM # the target must be build- +# note - we skip tests here as they will have already been run as part of the pipeline build-FHIRValidatorUKCore: download-dependencies - mvn clean package -Pcurrent + mvn clean package -Pcurrent -Dmaven.test.skip=true mkdir -p $(ARTIFACTS_DIR)/lib cp ./target/FHIRValidator-current.jar $(ARTIFACTS_DIR)/lib/ build-FHIRValidatorNHSDigital: download-dependencies - mvn clean package -Plegacy + mvn clean package -Plegacy -Dmaven.test.skip=true mkdir -p $(ARTIFACTS_DIR)/lib cp ./target/FHIRValidator-legacy.jar $(ARTIFACTS_DIR)/lib/ From ed87dd1a04b151d39e423d49ea9f680b6048ddc9 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 6 May 2025 10:50:28 +0000 Subject: [PATCH 26/35] fix signing --- pom.xml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index cdbba12c..1e285624 100644 --- a/pom.xml +++ b/pom.xml @@ -370,15 +370,20 @@ shade + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + - - META-INF/TE-050AC.SF - META-INF/TE-050AC.RSA - From f426dc006944503175f73ad7dc4d7b63b56e70b5 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 6 May 2025 12:02:34 +0000 Subject: [PATCH 27/35] correct outputs --- Makefile | 7 +- SAMtemplates/lambda_resources.yaml | 5 + SAMtemplates/main_template.yaml | 144 +++++++++++++++++++++++------ 3 files changed, 126 insertions(+), 30 deletions(-) diff --git a/Makefile b/Makefile index 7cbaf63f..9de5fcd4 100644 --- a/Makefile +++ b/Makefile @@ -45,11 +45,16 @@ build-FHIRValidatorUKCore: download-dependencies mkdir -p $(ARTIFACTS_DIR)/lib cp ./target/FHIRValidator-current.jar $(ARTIFACTS_DIR)/lib/ -build-FHIRValidatorNHSDigital: download-dependencies +build-FHIRValidatorNHSDigitalLegacy: download-dependencies mvn clean package -Plegacy -Dmaven.test.skip=true mkdir -p $(ARTIFACTS_DIR)/lib cp ./target/FHIRValidator-legacy.jar $(ARTIFACTS_DIR)/lib/ +build-FHIRValidatorNHSDigitalCurrent: download-dependencies + mvn clean package -Pcurrent -Dmaven.test.skip=true + mkdir -p $(ARTIFACTS_DIR)/lib + cp ./target/FHIRValidator-legacy.jar $(ARTIFACTS_DIR)/lib/ + check-licenses: check-licenses-python check-licenses-java check-licenses-python: diff --git a/SAMtemplates/lambda_resources.yaml b/SAMtemplates/lambda_resources.yaml index 69f6fbfb..b5d89dd0 100644 --- a/SAMtemplates/lambda_resources.yaml +++ b/SAMtemplates/lambda_resources.yaml @@ -136,6 +136,11 @@ Outputs: Value: !GetAtt ExecuteLambdaManagedPolicy.PolicyArn Export: Name: !Sub ${StackName}:${ExecutePolicyExportName} + ExecuteLambdaPolicyArnNewFormat: + Description: Lambda execution policy arn + Value: !GetAtt ExecuteLambdaManagedPolicy.PolicyArn + Export: + Name: !Sub ${StackName}:functions:${LambdaName}:ExecutePolicy:Arn LambdaRoleArn: Description: "LambdaRole ARN" Value: !GetAtt LambdaRole.Arn diff --git a/SAMtemplates/main_template.yaml b/SAMtemplates/main_template.yaml index cd87262d..baa4a629 100644 --- a/SAMtemplates/main_template.yaml +++ b/SAMtemplates/main_template.yaml @@ -90,7 +90,19 @@ Resources: - LAMBDA_INSIDE_VPC - LAMBDA_CONCURRENCY_CHECK - FHIRValidatorNHSDigitalResources: + SecurityGroupWithoutEgress: + Type: AWS::EC2::SecurityGroup + Properties: + GroupDescription: Limits security group egress traffic + SecurityGroupEgress: + - CidrIp: 127.0.0.1/32 + IpProtocol: "-1" + SecurityGroupIngress: + - CidrIp: 0.0.0.0/0 + IpProtocol: "-1" + VpcId: !ImportValue vpc-resources:VpcId + + FHIRValidatorNHSDigitalLegacyResources: Type: AWS::Serverless::Application Properties: Location: lambda_resources.yaml @@ -100,30 +112,69 @@ Resources: SplunkSubscriptionFilterRole: !ImportValue lambda-resources:SplunkSubscriptionFilterRole SplunkDeliveryStream: !ImportValue lambda-resources:SplunkDeliveryStream EnableSplunk: "true" - LambdaName: !Sub "${AWS::StackName}-FHIRValidatorNHSDigital" - LambdaArn: !Sub arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:${AWS::StackName}-FHIRValidatorNHSDigital + LambdaName: !Sub "${AWS::StackName}-FHIRValidatorNHSDigitalLegacy" + LambdaArn: !Sub arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:${AWS::StackName}-FHIRValidatorNHSDigitalLegacy LogRetentionDays: !Ref LogRetentionDays - ExecutePolicyExportName: FHIRValidatorNHSDigitalExecuteLambdaPolicyArn + ExecutePolicyExportName: FHIRValidatorNHSDigitalLegacyExecuteLambdaPolicyArn - sgwithoutegress: - Type: AWS::EC2::SecurityGroup + FHIRValidatorNHSDigitalLegacy: + Type: AWS::Serverless::Function Properties: - GroupDescription: Limits security group egress traffic - SecurityGroupEgress: - - CidrIp: 127.0.0.1/32 - IpProtocol: "-1" - SecurityGroupIngress: - - CidrIp: 0.0.0.0/0 - IpProtocol: "-1" - VpcId: vpc-078cd165c7acf6f63 + FunctionName: !Sub "${AWS::StackName}-FHIRValidatorNHSDigitalLegacy" + CodeUri: ../ + Handler: software.nhs.fhirvalidator.handler.HandlerStream::handleRequest + Role: !GetAtt FHIRValidatorNHSDigitalLegacyResources.Outputs.LambdaRoleArn + SnapStart: + ApplyOn: PublishedVersions + AutoPublishAlias: snap + Timeout: 600 + MemorySize: 4096 + Architectures: + - x86_64 + Runtime: java21 + Layers: + - !Sub "arn:aws:lambda:${AWS::Region}:580247275435:layer:LambdaInsightsExtension:56" + VpcConfig: + SecurityGroupIds: + - !Ref SecurityGroupWithoutEgress + SubnetIds: + - !ImportValue vpc-resources:PrivateSubnetA + - !ImportValue vpc-resources:PrivateSubnetB + - !ImportValue vpc-resources:PrivateSubnetC + Environment: + Variables: + AWS_LAMBDA_LOG_LEVEL: !Ref LogLevel + POWERTOOLS_LOG_LEVEL: !Ref LogLevel + PROFILE_MANIFEST_FILE: nhs_digital.manifest.json + Metadata: + BuildMethod: makefile + guard: + SuppressedRules: + - LAMBDA_DLQ_CHECK + - LAMBDA_CONCURRENCY_CHECK - FHIRValidatorNHSDigital: + FHIRValidatorNHSDigitalCurrentResources: + Type: AWS::Serverless::Application + Properties: + Location: lambda_resources.yaml + Parameters: + StackName: !Ref AWS::StackName + CloudWatchKMSKey: !ImportValue account-resources:CloudwatchLogsKmsKeyArn + SplunkSubscriptionFilterRole: !ImportValue lambda-resources:SplunkSubscriptionFilterRole + SplunkDeliveryStream: !ImportValue lambda-resources:SplunkDeliveryStream + EnableSplunk: "true" + LambdaName: !Sub "${AWS::StackName}-FHIRValidatorNHSDigitalCurrent" + LambdaArn: !Sub arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:${AWS::StackName}-FHIRValidatorNHSDigitalCurrent + LogRetentionDays: !Ref LogRetentionDays + ExecutePolicyExportName: FHIRValidatorNHSDigitalCurrentExecuteLambdaPolicyArn + + FHIRValidatorNHSDigitalCurrent: Type: AWS::Serverless::Function Properties: - FunctionName: !Sub "${AWS::StackName}-FHIRValidatorNHSDigital" + FunctionName: !Sub "${AWS::StackName}-FHIRValidatorNHSDigitalCurrent" CodeUri: ../ Handler: software.nhs.fhirvalidator.handler.HandlerStream::handleRequest - Role: !GetAtt FHIRValidatorNHSDigitalResources.Outputs.LambdaRoleArn + Role: !GetAtt FHIRValidatorNHSDigitalCurrentResources.Outputs.LambdaRoleArn SnapStart: ApplyOn: PublishedVersions AutoPublishAlias: snap @@ -136,11 +187,11 @@ Resources: - !Sub "arn:aws:lambda:${AWS::Region}:580247275435:layer:LambdaInsightsExtension:56" VpcConfig: SecurityGroupIds: - - !Ref sgwithoutegress + - !Ref SecurityGroupWithoutEgress SubnetIds: - - subnet-0df16e0ac5f81607f - - subnet-0fee41653b358c179 - - subnet-02f13219e4528459b + - !ImportValue vpc-resources:PrivateSubnetA + - !ImportValue vpc-resources:PrivateSubnetB + - !ImportValue vpc-resources:PrivateSubnetC Environment: Variables: AWS_LAMBDA_LOG_LEVEL: !Ref LogLevel @@ -169,24 +220,59 @@ Outputs: Export: Name: !Join [":", [!Ref "AWS::StackName", "FHIRValidatorUKCoreLambdaName"]] + FHIRValidatorUKCoreLambdaArn: Description: Arn of the FHIR validator UK Core lambda Value: !GetAtt FHIRValidatorUKCore.Arn Export: Name: !Join [":", [!Ref "AWS::StackName", "FHIRValidatorUKCoreLambdaArn"]] - FHIRValidatorNHSDigitalLambdaName: - Description: Name of the FHIR validator NHS Digital lambda - Value: !Ref FHIRValidatorNHSDigital + FHIRValidatorNHSDigitalLegacyLambdaName: + Description: Name of the FHIR validator NHS Digital lambda using legacy hapi fhir + Value: !Ref FHIRValidatorNHSDigitalLegacy Export: Name: !Join [ ":", - [!Ref "AWS::StackName", "FHIRValidatorNHSDigitalLambdaName"], + [ + !Ref "AWS::StackName", + "functions:FHIRValidatorNHSDigitalLegacy:Name", + ], ] - FHIRValidatorNHSDigitalLambdaArn: - Description: Arn of the FHIR validator NHS Digital lambda - Value: !GetAtt FHIRValidatorNHSDigital.Arn + FHIRValidatorNHSDigitalLegacyLambdaArn: + Description: Arn of the FHIR validator NHS Digital lambda using legacy hapi fhir + Value: !GetAtt FHIRValidatorNHSDigitalLegacy.Arn + Export: + Name: + !Join [ + ":", + [ + !Ref "AWS::StackName", + "functions:FHIRValidatorNHSDigitalLegacy:Arn", + ], + ] + + FHIRValidatorNHSDigitalCurrentLambdaName: + Description: Name of the FHIR validator NHS Digital lambda using current hapi fhir + Value: !Ref FHIRValidatorNHSDigitalCurrent Export: Name: - !Join [":", [!Ref "AWS::StackName", "FHIRValidatorNHSDigitalLambdaArn"]] + !Join [ + ":", + [ + !Ref "AWS::StackName", + "functions:FHIRValidatorNHSDigitalCurrent:Name", + ], + ] + FHIRValidatorNHSDigitalCurrentLambdaArn: + Description: Arn of the FHIR validator NHS Digital lambda using current hapi fhir + Value: !GetAtt FHIRValidatorNHSDigitalCurrent.Arn + Export: + Name: + !Join [ + ":", + [ + !Ref "AWS::StackName", + "functions:FHIRValidatorNHSDigitalCurrent:Arn", + ], + ] From c5efec3a281a1b9eae63da91eda12347b93c8046 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 6 May 2025 12:21:28 +0000 Subject: [PATCH 28/35] correct build --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 9de5fcd4..fc6a4295 100644 --- a/Makefile +++ b/Makefile @@ -53,7 +53,7 @@ build-FHIRValidatorNHSDigitalLegacy: download-dependencies build-FHIRValidatorNHSDigitalCurrent: download-dependencies mvn clean package -Pcurrent -Dmaven.test.skip=true mkdir -p $(ARTIFACTS_DIR)/lib - cp ./target/FHIRValidator-legacy.jar $(ARTIFACTS_DIR)/lib/ + cp ./target/FHIRValidator-current.jar $(ARTIFACTS_DIR)/lib/ check-licenses: check-licenses-python check-licenses-java From e5870782ae5e9122e95a564084f2d2a4a5e5150b Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Wed, 7 May 2025 06:43:24 +0000 Subject: [PATCH 29/35] get rid of aws policy --- SAMtemplates/lambda_resources.yaml | 34 ++++++++++++++++++++---------- SAMtemplates/main_template.yaml | 22 +++++++++++++++++-- 2 files changed, 43 insertions(+), 13 deletions(-) diff --git a/SAMtemplates/lambda_resources.yaml b/SAMtemplates/lambda_resources.yaml index b5d89dd0..b26636ef 100644 --- a/SAMtemplates/lambda_resources.yaml +++ b/SAMtemplates/lambda_resources.yaml @@ -20,11 +20,6 @@ Parameters: Type: String Description: Splunk delivery stream Default: none - EnableSplunk: - Type: String - Description: Whether to use splunk - Default: false - AllowedValues: [true, false] LambdaName: Type: String Description: Name of lambda we are creating for @@ -62,9 +57,18 @@ Parameters: ] ExecutePolicyExportName: Type: String + IncludeAdditionalPolicies: + Type: String + Default: false + AdditionalPolicies: + Type: CommaDelimitedList + Description: A list of additional policies to attach the lambdas role (comma delimited). + Default: none Conditions: - ShouldUseSplunk: !Equals [true, !Ref EnableSplunk] + ShouldIncludeAdditionalPolicies: !Equals + - true + - !Ref IncludeAdditionalPolicies Resources: ExecuteLambdaManagedPolicy: @@ -89,10 +93,19 @@ Resources: Principal: Service: "lambda.amazonaws.com" Action: "sts:AssumeRole" - ManagedPolicyArns: - - !ImportValue lambda-resources:LambdaInsightsLogGroupPolicy - - !ImportValue account-resources:LambdaEncryptCloudwatchKMSPolicy - - arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole + ManagedPolicyArns: !Split + - "," + - !Join + - "," + - - !Ref LambdaManagedPolicy + - !ImportValue lambda-resources:LambdaInsightsLogGroupPolicy + - !ImportValue account-resources:CloudwatchEncryptionKMSPolicyArn + - !If + - ShouldIncludeAdditionalPolicies + - !Join + - "," + - !Ref AdditionalPolicies + - !Ref AWS::NoValue LambdaManagedPolicy: Type: AWS::IAM::ManagedPolicy @@ -122,7 +135,6 @@ Resources: KmsKeyId: !Ref CloudWatchKMSKey LambdaSplunkSubscriptionFilter: - Condition: ShouldUseSplunk Type: AWS::Logs::SubscriptionFilter Properties: RoleArn: !Ref SplunkSubscriptionFilterRole diff --git a/SAMtemplates/main_template.yaml b/SAMtemplates/main_template.yaml index baa4a629..096cb3d1 100644 --- a/SAMtemplates/main_template.yaml +++ b/SAMtemplates/main_template.yaml @@ -54,7 +54,6 @@ Resources: CloudWatchKMSKey: !ImportValue account-resources:CloudwatchLogsKmsKeyArn SplunkSubscriptionFilterRole: !ImportValue lambda-resources:SplunkSubscriptionFilterRole SplunkDeliveryStream: !ImportValue lambda-resources:SplunkDeliveryStream - EnableSplunk: "true" LambdaName: !Sub "${AWS::StackName}-FHIRValidatorUKCore" LambdaArn: !Sub arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:${AWS::StackName}-FHIRValidatorUKCore LogRetentionDays: !Ref LogRetentionDays @@ -102,6 +101,22 @@ Resources: IpProtocol: "-1" VpcId: !ImportValue vpc-resources:VpcId + LambdaVPCPolicy: + Type: AWS::IAM::ManagedPolicy + Properties: + PolicyDocument: + Version: 2012-10-17 + Statement: + - Effect: Allow + Action: + - ec2:CreateNetworkInterface + - ec2:DescribeNetworkInterfaces + - ec2:DescribeSubnets + - ec2:DeleteNetworkInterface + - ec2:AssignPrivateIpAddresses + - ec2:UnassignPrivateIpAddresses + Resource: "*" + FHIRValidatorNHSDigitalLegacyResources: Type: AWS::Serverless::Application Properties: @@ -116,6 +131,8 @@ Resources: LambdaArn: !Sub arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:${AWS::StackName}-FHIRValidatorNHSDigitalLegacy LogRetentionDays: !Ref LogRetentionDays ExecutePolicyExportName: FHIRValidatorNHSDigitalLegacyExecuteLambdaPolicyArn + IncludeAdditionalPolicies: true + AdditionalPolicies: !Ref LambdaVPCPolicy FHIRValidatorNHSDigitalLegacy: Type: AWS::Serverless::Function @@ -162,11 +179,12 @@ Resources: CloudWatchKMSKey: !ImportValue account-resources:CloudwatchLogsKmsKeyArn SplunkSubscriptionFilterRole: !ImportValue lambda-resources:SplunkSubscriptionFilterRole SplunkDeliveryStream: !ImportValue lambda-resources:SplunkDeliveryStream - EnableSplunk: "true" LambdaName: !Sub "${AWS::StackName}-FHIRValidatorNHSDigitalCurrent" LambdaArn: !Sub arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:${AWS::StackName}-FHIRValidatorNHSDigitalCurrent LogRetentionDays: !Ref LogRetentionDays ExecutePolicyExportName: FHIRValidatorNHSDigitalCurrentExecuteLambdaPolicyArn + IncludeAdditionalPolicies: true + AdditionalPolicies: !Ref LambdaVPCPolicy FHIRValidatorNHSDigitalCurrent: Type: AWS::Serverless::Function From 3577f443632384988c4746c85d6890fa039f0e9b Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Wed, 7 May 2025 07:19:08 +0000 Subject: [PATCH 30/35] fix it --- SAMtemplates/lambda_resources.yaml | 6 ++---- SAMtemplates/main_template.yaml | 1 - .../fhirvalidator/configuration/ValidatorConfiguration.java | 4 ++-- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/SAMtemplates/lambda_resources.yaml b/SAMtemplates/lambda_resources.yaml index b26636ef..8f512b54 100644 --- a/SAMtemplates/lambda_resources.yaml +++ b/SAMtemplates/lambda_resources.yaml @@ -110,8 +110,6 @@ Resources: LambdaManagedPolicy: Type: AWS::IAM::ManagedPolicy Properties: - Roles: - - !Ref LambdaRole PolicyDocument: Version: 2012-10-17 Statement: @@ -120,8 +118,8 @@ Resources: - logs:CreateLogStream - logs:PutLogEvents Resource: - - !Sub "arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:${LambdaLogGroup}" - - !Sub "arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:${LambdaLogGroup}:log-stream:*" + - !GetAtt LambdaLogGroup.Arn + - !Sub ${LambdaLogGroup.Arn}:log-stream:* LambdaLogGroup: Type: "AWS::Logs::LogGroup" diff --git a/SAMtemplates/main_template.yaml b/SAMtemplates/main_template.yaml index 096cb3d1..d1fda5b0 100644 --- a/SAMtemplates/main_template.yaml +++ b/SAMtemplates/main_template.yaml @@ -126,7 +126,6 @@ Resources: CloudWatchKMSKey: !ImportValue account-resources:CloudwatchLogsKmsKeyArn SplunkSubscriptionFilterRole: !ImportValue lambda-resources:SplunkSubscriptionFilterRole SplunkDeliveryStream: !ImportValue lambda-resources:SplunkDeliveryStream - EnableSplunk: "true" LambdaName: !Sub "${AWS::StackName}-FHIRValidatorNHSDigitalLegacy" LambdaArn: !Sub arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:${AWS::StackName}-FHIRValidatorNHSDigitalLegacy LogRetentionDays: !Ref LogRetentionDays diff --git a/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java b/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java index f95e7c8d..65fa4451 100644 --- a/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java +++ b/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java @@ -110,8 +110,8 @@ public ValidatorConfiguration(String _PROFILE_MANIFEST_FILE) { String packagePath = String.format("%s-%s.tgz", individualPackage.packageName, individualPackage.version); try (InputStream is = ClasspathUtil.loadResourceAsStream(packagePath)) { - PrePopulatedValidationSupport foo = createPrePopulatedValidationSupport(is); - supportChain.addValidationSupport(foo); + PrePopulatedValidationSupport prePopulatedValidationSupport = createPrePopulatedValidationSupport(is); + supportChain.addValidationSupport(prePopulatedValidationSupport); } try (InputStream is = ClasspathUtil.loadResourceAsStream(packagePath)) { NpmPackage pkg = NpmPackage.fromPackage(is); From 143828e54c1f53c6fb25f91f163b6972ed8c9d92 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Wed, 7 May 2025 08:47:09 +0000 Subject: [PATCH 31/35] full examples --- .../Validator_all_examples_Test.java | 67 + .../1-Prepare-Request-200_OK.json | 544 ++++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Send-200_OK.json | 582 ++++++ .../din/1-Prepare-Request-200_OK.json | 467 +++++ .../din/1-Prepare-Response-200_OK.json | 17 + .../din/1-Process-Request-Send-200_OK.json | 505 ++++++ .../IsleOfMan-1-Prepare-Request-200_OK.json | 467 +++++ .../din/Wales-1-Prepare-Request-200_OK.json | 467 +++++ .../1-Prepare-Request-200_OK.json | 468 +++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Send-200_OK.json | 506 ++++++ .../unknown/1-Prepare-Request-200_OK.json | 460 +++++ .../unknown/1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Send-200_OK.json | 498 ++++++ .../1-Prepare-Request-200_OK.json | 745 ++++++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Send-200_OK.json | 780 ++++++++ .../1-Process-Response-Send-200_OK.json | 12 + .../1-Task-Request-Release-200_OK.json | 99 ++ ...-Request-400_Missing_Endorsement_Code.json | 554 ++++++ ...ltiple-DosageInstructions-Send_200_OK.json | 805 +++++++++ ...ltiple-DosageInstructions-Send_200_OK.json | 12 + ...epare-Request-Multiple-Dosages-200_OK.json | 766 ++++++++ ...pare-Response-Multiple-Dosages-200_OK.json | 17 + .../1-Process-Request-Cancel-200_OK.json | 384 ++++ .../1-Process-Request-Send-200_OK.json | 379 ++++ .../2-Process-Request-Cancel-200_OK.json | 358 ++++ .../2-Process-Request-Send-200_OK.json | 379 ++++ .../2-Process-Response-Cancel-200_OK.json | 370 ++++ .../3-Process-Request-Cancel-200_OK.json | 388 ++++ .../3-Process-Request-Send-200_OK.json | 379 ++++ .../4-Process-Request-Cancel-200_OK.json | 388 ++++ .../4-Process-Request-Send-200_OK.json | 379 ++++ .../5-Process-Request-Cancel-200_OK.json | 388 ++++ .../5-Process-Request-Send-200_OK.json | 379 ++++ .../6-Process-Request-Cancel-200_OK.json | 388 ++++ .../6-Process-Request-Send-200_OK.json | 379 ++++ .../7-Process-Request-Cancel-200_OK.json | 388 ++++ .../7-Process-Request-Send-200_OK.json | 379 ++++ .../8-Process-Request-Cancel-200_OK.json | 388 ++++ .../8-Process-Request-Send-200_OK.json | 379 ++++ .../9-Process-Request-Cancel-200_OK.json | 388 ++++ .../9-Process-Request-Send-200_OK.json | 379 ++++ .../3-Prepare-Request-200_OK.json | 819 +++++++++ .../3-Prepare-Response-200_OK.json | 17 + .../3-Process-Request-Send-200_OK.json | 854 +++++++++ .../3-Process-Response-Send-200_OK.json | 12 + .../3-Process-Request-Cancel-200_OK.json | 405 +++++ .../1-Prepare-Request-200_OK.json | 826 +++++++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Send-200_OK.json | 861 +++++++++ .../1-Process-Response-Send-200_OK.json | 12 + .../din/1-Prepare-Request-200_OK.json | 563 ++++++ .../din/1-Prepare-Response-200_OK.json | 17 + .../din/1-Process-Request-Send-200_OK.json | 598 +++++++ .../din/1-VerifySignature-Request-200_OK.json | 668 +++++++ .../1-Prepare-Request-200_OK.json | 567 ++++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Send-200_OK.json | 605 +++++++ .../1-Prepare-Request-200_OK.json | 877 +++++++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Send-200_OK.json | 912 ++++++++++ .../1-Process-Response-Send-200_OK.json | 12 + .../1-Prepare-Request-200_OK.json | 340 ++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Send-200_OK.json | 375 ++++ .../1-Prepare-Request-200_OK.json | 347 ++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Cancel-200_OK.json | 404 +++++ .../1-Process-Request-Send-200_OK.json | 382 ++++ .../1-VerifySignature-Request-200_OK.json | 400 +++++ .../1-Prepare-Request-200_OK.json | 434 +++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Send-200_OK.json | 490 +++++ .../2-Prepare-Request-200_OK.json | 434 +++++ .../2-Prepare-Response-200_OK.json | 17 + .../2-Process-Request-Send-200_OK.json | 490 +++++ .../1-Prepare-Request-200_OK.json | 684 +++++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Send-200_OK.json | 719 ++++++++ .../2-Prepare-Request-200_OK.json | 304 ++++ .../2-Prepare-Response-200_OK.json | 17 + .../2-Process-Request-Send-200_OK.json | 339 ++++ .../1-Prepare-Request-200_OK.json | 332 ++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Cancel-200_OK.json | 346 ++++ .../1-Process-Request-Send-200_OK.json | 370 ++++ .../6-Prepare-Request-200_OK.json | 332 ++++ .../6-Prepare-Response-200_OK.json | 17 + .../6-Process-Request-Send-200_OK.json | 370 ++++ .../1-Prepare-Request-200_OK.json | 444 +++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Send-200_OK.json | 500 ++++++ .../1-Prepare-Request-200_OK.json | 670 +++++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Send-200_OK.json | 705 ++++++++ .../1-Prepare-Request-200_OK.json | 652 +++++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Send-200_OK.json | 687 ++++++++ .../1-Prepare-Request-200_OK.json | 337 ++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Cancel-200_OK.json | 346 ++++ .../1-Process-Request-Send-200_OK.json | 372 ++++ .../1-Process-Response-Send-200_OK.json | 12 + .../1-Prepare-Request-200_OK.json | 434 +++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Send-200_OK.json | 490 +++++ .../1-Prepare-Request-200_OK.json | 615 +++++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Send-200_OK.json | 674 +++++++ .../2-Prepare-Request-200_OK.json | 360 ++++ .../2-Prepare-Response-200_OK.json | 17 + .../2-Process-Request-Send-200_OK.json | 413 +++++ .../1-Prepare-Request-200_OK.json | 333 ++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Send-200_OK.json | 368 ++++ .../paramedic/1-Prepare-Request-200_OK.json | 652 +++++++ .../paramedic/1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Send-200_OK.json | 687 ++++++++ .../1-Prepare-Request-200_OK.json | 349 ++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Send-200_OK.json | 384 ++++ .../2-Prepare-Request-200_OK.json | 361 ++++ .../2-Prepare-Response-200_OK.json | 17 + .../2-Process-Request-Send-200_OK.json | 396 +++++ .../1-Prepare-Request-200_OK.json | 852 +++++++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Send-200_OK.json | 887 ++++++++++ .../1-Prepare-Request-200_OK.json | 912 ++++++++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Dispense-200_OK.json | 1570 +++++++++++++++++ .../1-Process-Request-Send-200_OK.json | 935 ++++++++++ .../1-Task-Request-Release-200_OK.json | 96 + .../1-Claim-Request-200_OK.json | 354 ++++ .../1-Prepare-Request-200_OK.json | 357 ++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Dispense-200_OK.json | 423 +++++ .../1-Process-Request-Send-200_OK.json | 392 ++++ .../1-Task-Request-Release-200_OK.json | 100 ++ .../1-Claim-Request-200_OK.json | 412 +++++ .../1-Prepare-Request-200_OK.json | 527 ++++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Dispense-200_OK.json | 842 +++++++++ .../1-Process-Request-Send-200_OK.json | 562 ++++++ .../1-Task-Request-Release-200_OK.json | 100 ++ .../2-Prepare-Request-200_OK.json | 341 ++++ .../2-Prepare-Response-200_OK.json | 17 + .../2-Process-Request-Send-200_OK.json | 379 ++++ .../2-Task-Request-Release-200_OK.json | 100 ++ .../2-Task-Request-Return-200_OK.json | 139 ++ .../3-Prepare-Request-200_OK.json | 341 ++++ .../3-Prepare-Response-200_OK.json | 17 + .../3-Process-Request-Dispense-200_OK.json | 383 ++++ .../3-Process-Request-Send-200_OK.json | 376 ++++ .../3-Task-Request-Release-200_OK.json | 100 ++ .../3-Task-Request-Withdraw-200_OK.json | 139 ++ .../4-Claim-Request-200_OK.json | 307 ++++ .../4-Prepare-Request-200_OK.json | 341 ++++ .../4-Prepare-Response-200_OK.json | 17 + .../4-Process-Request-Dispense-200_OK.json | 383 ++++ .../4-Process-Request-Send-200_OK.json | 376 ++++ .../4-Task-Request-Release-200_OK.json | 100 ++ .../5-Prepare-Request-200_OK.json | 341 ++++ .../5-Prepare-Response-200_OK.json | 17 + .../5-Process-Request-Dispense-200_OK.json | 382 ++++ ...-Process-Request-DispenseAmend-200_OK.json | 391 ++++ .../5-Process-Request-Send-200_OK.json | 376 ++++ .../5-Task-Request-Release-200_OK.json | 99 ++ .../6-Claim-Request-200_OK.json | 315 ++++ .../6-Claim-Request-Amend-200_OK.json | 323 ++++ .../6-Prepare-Request-200_OK.json | 341 ++++ .../6-Prepare-Response-200_OK.json | 17 + .../6-Process-Request-Dispense-200_OK.json | 383 ++++ .../6-Process-Request-Send-200_OK.json | 376 ++++ .../6-Task-Request-Release-200_OK.json | 99 ++ .../7-Claim-Request-200_OK.json | 412 +++++ .../7-Prepare-Request-200_OK.json | 527 ++++++ .../7-Prepare-Response-200_OK.json | 17 + .../7-Process-Request-Dispense-200_OK.json | 842 +++++++++ .../7-Process-Request-Send-200_OK.json | 562 ++++++ .../7-Task-Request-Release-200_OK.json | 100 ++ .../1-Prepare-Request-200_OK.json | 547 ++++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Dispense-200_OK.json | 520 ++++++ .../1-Process-Request-Send-200_OK.json | 582 ++++++ .../1-Task-Request-Release-200_OK.json | 100 ++ .../1-Prepare-Request-200_OK.json | 545 ++++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Dispense-200_OK.json | 514 ++++++ .../1-Process-Request-Send-200_OK.json | 580 ++++++ .../1-Task-Request-Release-200_OK.json | 100 ++ .../1-Prepare-Request-200_OK.json | 647 +++++++ .../1-Prepare-Response-200_OK.json | 17 + .../1-Process-Request-Dispense-200_OK.json | 745 ++++++++ .../1-Process-Request-Send-200_OK.json | 682 +++++++ .../1-Task-Request-Release-200_OK.json | 100 ++ 197 files changed, 69155 insertions(+) create mode 100644 src/test/java/software/nhs/fhirvalidator/Validator_all_examples_Test.java create mode 100644 src/test/resources/examples/full_examples/primary-care/acute-and-repeat-prescribing/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute-and-repeat-prescribing/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute-and-repeat-prescribing/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/din/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/din/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/din/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/din/IsleOfMan-1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/din/Wales-1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/spurious-code/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/spurious-code/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/spurious-code/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/unknown/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/unknown/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/unknown/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/1-Process-Response-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/1-Task-Request-Release-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/2-Claim-Request-400_Missing_Endorsement_Code.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/3-Process-Request-Multiple-DosageInstructions-Send_200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/3-Process-Response-Multiple-DosageInstructions-Send_200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/4-Prepare-Request-Multiple-Dosages-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/4-Prepare-Response-Multiple-Dosages-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/1-Process-Request-Cancel-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/2-Process-Request-Cancel-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/2-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/2-Process-Response-Cancel-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/3-Process-Request-Cancel-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/3-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/4-Process-Request-Cancel-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/4-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/5-Process-Request-Cancel-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/5-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/6-Process-Request-Cancel-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/6-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/7-Process-Request-Cancel-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/7-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/8-Process-Request-Cancel-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/8-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/9-Process-Request-Cancel-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/9-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/3-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/3-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/3-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/3-Process-Response-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/cancellations/3-Process-Request-Cancel-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/separate-telecom/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/separate-telecom/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/separate-telecom/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/separate-telecom/1-Process-Response-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/din/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/din/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/din/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/din/1-VerifySignature-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/spurious-code/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/spurious-code/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/spurious-code/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/repeat-prescribing/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/repeat-prescribing/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/repeat-prescribing/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/primary-care/repeat-prescribing/1-Process-Response-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/no-nominated-pharmacy/clinical-practitioner/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/no-nominated-pharmacy/clinical-practitioner/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/no-nominated-pharmacy/clinical-practitioner/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/1-Process-Request-Cancel-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/1-VerifySignature-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/2-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/2-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/2-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/2-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/2-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/2-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/1-Process-Request-Cancel-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/6-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/6-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/6-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/controlled-drugs/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/controlled-drugs/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/controlled-drugs/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/medication-reference/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/medication-reference/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/medication-reference/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/multiple-medications/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/multiple-medications/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/multiple-medications/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/1-Process-Request-Cancel-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/1-Process-Response-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/2-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/2-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/2-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/professional-code/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/professional-code/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/professional-code/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/paramedic/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/paramedic/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/paramedic/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/2-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/2-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/2-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/non-prescriber-endorsed/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/non-prescriber-endorsed/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/non-prescriber-endorsed/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/prescriber-endorsed/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/prescriber-endorsed/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/prescriber-endorsed/1-Process-Request-Dispense-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/prescriber-endorsed/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/prescriber-endorsed/1-Task-Request-Release-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Claim-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Process-Request-Dispense-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Task-Request-Release-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Claim-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Process-Request-Dispense-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Task-Request-Release-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/2-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/2-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/2-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/2-Task-Request-Release-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/2-Task-Request-Return-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Process-Request-Dispense-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Task-Request-Release-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Task-Request-Withdraw-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Claim-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Process-Request-Dispense-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Task-Request-Release-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Process-Request-Dispense-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Process-Request-DispenseAmend-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Task-Request-Release-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Claim-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Claim-Request-Amend-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Process-Request-Dispense-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Task-Request-Release-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Claim-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Process-Request-Dispense-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Task-Request-Release-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/concurrent-dosage-instructions/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/concurrent-dosage-instructions/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/concurrent-dosage-instructions/1-Process-Request-Dispense-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/concurrent-dosage-instructions/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/concurrent-dosage-instructions/1-Task-Request-Release-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-and-concurrent-dosage-instructions/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-and-concurrent-dosage-instructions/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-and-concurrent-dosage-instructions/1-Process-Request-Dispense-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-and-concurrent-dosage-instructions/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-and-concurrent-dosage-instructions/1-Task-Request-Release-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-dosage-instructions/1-Prepare-Request-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-dosage-instructions/1-Prepare-Response-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-dosage-instructions/1-Process-Request-Dispense-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-dosage-instructions/1-Process-Request-Send-200_OK.json create mode 100644 src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-dosage-instructions/1-Task-Request-Release-200_OK.json diff --git a/src/test/java/software/nhs/fhirvalidator/Validator_all_examples_Test.java b/src/test/java/software/nhs/fhirvalidator/Validator_all_examples_Test.java new file mode 100644 index 00000000..6784a997 --- /dev/null +++ b/src/test/java/software/nhs/fhirvalidator/Validator_all_examples_Test.java @@ -0,0 +1,67 @@ +package software.nhs.fhirvalidator; + +import org.hl7.fhir.r4.model.OperationOutcome; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestInstance.Lifecycle; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.ArgumentsProvider; +import org.junit.jupiter.params.provider.ArgumentsSource; +import org.opentest4j.AssertionFailedError; + +import software.nhs.fhirvalidator.controller.ValidateController; + +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.nio.file.Files; +import java.util.List; +import java.util.stream.Stream; + +class Validator_all_examples_Test { + + private final ClassLoader loader = Thread.currentThread().getContextClassLoader(); + private static ValidateController testValidateController; + + static Stream getExampleFhirFiles() { + try { + URL resource = Thread.currentThread().getContextClassLoader().getResource("examples/full_examples"); + if (resource == null) { + throw new IllegalStateException("Could not find examples directory"); + } + File dir = new File(resource.getFile()); + return Files.walk(dir.toPath()) + .filter(Files::isRegularFile) + .map(path -> path.toFile()) + .sorted(); + } catch (IOException e) { + throw new RuntimeException("Failed to load example files", e); + } + } + + @BeforeAll + static void setup() { + String manifest_file = "nhs_digital.manifest.json"; + testValidateController = new ValidateController(manifest_file); + } + + @DisplayName("Test all valid example files") + @ParameterizedTest(name = "Validating file: {0}") + @MethodSource("getExampleFhirFiles") + void testFhirExamples(File exampleFile) throws IOException { + List lines = Files.readAllLines(exampleFile.toPath()); + String fileContent = String.join(" ", lines); + + OperationOutcome actualResult = testValidateController.parseAndValidateResource(fileContent); + + for (OperationOutcome.OperationOutcomeIssueComponent issue : actualResult.getIssue()) { + if (issue.getSeverity() == OperationOutcome.IssueSeverity.ERROR) { + throw new AssertionFailedError("Error found checking file " + exampleFile.getAbsolutePath() + + ". Error: " + issue.getDiagnostics()); + } + } + } +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute-and-repeat-prescribing/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute-and-repeat-prescribing/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..f91e65c4 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute-and-repeat-prescribing/1-Prepare-Request-200_OK.json @@ -0,0 +1,544 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "f7a3906b-8d1f-4f0a-aeb7-e8803a2db738" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "9cabf097-2930-45b6-9db5-b011c3e8182d" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "E3E6FA-A83008-41F09Y" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Acute" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39113611000001102", + "display": "Salbutamol 100micrograms/dose inhaler CFC free" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "9cabf097-2930-45b6-9db5-b011c3e8182d" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "E3E6FA-A83008-41F09Y" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous", + "display": "Continuous long term therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 times a day - Inhalation", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "18679011000001101", + "display": "Inhalation" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 200, + "unit": "dose", + "system": "http://snomed.info/sct", + "code": "3317411000001100" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e", + "resource": { + "resourceType": "CommunicationRequest", + "status": "unknown", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "payload": [ + { + "contentString": "Due to Coronavirus restrictions Church View Surgery is CLOSED until further notice" + }, + { + "contentReference": { + "reference": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "display": "List of Repeat Medications for re-ordering" + } + } + ], + "requester": { + "type": "Organization", + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + }, + "recipient": [ + { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9453740519" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "resource": { + "resourceType": "List", + "status": "current", + "mode": "snapshot", + "code": { + "text": "Repeat Medications" + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "entry": [ + { + "item": { + "display": "Bendroflumethiazide 2.5mg tablets (3/6)" + } + }, + { + "item": { + "display": "Salbutamol 100micrograms/dose inhaler CFC free (2/6)" + } + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute-and-repeat-prescribing/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute-and-repeat-prescribing/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..d436b282 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute-and-repeat-prescribing/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+bkIwMUZJUG1yMVM4TVMveDVoYVk4U3dpT1Y4PTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute-and-repeat-prescribing/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute-and-repeat-prescribing/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..b3ccebce --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute-and-repeat-prescribing/1-Process-Request-Send-200_OK.json @@ -0,0 +1,582 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "b03b4c7d-65f8-4cc3-9e63-0733ef6c27ed" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "9cabf097-2930-45b6-9db5-b011c3e8182d" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "E3E6FA-A83008-41F09Y" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Acute" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39113611000001102", + "display": "Salbutamol 100micrograms/dose inhaler CFC free" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "9cabf097-2930-45b6-9db5-b011c3e8182d" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "E3E6FA-A83008-41F09Y" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous", + "display": "Continuous long term therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 times a day - Inhalation", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "18679011000001101", + "display": "Inhalation" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 200, + "unit": "dose", + "system": "http://snomed.info/sct", + "code": "3317411000001100" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e", + "resource": { + "resourceType": "CommunicationRequest", + "status": "unknown", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "payload": [ + { + "contentString": "Due to Coronavirus restrictions Church View Surgery is CLOSED until further notice" + }, + { + "contentReference": { + "reference": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "display": "List of Repeat Medications for re-ordering" + } + } + ], + "requester": { + "type": "Organization", + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + }, + "recipient": [ + { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9453740519" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "resource": { + "resourceType": "List", + "status": "current", + "mode": "snapshot", + "code": { + "text": "Repeat Medications" + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "entry": [ + { + "item": { + "display": "Bendroflumethiazide 2.5mg tablets (3/6)" + } + }, + { + "item": { + "display": "Salbutamol 100micrograms/dose inhaler CFC free (2/6)" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "recorded": "2021-02-11T16:37:49+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-12T05:58:49+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPmVBTnAxdW15cFdjbE9zZFFNR2tUUkFrbjA4WT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+YjFlVGFZUVdWYWR0K2VyTVU4MHV1L29NYW8xRE1FVjB0aVF5UG9qVXI1NHlubndSY3VYRVZwWmwyZXZqak8zU2w0NDJ5YVl4SFF1c1RWejRyTUN6RU11ZjNVVU1UR3gwbVc4U0ppL09RRkk5TGpkRUZQQjRxVm1VZ1QyZDg0TEl5YTB4bnhYQ0FKWG1lWjBqYW1lM2JzZmp3YkZ5RXNrcm9iWG5yTW1tbDlzPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/din/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/din/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..66bc6796 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/din/1-Prepare-Request-200_OK.json @@ -0,0 +1,467 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "meta": { + "lastUpdated": "2022-10-21T13:47:00+00:00" + }, + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "5ca1d5d1-fe4f-4c14-8584-7089d2000219" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "c59b0ad3-b6c9-49f1-a50a-0595b97c503d" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "315A44-A83008-4C9BB1" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39113611000001102", + "display": "Salbutamol 100micrograms/dose inhaler CFC free" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "c59b0ad3-b6c9-49f1-a50a-0595b97c503d" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "315A44-A83008-4C9BB1" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 times a day - Inhalation", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "18679011000001101", + "display": "Inhalation" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "quantity": { + "value": 200, + "unit": "dose", + "system": "http://snomed.info/sct", + "code": "3317411000001100" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/din/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/din/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..718685a8 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/din/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+elc4czZ4V3lZcUpaNzFDYyt6Rks3TXhkZVlJPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/din/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/din/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..6d00b9d8 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/din/1-Process-Request-Send-200_OK.json @@ -0,0 +1,505 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "meta": { + "lastUpdated": "2022-10-21T13:47:00+00:00" + }, + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "a11a6118-634e-4e7e-a01b-cc2addb1b993" +}, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "c59b0ad3-b6c9-49f1-a50a-0595b97c503d" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "315A44-A83008-4C9BB1" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39113611000001102", + "display": "Salbutamol 100micrograms/dose inhaler CFC free" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "c59b0ad3-b6c9-49f1-a50a-0595b97c503d" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "315A44-A83008-4C9BB1" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 times a day - Inhalation", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "18679011000001101", + "display": "Inhalation" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "quantity": { + "value": 200, + "unit": "dose", + "system": "http://snomed.info/sct", + "code": "3317411000001100" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "recorded": "2021-02-11T16:32:11+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:56+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPmVZQ3ZscXZncGlSZU1uK3BRajg3ODRGMmJMOD08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+RmJPWmRJQ3Npb2RKejZlaDRrZy92RnV2RW1HL2QzNjh3am5jTUxyYWJxZW0xNjhSNkdVc0ZHTXRKT05PYlk3c0VZVXZRQ3FjdE81Smx3aU43Wm9teDdXRWs4WDAvZ1RVYkdlcGRiVFEzenp1dWhHb2xWNXhXdW5jeS9qSDc3NTF6d0JnN3hLVG5RdEhZMzNISjU1ZmVTN1JJbURMbmZBZHpuZkVidFU2TGE0PTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/din/IsleOfMan-1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/din/IsleOfMan-1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..a2f614c1 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/din/IsleOfMan-1-Prepare-Request-200_OK.json @@ -0,0 +1,467 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "meta": { + "lastUpdated": "2022-10-21T13:47:00+00:00" + }, + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "5ca1d5d1-fe4f-4c14-8584-7089d2000219" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0501", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "c59b0ad3-b6c9-49f1-a50a-0595b97c503d" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "315A44-A83008-4C9BB1" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0501", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39113611000001102", + "display": "Salbutamol 100micrograms/dose inhaler CFC free" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "c59b0ad3-b6c9-49f1-a50a-0595b97c503d" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "315A44-A83008-4C9BB1" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 times a day - Inhalation", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "18679011000001101", + "display": "Inhalation" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "quantity": { + "value": 200, + "unit": "dose", + "system": "http://snomed.info/sct", + "code": "3317411000001100" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/din/Wales-1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/din/Wales-1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..aed1d557 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/din/Wales-1-Prepare-Request-200_OK.json @@ -0,0 +1,467 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "meta": { + "lastUpdated": "2022-10-21T13:47:00+00:00" + }, + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "5ca1d5d1-fe4f-4c14-8584-7089d2000219" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0201", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "c59b0ad3-b6c9-49f1-a50a-0595b97c503d" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "315A44-A83008-4C9BB1" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0201", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39113611000001102", + "display": "Salbutamol 100micrograms/dose inhaler CFC free" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "c59b0ad3-b6c9-49f1-a50a-0595b97c503d" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "315A44-A83008-4C9BB1" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 times a day - Inhalation", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "18679011000001101", + "display": "Inhalation" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "quantity": { + "value": 200, + "unit": "dose", + "system": "http://snomed.info/sct", + "code": "3317411000001100" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/spurious-code/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/spurious-code/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..0b501c1e --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/spurious-code/1-Prepare-Request-200_OK.json @@ -0,0 +1,468 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "bf88f123-f160-44ce-ac42-30aab6b4a120" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "04365992-bb37-413d-80e7-90c0b0f2755e" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "FF33AE-A83008-4DDAA4" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39113611000001102", + "display": "Salbutamol 100micrograms/dose inhaler CFC free" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "04365992-bb37-413d-80e7-90c0b0f2755e" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "FF33AE-A83008-4DDAA4" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 times a day - Inhalation", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "18679011000001101", + "display": "Inhalation" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "quantity": { + "value": 200, + "unit": "dose", + "system": "http://snomed.info/sct", + "code": "3317411000001100" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "666666" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/spurious-code/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/spurious-code/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..b88c780b --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/spurious-code/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+dGphSXdLWmszdnRNd05oUzBNU1RCL2RUMHBzPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/spurious-code/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/spurious-code/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..3420062e --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/spurious-code/1-Process-Request-Send-200_OK.json @@ -0,0 +1,506 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "a5b66b8f-f437-4af5-a0db-09dac6edb1fc" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "04365992-bb37-413d-80e7-90c0b0f2755e" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "FF33AE-A83008-4DDAA4" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39113611000001102", + "display": "Salbutamol 100micrograms/dose inhaler CFC free" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "04365992-bb37-413d-80e7-90c0b0f2755e" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "FF33AE-A83008-4DDAA4" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 times a day - Inhalation", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "18679011000001101", + "display": "Inhalation" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "quantity": { + "value": 200, + "unit": "dose", + "system": "http://snomed.info/sct", + "code": "3317411000001100" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "666666" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "recorded": "2021-02-11T16:32:11+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:55+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPkIrM0hHenp5RGp4MENPOFdjZGFaOTQzSmladz08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+VDZGbnJORGIrdWZDSjhzTC9ZeDJ1UDVwU1RJRUpqdmJOdmE0ODl4NFhSSVh4Y25pNnhFZVZ1TlI1RVBOZWIwOHlxaW1uWDB0UVdqdGo5aTRwMG9ZWUE5blNqTUZIVEIwKzJVMTZ1SnRrNFM5OEpjcXMyUHh1U0hvVFl0cWJJcDNOT0xuSHR4R1pSRFdlSG1ZNm1LR0lNd0NyMFVwbExZcnYxU2xBQ0tycUJrPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/unknown/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/unknown/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..cd7b9015 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/unknown/1-Prepare-Request-200_OK.json @@ -0,0 +1,460 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "6d8dd788-105a-4d8d-a790-3d90edc5a6ae" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "44232843-8607-4a72-ba0c-e7c0862a3754" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "C3A429-A83008-49E0AP" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39113611000001102", + "display": "Salbutamol 100micrograms/dose inhaler CFC free" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "44232843-8607-4a72-ba0c-e7c0862a3754" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "C3A429-A83008-49E0AP" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 times a day - Inhalation", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "18679011000001101", + "display": "Inhalation" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "quantity": { + "value": 200, + "unit": "dose", + "system": "http://snomed.info/sct", + "code": "3317411000001100" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/professional-code", + "value": "999999" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/unknown/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/unknown/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..26960148 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/unknown/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+UWIreGR2aEVhZVk4aXZDZlBqaGFGRnFMdmlnPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/unknown/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/unknown/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..210a8a26 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/no-nominated-pharmacy/medical-prescriber/author/unknown/1-Process-Request-Send-200_OK.json @@ -0,0 +1,498 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "740a735a-8895-4b79-8f89-83627a5c932e" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "44232843-8607-4a72-ba0c-e7c0862a3754" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "C3A429-A83008-49E0AP" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39113611000001102", + "display": "Salbutamol 100micrograms/dose inhaler CFC free" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "44232843-8607-4a72-ba0c-e7c0862a3754" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "C3A429-A83008-49E0AP" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 times a day - Inhalation", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "18679011000001101", + "display": "Inhalation" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "quantity": { + "value": 200, + "unit": "dose", + "system": "http://snomed.info/sct", + "code": "3317411000001100" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/professional-code", + "value": "999999" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "recorded": "2021-02-11T16:32:11+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:57+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPkIrM0hHenp5RGp4MENPOFdjZGFaOTQzSmladz08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+VDZGbnJORGIrdWZDSjhzTC9ZeDJ1UDVwU1RJRUpqdmJOdmE0ODl4NFhSSVh4Y25pNnhFZVZ1TlI1RVBOZWIwOHlxaW1uWDB0UVdqdGo5aTRwMG9ZWUE5blNqTUZIVEIwKzJVMTZ1SnRrNFM5OEpjcXMyUHh1U0hvVFl0cWJJcDNOT0xuSHR4R1pSRFdlSG1ZNm1LR0lNd0NyMFVwbExZcnYxU2xBQ0tycUJrPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..7874c13d --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/1-Prepare-Request-200_OK.json @@ -0,0 +1,745 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "46183abc-9fad-4673-85db-ce2cb6614732" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + }, + "display": "The Simple Pharmacy" + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "focus": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00" + }, + { + "reference": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "6989b7bd-8db6-428c-a593-4022e3044c00" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322341003", + "display": "Co-codamol 30mg/500mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "2868554c-5565-4d31-b92a-c5b8dab8b90a" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321080004", + "display": "Pseudoephedrine hydrochloride 60mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + ], + "name": [ + { + "use": "usual", + "family": "TWITCHETT", + "given": [ + "STACEY", + "MARISA" + ], + "prefix": [ + "MS" + ] + } + ], + "gender": "female", + "birthDate": "1948-04-30", + "address": [ + { + "use": "home", + "line": [ + "10 HEATHFIELD", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + }, + { + "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01234567890" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0115 9737320" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..b7d4857d --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+aDBHZnFHSjl4VG4rMTMvbytlbG1iT05JRFY0PTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-21T13:47:00+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..b1ba98a8 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/1-Process-Request-Send-200_OK.json @@ -0,0 +1,780 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "46183abc-9fad-4673-85db-ce2cb6614732" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + }, + "display": "The Simple Pharmacy" + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "focus": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00" + }, + { + "reference": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "6989b7bd-8db6-428c-a593-4022e3044c00" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322341003", + "display": "Co-codamol 30mg/500mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "2868554c-5565-4d31-b92a-c5b8dab8b90a" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321080004", + "display": "Pseudoephedrine hydrochloride 60mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + ], + "name": [ + { + "use": "usual", + "family": "TWITCHETT", + "given": [ + "STACEY", + "MARISA" + ], + "prefix": [ + "MS" + ] + } + ], + "gender": "female", + "birthDate": "1948-04-30", + "address": [ + { + "use": "home", + "line": [ + "10 HEATHFIELD", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + }, + { + "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01234567890" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0115 9737320" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:0cb82cfa-76c8-4fb2-a08e-bf0e326e5487" + } + ], + "recorded": "2022-10-21T13:47:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2022-10-21T13:47:00+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+CiAgICAgICAgICAgIDxTaWduZWRJbmZvPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+WTg5YWNmSC90VkVtSXI2aVlrRVJrWWMxbG1jPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPgogICAgICAgICAgICA8U2lnbmF0dXJlVmFsdWU+PC9TaWduYXR1cmVWYWx1ZT4KICAgICAgICAgICAgPEtleUluZm8+PFg1MDlEYXRhPjxYNTA5Q2VydGlmaWNhdGU+PC9YNTA5Q2VydGlmaWNhdGU+PC9YNTA5RGF0YT48L0tleUluZm8+CiAgICAgICAgICA8L1NpZ25hdHVyZT4=" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/1-Process-Response-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/1-Process-Response-Send-200_OK.json new file mode 100644 index 00000000..d0c17019 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/1-Process-Response-Send-200_OK.json @@ -0,0 +1,12 @@ +{ + "resourceType": "OperationOutcome", + "meta": { + "lastUpdated": "2022-10-21T13:47:00+00:00" + }, + "issue": [ + { + "severity": "information", + "code": "informational" + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/1-Task-Request-Release-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/1-Task-Request-Release-200_OK.json new file mode 100644 index 00000000..47e29bb6 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/1-Task-Request-Release-200_OK.json @@ -0,0 +1,99 @@ +{ + "resourceType": "Parameters", + "id": "36c69896-c280-4460-ad0d-65f73d79aee5", + "parameter": [ + { + "name": "owner", + "resource": { + "resourceType": "Organization", + "id": "organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + }, + { + "name": "status", + "valueCode": "accepted" + }, + { + "name": "agent", + "resource": { + "resourceType": "PractitionerRole", + "telecom": [ + { + "system": "phone", + "value": "02380798431", + "use": "work" + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ] + } + }, + { + "name": "group-identifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z" + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/2-Claim-Request-400_Missing_Endorsement_Code.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/2-Claim-Request-400_Missing_Endorsement_Code.json new file mode 100644 index 00000000..255a231f --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/2-Claim-Request-400_Missing_Endorsement_Code.json @@ -0,0 +1,554 @@ +{ + "resourceType": "Claim", + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Mr Peter Potion" + }, + "organization": { + "reference": "#organizationId" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0532567890" + } + ] + }, + { + "resourceType": "Organization", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ODS-OrganisationRelationships", + "extension": [ + { + "url": "reimbursementAuthority", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "id": "organizationId", + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + ], + "created": "2024-01-09T09:29:02.725Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-Provenance-agent", + "valueReference": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + }, + "display": "dummy full name" + } + } + ], + "identifier": [ + { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "22dc23c8-cd73-47f7-940e-8ecc15e8330f" + } + ], + "status": "active", + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/claim-type", + "code": "pharmacy", + "display": "Pharmacy" + } + ] + }, + "use": "claim", + "patient": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + }, + "provider": { + "reference": "#performer" + }, + "priority": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/processpriority", + "code": "normal" + } + ] + }, + "insurance": [ + { + "sequence": 1, + "focal": true, + "coverage": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + }, + "display": "NHS BUSINESS SERVICES AUTHORITY" + } + } + ], + "payee": { + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/payeetype", + "code": "provider", + "display": "Provider" + } + ] + }, + "party": { + "reference": "#organizationId" + } + }, + "prescription": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-GroupIdentifier", + "extension": [ + { + "url": "shortForm", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "2CAE80-A83008-A2D65U" + } + }, + { + "url": "UUID", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "{{prescription_uuid}}" + } + } + ] + } + ] + }, + "item": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "code": "0006", + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "display": "Dispensed" + } + } + ], + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "16076005", + "display": "Prescription" + } + ] + }, + "programCode": [ + { + "coding": [ + { + "code": "0001", + "system": "https://fhir.nhs.uk/CodeSystem/prescription-charge-exemption", + "display": "Patient has paid appropriate charges" + } + ] + }, + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/DM-exemption-evidence", + "code": "evidence-seen", + "display": "Evidence Seen" + } + ] + } + ], + "detail": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimSequenceIdentifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/claim-sequence-identifier", + "value": "67b960e8-e064-4f8a-a1ea-9ca9cf989f22" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimMedicationRequestReference", + "valueReference": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "7d34e1c9-ebb1-454a-8471-93ba96c6d54b" + } + } + } + ], + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "modifier": [ + { + "coding": [ + { + "code": "0001", + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "display": "Item fully dispensed" + } + ] + } + ], + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "programCode": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/DM-prescription-charge", + "code": "paid-once", + "display": "Paid Once" + } + ] + } + ], + "subDetail": [ + { + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + } + ] + }, + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimSequenceIdentifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/claim-sequence-identifier", + "value": "8c90cffa-dbe1-488e-9442-35afe02943c6" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimMedicationRequestReference", + "valueReference": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "c5dbd6da-4b4f-42eb-9e3b-16623e1b2579" + } + } + } + ], + "sequence": 2, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322341003", + "display": "Co-codamol 30mg/500mg tablets" + } + ] + }, + "modifier": [ + { + "coding": [ + { + "code": "0001", + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "display": "Item fully dispensed" + } + ] + } + ], + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "programCode": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/DM-prescription-charge", + "code": "paid-once", + "display": "Paid Once" + } + ] + } + ], + "subDetail": [ + { + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322341003", + "display": "Co-codamol 30mg/500mg tablets" + } + ] + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + } + ] + }, + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimSequenceIdentifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/claim-sequence-identifier", + "value": "24ef63f2-d2be-44df-9289-4d3cb8ea853f" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimMedicationRequestReference", + "valueReference": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "c7174db1-437f-471c-baad-3373a83113aa" + } + } + } + ], + "sequence": 3, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321080004", + "display": "Pseudoephedrine hydrochloride 60mg tablets" + } + ] + }, + "modifier": [ + { + "coding": [ + { + "code": "0001", + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "display": "Item fully dispensed" + } + ] + } + ], + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "programCode": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/DM-prescription-charge", + "code": "paid-once", + "display": "Paid Once" + } + ] + } + ], + "subDetail": [ + { + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321080004", + "display": "Pseudoephedrine hydrochloride 60mg tablets" + } + ] + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + } + ] + }, + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimSequenceIdentifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/claim-sequence-identifier", + "value": "44c28650-d71d-49d1-9edb-b275b00ab2c6" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimMedicationRequestReference", + "valueReference": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "6358db7a-bf1a-446a-b0de-a46ecdcceb34" + } + } + } + ], + "sequence": 4, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "modifier": [ + { + "coding": [ + { + "code": "0001", + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "display": "Item fully dispensed" + } + ] + } + ], + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "programCode": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/DM-prescription-charge", + "code": "paid-once", + "display": "Paid Once" + } + ] + } + ], + "subDetail": [ + { + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + } + ] + } + ] + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/3-Process-Request-Multiple-DosageInstructions-Send_200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/3-Process-Request-Multiple-DosageInstructions-Send_200_OK.json new file mode 100644 index 00000000..22490ef9 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/3-Process-Request-Multiple-DosageInstructions-Send_200_OK.json @@ -0,0 +1,805 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "a3f5d78a-17aa-4877-a1af-3fa7d42a23b3" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + }, + "display": "The Simple Pharmacy" + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "focus": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00" + }, + { + "reference": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "dd0cdc7b-db3f-4f2f-aa21-cb4d77432264" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "62DB25-A83008-5CBA2Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "733524a7-5789-442b-b7ab-6a96cf522871" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "sequence": 1, + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + }, + { + "sequence": 1, + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2024-03-05", + "end": "2024-04-05" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "8a3a3a72-7a3d-41a1-851d-e7232d752089" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322341003", + "display": "Co-codamol 30mg/500mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "62DB25-A83008-5CBA2Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "733524a7-5789-442b-b7ab-6a96cf522871" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2024-03-05", + "end": "2024-04-05" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "e4e3b6b9-b2b5-4776-a22f-9dba5063f4ba" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321080004", + "display": "Pseudoephedrine hydrochloride 60mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "62DB25-A83008-5CBA2Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "733524a7-5789-442b-b7ab-6a96cf522871" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2024-03-05", + "end": "2024-04-05" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "1567a273-834b-410d-b739-b5519d1d4b24" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "62DB25-A83008-5CBA2Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "733524a7-5789-442b-b7ab-6a96cf522871" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2024-03-05", + "end": "2024-04-05" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + ], + "name": [ + { + "use": "usual", + "family": "TWITCHETT", + "given": [ + "STACEY", + "MARISA" + ], + "prefix": [ + "MS" + ] + } + ], + "gender": "female", + "birthDate": "1948-04-30", + "address": [ + { + "use": "home", + "line": [ + "10 HEATHFIELD", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + }, + { + "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01234567890" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0115 9737320" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2024-03-05T13:28:16+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+CiAgICAgICAgICAgIDxTaWduZWRJbmZvPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+dTN3STVZdjVTY29SckhyRlB0UThzK2Jqb084PTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPgogICAgICAgICAgICA8U2lnbmF0dXJlVmFsdWU+PC9TaWduYXR1cmVWYWx1ZT4KICAgICAgICAgICAgPEtleUluZm8+PFg1MDlEYXRhPjxYNTA5Q2VydGlmaWNhdGU+PC9YNTA5Q2VydGlmaWNhdGU+PC9YNTA5RGF0YT48L0tleUluZm8+CiAgICAgICAgICA8L1NpZ25hdHVyZT4=" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/3-Process-Response-Multiple-DosageInstructions-Send_200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/3-Process-Response-Multiple-DosageInstructions-Send_200_OK.json new file mode 100644 index 00000000..4d90c94d --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/3-Process-Response-Multiple-DosageInstructions-Send_200_OK.json @@ -0,0 +1,12 @@ +{ + "resourceType": "OperationOutcome", + "meta": { + "lastUpdated": "2022-10-21T13:47:00+00:00" + }, + "issue": [ + { + "severity": "information", + "code": "informational" + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/4-Prepare-Request-Multiple-Dosages-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/4-Prepare-Request-Multiple-Dosages-200_OK.json new file mode 100644 index 00000000..0cb0fef4 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/4-Prepare-Request-Multiple-Dosages-200_OK.json @@ -0,0 +1,766 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "46183abc-9fad-4673-85db-ce2cb6614732" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + }, + "display": "The Simple Pharmacy" + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "focus": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00" + }, + { + "reference": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "sequence": 1, + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + }, + { + "sequence": 2, + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "6989b7bd-8db6-428c-a593-4022e3044c00" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322341003", + "display": "Co-codamol 30mg/500mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "2868554c-5565-4d31-b92a-c5b8dab8b90a" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321080004", + "display": "Pseudoephedrine hydrochloride 60mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + ], + "name": [ + { + "use": "usual", + "family": "TWITCHETT", + "given": [ + "STACEY", + "MARISA" + ], + "prefix": [ + "MS" + ] + } + ], + "gender": "female", + "birthDate": "1948-04-30", + "address": [ + { + "use": "home", + "line": [ + "10 HEATHFIELD", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + }, + { + "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01234567890" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0115 9737320" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/4-Prepare-Response-Multiple-Dosages-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/4-Prepare-Response-Multiple-Dosages-200_OK.json new file mode 100644 index 00000000..b7d4857d --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/4-Prepare-Response-Multiple-Dosages-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+aDBHZnFHSjl4VG4rMTMvbytlbG1iT05JRFY0PTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-21T13:47:00+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/1-Process-Request-Cancel-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/1-Process-Request-Cancel-200_OK.json new file mode 100644 index 00000000..12ff3f7e --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/1-Process-Request-Cancel-200_OK.json @@ -0,0 +1,384 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "22d28bbf-e9ed-4c77-8374-3aaf88596109" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order-update", + "display": "Prescription Order Update" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "cancelled", + "statusReason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-status-reason", + "code": "0001", + "display": "Prescribing Error" + } + ] + }, + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "942fd768-d9a6-4062-8768-6e2faa486c38" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "58E241-A83008-4E2F8R" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-04-20", + "end": "2021-05-18" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8006:G8006:R8006", + "display": "Medical Secetary Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086718101" + }, + { + "system": "https://fhir.hl7.org.uk/Id/professional-code", + "value": "unknown" + } + ], + "name": [ + { + "family": "Secetary", + "given": [ + "Medical" + ], + "prefix": [ + "MS" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-04-20T05:45:31+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjVWem5UWG9FUmpDamRGQ3NTaUljcHIvNDJDUT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+ZjFsSHpFSzRMazRNQUR2UVhOSEdhaUVlYkdtM3BXeFl5MzR3dE5kYzZ2Lzd2QnNTdXMvcUhqU3Q3YkFHMVpCa2JidTVsZjRFN2tvbHBCVDBUMFVKK3RUQ1hxaWxleVRRanNEMG9iQ1QwZ0xPYk9uL2VXZk11REQ5MUI3WExvdmVONzlzK3VtVXI5Y0JCTVdlNWIxQnZpWjUyaGVhNlJnU3hXR3NGMVJ0NXFFPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..831a5b36 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/1-Process-Request-Send-200_OK.json @@ -0,0 +1,379 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "ba4a1f5a-41fb-4517-b12f-cb5b9fcd85cb" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "942fd768-d9a6-4062-8768-6e2faa486c38" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "58E241-A83008-4E2F8R" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-04-20", + "end": "2021-05-18" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-04-20T05:45:31+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjVWem5UWG9FUmpDamRGQ3NTaUljcHIvNDJDUT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+ZjFsSHpFSzRMazRNQUR2UVhOSEdhaUVlYkdtM3BXeFl5MzR3dE5kYzZ2Lzd2QnNTdXMvcUhqU3Q3YkFHMVpCa2JidTVsZjRFN2tvbHBCVDBUMFVKK3RUQ1hxaWxleVRRanNEMG9iQ1QwZ0xPYk9uL2VXZk11REQ5MUI3WExvdmVONzlzK3VtVXI5Y0JCTVdlNWIxQnZpWjUyaGVhNlJnU3hXR3NGMVJ0NXFFPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/2-Process-Request-Cancel-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/2-Process-Request-Cancel-200_OK.json new file mode 100644 index 00000000..edc8198f --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/2-Process-Request-Cancel-200_OK.json @@ -0,0 +1,358 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "46183abc-9fad-4673-85db-ce2cb6614732" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order-update", + "display": "Prescription Order Update" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "reason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/message-reason-prescription", + "code": "cancel", + "display": "Cancel" + } + ] + }, + "focus": [ + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + } + ] + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "cancelled", + "statusReason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-status-reason", + "code": "0002", + "display": "Clinical contra-indication" + } + ] + }, + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + ], + "name": [ + { + "use": "usual", + "family": "TWITCHETT", + "given": [ + "STACEY", + "MARISA" + ], + "prefix": [ + "MS" + ] + } + ], + "gender": "female", + "birthDate": "1948-04-30", + "address": [ + { + "use": "home", + "line": [ + "10 HEATHFIELD", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + }, + { + "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01234567890" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0115 9737320" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/2-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/2-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..b1117a48 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/2-Process-Request-Send-200_OK.json @@ -0,0 +1,379 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "78f956d8-28dc-434f-8eaa-fc5de4faaa6b" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "3812ba48-a00b-4980-8123-0cfc67ff784e" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "5018BB-A83008-4E5885" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-04-20", + "end": "2021-05-18" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-04-20T05:45:32+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjVWem5UWG9FUmpDamRGQ3NTaUljcHIvNDJDUT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+ZjFsSHpFSzRMazRNQUR2UVhOSEdhaUVlYkdtM3BXeFl5MzR3dE5kYzZ2Lzd2QnNTdXMvcUhqU3Q3YkFHMVpCa2JidTVsZjRFN2tvbHBCVDBUMFVKK3RUQ1hxaWxleVRRanNEMG9iQ1QwZ0xPYk9uL2VXZk11REQ5MUI3WExvdmVONzlzK3VtVXI5Y0JCTVdlNWIxQnZpWjUyaGVhNlJnU3hXR3NGMVJ0NXFFPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/2-Process-Response-Cancel-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/2-Process-Response-Cancel-200_OK.json new file mode 100644 index 00000000..97899142 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/2-Process-Response-Cancel-200_OK.json @@ -0,0 +1,370 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "46183abc-9fad-4673-85db-ce2cb6614732" + }, + "timestamp": "2022-10-21T13:48:00+00:00", + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-MessageHeader-messageId", + "valueIdentifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487" + } + } + ], + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order-response", + "display": "Prescription Order Response" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "X2601" + }, + "display": "NHS Digital Spine" + }, + "source": { + "name": "NHS Spine", + "endpoint": "https://internal-dev.api.service.nhs.uk/electronic-prescriptions/$process-message" + }, + "response": { + "identifier": "d03e713b-e62c-4a2f-964d-d83b68d825a9", + "code": "ok" + }, + "focus": [ + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ] + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionStatusHistory", + "extension": [ + { + "url": "status", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-status-history", + "code": "R-0001", + "display": "Prescription/item was cancelled" + } + }, + { + "url": "statusDate", + "valueDateTime": "2022-10-21T13:48:00+00:00" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "cancelled", + "statusReason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-status-reason", + "code": "0002", + "display": "Clinical contra-indication" + } + ] + }, + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + ], + "name": [ + { + "use": "usual", + "family": "TWITCHETT", + "given": ["STACEY", "MARISA"], + "prefix": ["MS"] + } + ], + "gender": "female", + "birthDate": "1948-04-30", + "address": [ + { + "use": "home", + "line": ["10 HEATHFIELD", "COBHAM", "SURREY"], + "postalCode": "KT11 2QY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + }, + { + "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01234567890" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": ["C"], + "prefix": ["DR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0115 9737320" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": ["HALLGARTH SURGERY", "CHEAPSIDE"], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/3-Process-Request-Cancel-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/3-Process-Request-Cancel-200_OK.json new file mode 100644 index 00000000..52febc7b --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/3-Process-Request-Cancel-200_OK.json @@ -0,0 +1,388 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "fcf0d0d0-d976-43e6-9c10-6dbe67816428" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order-update", + "display": "Prescription Order Update" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "cancelled", + "statusReason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-status-reason", + "code": "0003", + "display": "Change to medication treatment regime" + } + ] + }, + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a5d38e66-570f-4e65-855e-0514ed4f1049" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "7388B7-A83008-40BB9A" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-04-20", + "end": "2021-05-18" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-04-20T05:45:33+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjVWem5UWG9FUmpDamRGQ3NTaUljcHIvNDJDUT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+ZjFsSHpFSzRMazRNQUR2UVhOSEdhaUVlYkdtM3BXeFl5MzR3dE5kYzZ2Lzd2QnNTdXMvcUhqU3Q3YkFHMVpCa2JidTVsZjRFN2tvbHBCVDBUMFVKK3RUQ1hxaWxleVRRanNEMG9iQ1QwZ0xPYk9uL2VXZk11REQ5MUI3WExvdmVONzlzK3VtVXI5Y0JCTVdlNWIxQnZpWjUyaGVhNlJnU3hXR3NGMVJ0NXFFPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/3-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/3-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..db8598fe --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/3-Process-Request-Send-200_OK.json @@ -0,0 +1,379 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "be0d7914-2bf5-4abf-9bbc-dbd91062075a" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a5d38e66-570f-4e65-855e-0514ed4f1049" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "7388B7-A83008-40BB9A" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-04-20", + "end": "2021-05-18" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-04-20T05:45:33+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjVWem5UWG9FUmpDamRGQ3NTaUljcHIvNDJDUT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+ZjFsSHpFSzRMazRNQUR2UVhOSEdhaUVlYkdtM3BXeFl5MzR3dE5kYzZ2Lzd2QnNTdXMvcUhqU3Q3YkFHMVpCa2JidTVsZjRFN2tvbHBCVDBUMFVKK3RUQ1hxaWxleVRRanNEMG9iQ1QwZ0xPYk9uL2VXZk11REQ5MUI3WExvdmVONzlzK3VtVXI5Y0JCTVdlNWIxQnZpWjUyaGVhNlJnU3hXR3NGMVJ0NXFFPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/4-Process-Request-Cancel-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/4-Process-Request-Cancel-200_OK.json new file mode 100644 index 00000000..1ceaba1c --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/4-Process-Request-Cancel-200_OK.json @@ -0,0 +1,388 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "eaead81f-10d1-4918-a349-1412c9e33e2f" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order-update", + "display": "Prescription Order Update" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "cancelled", + "statusReason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-status-reason", + "code": "0004", + "display": "Clinical grounds" + } + ] + }, + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "c7dfe8e3-6e92-46c8-935f-fc94016dd20c" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "C293C8-A83008-470B8U" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-04-20", + "end": "2021-05-18" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-04-20T05:45:34+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjVWem5UWG9FUmpDamRGQ3NTaUljcHIvNDJDUT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+ZjFsSHpFSzRMazRNQUR2UVhOSEdhaUVlYkdtM3BXeFl5MzR3dE5kYzZ2Lzd2QnNTdXMvcUhqU3Q3YkFHMVpCa2JidTVsZjRFN2tvbHBCVDBUMFVKK3RUQ1hxaWxleVRRanNEMG9iQ1QwZ0xPYk9uL2VXZk11REQ5MUI3WExvdmVONzlzK3VtVXI5Y0JCTVdlNWIxQnZpWjUyaGVhNlJnU3hXR3NGMVJ0NXFFPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/4-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/4-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..4c339cfd --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/4-Process-Request-Send-200_OK.json @@ -0,0 +1,379 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "cf1a34ba-5e6f-428c-8858-c7e3f88f19d7" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "c7dfe8e3-6e92-46c8-935f-fc94016dd20c" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "C293C8-A83008-470B8U" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-04-20", + "end": "2021-05-18" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-04-20T05:45:34+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjVWem5UWG9FUmpDamRGQ3NTaUljcHIvNDJDUT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+ZjFsSHpFSzRMazRNQUR2UVhOSEdhaUVlYkdtM3BXeFl5MzR3dE5kYzZ2Lzd2QnNTdXMvcUhqU3Q3YkFHMVpCa2JidTVsZjRFN2tvbHBCVDBUMFVKK3RUQ1hxaWxleVRRanNEMG9iQ1QwZ0xPYk9uL2VXZk11REQ5MUI3WExvdmVONzlzK3VtVXI5Y0JCTVdlNWIxQnZpWjUyaGVhNlJnU3hXR3NGMVJ0NXFFPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/5-Process-Request-Cancel-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/5-Process-Request-Cancel-200_OK.json new file mode 100644 index 00000000..c6151fee --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/5-Process-Request-Cancel-200_OK.json @@ -0,0 +1,388 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "b3d06c45-0c63-403c-a9da-810a4fafd453" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order-update", + "display": "Prescription Order Update" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "cancelled", + "statusReason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-status-reason", + "code": "0005", + "display": "At the Patient's request" + } + ] + }, + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "18a69c7a-0f65-47e3-a02c-4dedb930c695" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "B29396-A83008-4FE9AK" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-04-20", + "end": "2021-05-18" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-04-20T05:45:35+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjVWem5UWG9FUmpDamRGQ3NTaUljcHIvNDJDUT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+ZjFsSHpFSzRMazRNQUR2UVhOSEdhaUVlYkdtM3BXeFl5MzR3dE5kYzZ2Lzd2QnNTdXMvcUhqU3Q3YkFHMVpCa2JidTVsZjRFN2tvbHBCVDBUMFVKK3RUQ1hxaWxleVRRanNEMG9iQ1QwZ0xPYk9uL2VXZk11REQ5MUI3WExvdmVONzlzK3VtVXI5Y0JCTVdlNWIxQnZpWjUyaGVhNlJnU3hXR3NGMVJ0NXFFPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/5-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/5-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..1e9ec072 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/5-Process-Request-Send-200_OK.json @@ -0,0 +1,379 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "92b760c2-85ec-4158-8132-a55e4ec9f751" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "18a69c7a-0f65-47e3-a02c-4dedb930c695" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "B29396-A83008-4FE9AK" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-04-20", + "end": "2021-05-18" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-04-20T05:45:35+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjVWem5UWG9FUmpDamRGQ3NTaUljcHIvNDJDUT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+ZjFsSHpFSzRMazRNQUR2UVhOSEdhaUVlYkdtM3BXeFl5MzR3dE5kYzZ2Lzd2QnNTdXMvcUhqU3Q3YkFHMVpCa2JidTVsZjRFN2tvbHBCVDBUMFVKK3RUQ1hxaWxleVRRanNEMG9iQ1QwZ0xPYk9uL2VXZk11REQ5MUI3WExvdmVONzlzK3VtVXI5Y0JCTVdlNWIxQnZpWjUyaGVhNlJnU3hXR3NGMVJ0NXFFPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/6-Process-Request-Cancel-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/6-Process-Request-Cancel-200_OK.json new file mode 100644 index 00000000..6580b5af --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/6-Process-Request-Cancel-200_OK.json @@ -0,0 +1,388 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "e4b68f98-df8d-4a85-b878-39b13f214f42" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order-update", + "display": "Prescription Order Update" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "cancelled", + "statusReason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-status-reason", + "code": "0006", + "display": "At the Pharmacist's request" + } + ] + }, + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "c49a07c9-294f-4d66-bbc9-5dc5b8bff422" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "507FE8-A83008-4A859+" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-04-20", + "end": "2021-05-18" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-04-20T05:45:37+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjVWem5UWG9FUmpDamRGQ3NTaUljcHIvNDJDUT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+ZjFsSHpFSzRMazRNQUR2UVhOSEdhaUVlYkdtM3BXeFl5MzR3dE5kYzZ2Lzd2QnNTdXMvcUhqU3Q3YkFHMVpCa2JidTVsZjRFN2tvbHBCVDBUMFVKK3RUQ1hxaWxleVRRanNEMG9iQ1QwZ0xPYk9uL2VXZk11REQ5MUI3WExvdmVONzlzK3VtVXI5Y0JCTVdlNWIxQnZpWjUyaGVhNlJnU3hXR3NGMVJ0NXFFPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/6-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/6-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..74da5cee --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/6-Process-Request-Send-200_OK.json @@ -0,0 +1,379 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "bf059b90-a166-4a0f-8f45-d4be508a4eeb" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "c49a07c9-294f-4d66-bbc9-5dc5b8bff422" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "507FE8-A83008-4A859+" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-04-20", + "end": "2021-05-18" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-04-20T05:45:37+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjVWem5UWG9FUmpDamRGQ3NTaUljcHIvNDJDUT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+ZjFsSHpFSzRMazRNQUR2UVhOSEdhaUVlYkdtM3BXeFl5MzR3dE5kYzZ2Lzd2QnNTdXMvcUhqU3Q3YkFHMVpCa2JidTVsZjRFN2tvbHBCVDBUMFVKK3RUQ1hxaWxleVRRanNEMG9iQ1QwZ0xPYk9uL2VXZk11REQ5MUI3WExvdmVONzlzK3VtVXI5Y0JCTVdlNWIxQnZpWjUyaGVhNlJnU3hXR3NGMVJ0NXFFPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/7-Process-Request-Cancel-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/7-Process-Request-Cancel-200_OK.json new file mode 100644 index 00000000..fc7d079c --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/7-Process-Request-Cancel-200_OK.json @@ -0,0 +1,388 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "a3b677a4-a18f-4042-82be-18b344ce70fd" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order-update", + "display": "Prescription Order Update" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "cancelled", + "statusReason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-status-reason", + "code": "0007", + "display": "Notification of Death" + } + ] + }, + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "2b348970-89bb-46ef-a003-72a45d71330c" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "A48D9E-A83008-45CE9Q" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-04-20", + "end": "2021-05-18" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-04-20T05:45:38+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjVWem5UWG9FUmpDamRGQ3NTaUljcHIvNDJDUT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+ZjFsSHpFSzRMazRNQUR2UVhOSEdhaUVlYkdtM3BXeFl5MzR3dE5kYzZ2Lzd2QnNTdXMvcUhqU3Q3YkFHMVpCa2JidTVsZjRFN2tvbHBCVDBUMFVKK3RUQ1hxaWxleVRRanNEMG9iQ1QwZ0xPYk9uL2VXZk11REQ5MUI3WExvdmVONzlzK3VtVXI5Y0JCTVdlNWIxQnZpWjUyaGVhNlJnU3hXR3NGMVJ0NXFFPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/7-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/7-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..4e385553 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/7-Process-Request-Send-200_OK.json @@ -0,0 +1,379 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "58451692-3e9a-4bcf-be83-b3bd90b35e77" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "2b348970-89bb-46ef-a003-72a45d71330c" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "A48D9E-A83008-45CE9Q" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-04-20", + "end": "2021-05-18" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-04-20T05:45:38+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjVWem5UWG9FUmpDamRGQ3NTaUljcHIvNDJDUT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+ZjFsSHpFSzRMazRNQUR2UVhOSEdhaUVlYkdtM3BXeFl5MzR3dE5kYzZ2Lzd2QnNTdXMvcUhqU3Q3YkFHMVpCa2JidTVsZjRFN2tvbHBCVDBUMFVKK3RUQ1hxaWxleVRRanNEMG9iQ1QwZ0xPYk9uL2VXZk11REQ5MUI3WExvdmVONzlzK3VtVXI5Y0JCTVdlNWIxQnZpWjUyaGVhNlJnU3hXR3NGMVJ0NXFFPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/8-Process-Request-Cancel-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/8-Process-Request-Cancel-200_OK.json new file mode 100644 index 00000000..218402c5 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/8-Process-Request-Cancel-200_OK.json @@ -0,0 +1,388 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "06964c82-2b88-4898-ae86-c74c3b482502" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order-update", + "display": "Prescription Order Update" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "cancelled", + "statusReason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-status-reason", + "code": "0008", + "display": "Patient deducted - other reason" + } + ] + }, + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "9e7b3d2e-c711-4cb7-99d3-fdc9d993fb65" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "124C9E-A83008-49E282" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-04-20", + "end": "2021-05-18" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-04-20T05:45:40+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjVWem5UWG9FUmpDamRGQ3NTaUljcHIvNDJDUT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+ZjFsSHpFSzRMazRNQUR2UVhOSEdhaUVlYkdtM3BXeFl5MzR3dE5kYzZ2Lzd2QnNTdXMvcUhqU3Q3YkFHMVpCa2JidTVsZjRFN2tvbHBCVDBUMFVKK3RUQ1hxaWxleVRRanNEMG9iQ1QwZ0xPYk9uL2VXZk11REQ5MUI3WExvdmVONzlzK3VtVXI5Y0JCTVdlNWIxQnZpWjUyaGVhNlJnU3hXR3NGMVJ0NXFFPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/8-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/8-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..9ea56659 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/8-Process-Request-Send-200_OK.json @@ -0,0 +1,379 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "b1039a88-4276-460f-a38a-e7d5caa0fca6" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "9e7b3d2e-c711-4cb7-99d3-fdc9d993fb65" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "124C9E-A83008-49E282" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-04-20", + "end": "2021-05-18" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-04-20T05:45:40+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjVWem5UWG9FUmpDamRGQ3NTaUljcHIvNDJDUT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+ZjFsSHpFSzRMazRNQUR2UVhOSEdhaUVlYkdtM3BXeFl5MzR3dE5kYzZ2Lzd2QnNTdXMvcUhqU3Q3YkFHMVpCa2JidTVsZjRFN2tvbHBCVDBUMFVKK3RUQ1hxaWxleVRRanNEMG9iQ1QwZ0xPYk9uL2VXZk11REQ5MUI3WExvdmVONzlzK3VtVXI5Y0JCTVdlNWIxQnZpWjUyaGVhNlJnU3hXR3NGMVJ0NXFFPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/9-Process-Request-Cancel-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/9-Process-Request-Cancel-200_OK.json new file mode 100644 index 00000000..9a056da1 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/9-Process-Request-Cancel-200_OK.json @@ -0,0 +1,388 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "26c2db27-c887-40d4-9379-079c1a798399" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order-update", + "display": "Prescription Order Update" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "cancelled", + "statusReason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-status-reason", + "code": "0009", + "display": "Patient deducted - registered with new practice" + } + ] + }, + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "5dfe61bc-57ab-42ce-b65a-a96a9b1c3aa7" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "7EE792-A83008-4EC8BZ" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-04-20", + "end": "2021-05-18" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-04-20T05:45:41+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjVWem5UWG9FUmpDamRGQ3NTaUljcHIvNDJDUT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+ZjFsSHpFSzRMazRNQUR2UVhOSEdhaUVlYkdtM3BXeFl5MzR3dE5kYzZ2Lzd2QnNTdXMvcUhqU3Q3YkFHMVpCa2JidTVsZjRFN2tvbHBCVDBUMFVKK3RUQ1hxaWxleVRRanNEMG9iQ1QwZ0xPYk9uL2VXZk11REQ5MUI3WExvdmVONzlzK3VtVXI5Y0JCTVdlNWIxQnZpWjUyaGVhNlJnU3hXR3NGMVJ0NXFFPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/9-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/9-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..55dde4fb --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/medical-prescriber/cancellations/9-Process-Request-Send-200_OK.json @@ -0,0 +1,379 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "f722066f-1c57-427a-89a3-2bf2f051a999" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "5dfe61bc-57ab-42ce-b65a-a96a9b1c3aa7" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "7EE792-A83008-4EC8BZ" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-04-20", + "end": "2021-05-18" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-04-20T05:45:41+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjVWem5UWG9FUmpDamRGQ3NTaUljcHIvNDJDUT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+ZjFsSHpFSzRMazRNQUR2UVhOSEdhaUVlYkdtM3BXeFl5MzR3dE5kYzZ2Lzd2QnNTdXMvcUhqU3Q3YkFHMVpCa2JidTVsZjRFN2tvbHBCVDBUMFVKK3RUQ1hxaWxleVRRanNEMG9iQ1QwZ0xPYk9uL2VXZk11REQ5MUI3WExvdmVONzlzK3VtVXI5Y0JCTVdlNWIxQnZpWjUyaGVhNlJnU3hXR3NGMVJ0NXFFPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/3-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/3-Prepare-Request-200_OK.json new file mode 100644 index 00000000..7d175e60 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/3-Prepare-Request-200_OK.json @@ -0,0 +1,819 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "46183abc-9fad-4673-85db-ce2cb6614732" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + }, + "display": "The Simple Pharmacy" + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "focus": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00" + }, + { + "reference": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "resource": { + "resourceType": "PractitionerRole", + "organization": { + "reference": "urn:uuid:28b10eb9-94fe-4779-8517-b476abd6b08f" + }, + "practitioner": { + "identifier": { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "C6095103" + } + } + } + }, + { + "fullUrl": "urn:uuid:28b10eb9-94fe-4779-8517-b476abd6b08f", + "resource": { + "resourceType": "Organization", + "id": "28b10eb9-94fe-4779-8517-b476abd6b08f", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + } + ], + "name": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST", + "address": [ + { + "line": [ + "MUSGROVE PARK HOSPITAL", + "PARKFIELD DRIVE", + "TAUNTON" + ], + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823333444", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "6989b7bd-8db6-428c-a593-4022e3044c00" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322341003", + "display": "Co-codamol 30mg/500mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "2868554c-5565-4d31-b92a-c5b8dab8b90a" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321080004", + "display": "Pseudoephedrine hydrochloride 60mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + ], + "name": [ + { + "use": "usual", + "family": "TWITCHETT", + "given": [ + "STACEY", + "MARISA" + ], + "prefix": [ + "MS" + ] + } + ], + "gender": "female", + "birthDate": "1948-04-30", + "address": [ + { + "use": "home", + "line": [ + "10 HEATHFIELD", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + }, + { + "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01234567890" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0115 9737320" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/3-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/3-Prepare-Response-200_OK.json new file mode 100644 index 00000000..53eab471 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/3-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+WlpKMTdKZU54NXMwOHVFWUloaGM0VjFiRDY0PTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-21T13:47:00+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/3-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/3-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..9f870bc0 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/3-Process-Request-Send-200_OK.json @@ -0,0 +1,854 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "46183abc-9fad-4673-85db-ce2cb6614732" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + }, + "display": "The Simple Pharmacy" + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "focus": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00" + }, + { + "reference": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "resource": { + "resourceType": "PractitionerRole", + "organization": { + "reference": "urn:uuid:28b10eb9-94fe-4779-8517-b476abd6b08f" + }, + "practitioner": { + "identifier": { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "C6095103" + } + } + } + }, + { + "fullUrl": "urn:uuid:28b10eb9-94fe-4779-8517-b476abd6b08f", + "resource": { + "resourceType": "Organization", + "id": "28b10eb9-94fe-4779-8517-b476abd6b08f", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + } + ], + "name": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST", + "address": [ + { + "line": [ + "MUSGROVE PARK HOSPITAL", + "PARKFIELD DRIVE", + "TAUNTON" + ], + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823333444", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "6989b7bd-8db6-428c-a593-4022e3044c00" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322341003", + "display": "Co-codamol 30mg/500mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "2868554c-5565-4d31-b92a-c5b8dab8b90a" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321080004", + "display": "Pseudoephedrine hydrochloride 60mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + ], + "name": [ + { + "use": "usual", + "family": "TWITCHETT", + "given": [ + "STACEY", + "MARISA" + ], + "prefix": [ + "MS" + ] + } + ], + "gender": "female", + "birthDate": "1948-04-30", + "address": [ + { + "use": "home", + "line": [ + "10 HEATHFIELD", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + }, + { + "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01234567890" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0115 9737320" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:0cb82cfa-76c8-4fb2-a08e-bf0e326e5487" + } + ], + "recorded": "2022-10-21T13:47:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2022-10-21T13:47:00+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+CiAgICAgICAgICAgIDxTaWduZWRJbmZvPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+WTg5YWNmSC90VkVtSXI2aVlrRVJrWWMxbG1jPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPgogICAgICAgICAgICA8U2lnbmF0dXJlVmFsdWU+PC9TaWduYXR1cmVWYWx1ZT4KICAgICAgICAgICAgPEtleUluZm8+PFg1MDlEYXRhPjxYNTA5Q2VydGlmaWNhdGU+PC9YNTA5Q2VydGlmaWNhdGU+PC9YNTA5RGF0YT48L0tleUluZm8+CiAgICAgICAgICA8L1NpZ25hdHVyZT4=" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/3-Process-Response-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/3-Process-Response-Send-200_OK.json new file mode 100644 index 00000000..396e43a2 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/3-Process-Response-Send-200_OK.json @@ -0,0 +1,12 @@ +{ + "resourceType": "OperationOutcome", + "meta": { + "lastUpdated": "2022-10-21T13:47:00+00:00" + }, + "issue": [ + { + "code": "informational", + "severity": "information" + } + ] + } diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/cancellations/3-Process-Request-Cancel-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/cancellations/3-Process-Request-Cancel-200_OK.json new file mode 100644 index 00000000..9e9d01c6 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/cancellations/3-Process-Request-Cancel-200_OK.json @@ -0,0 +1,405 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "46183abc-9fad-4673-85db-ce2cb6614732" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order-update", + "display": "Prescription Order Update" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "reason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/message-reason-prescription", + "code": "cancel", + "display": "Cancel" + } + ] + }, + "focus": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "resource": { + "resourceType": "PractitionerRole", + "organization": { + "reference": "urn:uuid:28b10eb9-94fe-4779-8517-b476abd6b08f" + } + } + }, + { + "fullUrl": "urn:uuid:28b10eb9-94fe-4779-8517-b476abd6b08f", + "resource": { + "resourceType": "Organization", + "id": "28b10eb9-94fe-4779-8517-b476abd6b08f", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + } + ], + "name": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST", + "address": [ + { + "line": [ + "MUSGROVE PARK HOSPITAL", + "PARKFIELD DRIVE", + "TAUNTON" + ], + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823333444", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "cancelled", + "statusReason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-status-reason", + "code": "0002", + "display": "Clinical contra-indication" + } + ] + }, + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + ], + "name": [ + { + "use": "usual", + "family": "TWITCHETT", + "given": [ + "STACEY", + "MARISA" + ], + "prefix": [ + "MS" + ] + } + ], + "gender": "female", + "birthDate": "1948-04-30", + "address": [ + { + "use": "home", + "line": [ + "10 HEATHFIELD", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + }, + { + "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01234567890" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0115 9737320" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/separate-telecom/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/separate-telecom/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..c14910e6 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/separate-telecom/1-Prepare-Request-200_OK.json @@ -0,0 +1,826 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "46183abc-9fad-4673-85db-ce2cb6614732" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + }, + "display": "The Simple Pharmacy" + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "focus": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00" + }, + { + "reference": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "resource": { + "resourceType": "PractitionerRole", + "organization": { + "reference": "urn:uuid:28b10eb9-94fe-4779-8517-b476abd6b08f" + }, + "practitioner": { + "identifier": { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "C6095103" + } + }, + "telecom": [ + { + "system": "phone", + "value": "01823333555", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:28b10eb9-94fe-4779-8517-b476abd6b08f", + "resource": { + "resourceType": "Organization", + "id": "28b10eb9-94fe-4779-8517-b476abd6b08f", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + } + ], + "name": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST", + "address": [ + { + "line": [ + "MUSGROVE PARK HOSPITAL", + "PARKFIELD DRIVE", + "TAUNTON" + ], + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823333444", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "6989b7bd-8db6-428c-a593-4022e3044c00" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322341003", + "display": "Co-codamol 30mg/500mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "2868554c-5565-4d31-b92a-c5b8dab8b90a" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321080004", + "display": "Pseudoephedrine hydrochloride 60mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + ], + "name": [ + { + "use": "usual", + "family": "TWITCHETT", + "given": [ + "STACEY", + "MARISA" + ], + "prefix": [ + "MS" + ] + } + ], + "gender": "female", + "birthDate": "1948-04-30", + "address": [ + { + "use": "home", + "line": [ + "10 HEATHFIELD", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + }, + { + "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01234567890" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0115 9737320" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/separate-telecom/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/separate-telecom/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..3be33002 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/separate-telecom/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+WlpKMTdKZU54NXMwOHVFWUloaGM0VjFiRDY0PTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2024-01-18T14:46:11+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/separate-telecom/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/separate-telecom/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..1ea35641 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/separate-telecom/1-Process-Request-Send-200_OK.json @@ -0,0 +1,861 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "46183abc-9fad-4673-85db-ce2cb6614732" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + }, + "display": "The Simple Pharmacy" + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "focus": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00" + }, + { + "reference": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "resource": { + "resourceType": "PractitionerRole", + "organization": { + "reference": "urn:uuid:28b10eb9-94fe-4779-8517-b476abd6b08f" + }, + "practitioner": { + "identifier": { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "C6095103" + } + }, + "telecom": [ + { + "system": "phone", + "value": "01823333555", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:28b10eb9-94fe-4779-8517-b476abd6b08f", + "resource": { + "resourceType": "Organization", + "id": "28b10eb9-94fe-4779-8517-b476abd6b08f", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + } + ], + "name": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST", + "address": [ + { + "line": [ + "MUSGROVE PARK HOSPITAL", + "PARKFIELD DRIVE", + "TAUNTON" + ], + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823333444", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "6989b7bd-8db6-428c-a593-4022e3044c00" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322341003", + "display": "Co-codamol 30mg/500mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "2868554c-5565-4d31-b92a-c5b8dab8b90a" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321080004", + "display": "Pseudoephedrine hydrochloride 60mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466", + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + ], + "name": [ + { + "use": "usual", + "family": "TWITCHETT", + "given": [ + "STACEY", + "MARISA" + ], + "prefix": [ + "MS" + ] + } + ], + "gender": "female", + "birthDate": "1948-04-30", + "address": [ + { + "use": "home", + "line": [ + "10 HEATHFIELD", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + }, + { + "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01234567890" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0115 9737320" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:0cb82cfa-76c8-4fb2-a08e-bf0e326e5487" + } + ], + "recorded": "2022-10-21T13:47:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2022-10-21T13:47:00+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+CiAgICAgICAgICAgIDxTaWduZWRJbmZvPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+WTg5YWNmSC90VkVtSXI2aVlrRVJrWWMxbG1jPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPgogICAgICAgICAgICA8U2lnbmF0dXJlVmFsdWU+PC9TaWduYXR1cmVWYWx1ZT4KICAgICAgICAgICAgPEtleUluZm8+PFg1MDlEYXRhPjxYNTA5Q2VydGlmaWNhdGU+PC9YNTA5Q2VydGlmaWNhdGU+PC9YNTA5RGF0YT48L0tleUluZm8+CiAgICAgICAgICA8L1NpZ25hdHVyZT4=" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/separate-telecom/1-Process-Response-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/separate-telecom/1-Process-Response-Send-200_OK.json new file mode 100644 index 00000000..123fd294 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/acute/nominated-pharmacy/responsible-party-org/separate-telecom/1-Process-Response-Send-200_OK.json @@ -0,0 +1,12 @@ +{ + "resourceType": "OperationOutcome", + "meta": { + "lastUpdated": "2024-01-17T13:14:33+00:00" + }, + "issue": [ + { + "code": "informational", + "severity": "information" + } + ] + } diff --git a/src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/din/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/din/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..1aecc36f --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/din/1-Prepare-Request-200_OK.json @@ -0,0 +1,563 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "c289bd6e-a10a-4c5a-b14c-8cbb3f4b5d44" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "cedf33f2-49fc-4d11-a5e7-e663d9037817" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "4f2b64a2-0f32-401f-81f4-5e585bfa2e61" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "998244-A83008-238DCD" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2022-02-19", + "end": "2022-03-19" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "1341f8f3-3b52-4820-91ed-47cac20db83f" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39113611000001102", + "display": "Salbutamol 100micrograms/dose inhaler CFC free" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "4f2b64a2-0f32-401f-81f4-5e585bfa2e61" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "998244-A83008-238DCD" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 times a day - Inhalation", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "18679011000001101", + "display": "Inhalation" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2022-02-19", + "end": "2022-03-19" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 200, + "unit": "dose", + "system": "http://snomed.info/sct", + "code": "3317411000001100" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e", + "resource": { + "resourceType": "CommunicationRequest", + "status": "unknown", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "payload": [ + { + "contentString": "Due to Coronavirus restrictions Church View Surgery is CLOSED until further notice" + }, + { + "contentReference": { + "reference": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "display": "List of Repeat Medications for re-ordering" + } + } + ], + "requester": { + "type": "Organization", + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + }, + "recipient": [ + { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9453740519" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "resource": { + "resourceType": "List", + "status": "current", + "mode": "snapshot", + "code": { + "text": "Repeat Medications" + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "entry": [ + { + "item": { + "display": "Bendroflumethiazide 2.5mg tablets (3/6)" + } + }, + { + "item": { + "display": "Salbutamol 100micrograms/dose inhaler CFC free (2/6)" + } + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/din/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/din/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..fe914544 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/din/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+Q3VFMk5vTGgxMmNORm16NFFJM09ZUnMwUHQ0PTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/din/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/din/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..11d36230 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/din/1-Process-Request-Send-200_OK.json @@ -0,0 +1,598 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "c289bd6e-a10a-4c5a-b14c-8cbb3f4b5d44" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "cedf33f2-49fc-4d11-a5e7-e663d9037817" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "4f2b64a2-0f32-401f-81f4-5e585bfa2e61" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "998244-A83008-238DCD" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2022-02-19", + "end": "2022-03-19" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "1341f8f3-3b52-4820-91ed-47cac20db83f" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39113611000001102", + "display": "Salbutamol 100micrograms/dose inhaler CFC free" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "4f2b64a2-0f32-401f-81f4-5e585bfa2e61" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "998244-A83008-238DCD" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 times a day - Inhalation", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "18679011000001101", + "display": "Inhalation" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2022-02-19", + "end": "2022-03-19" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 200, + "unit": "dose", + "system": "http://snomed.info/sct", + "code": "3317411000001100" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e", + "resource": { + "resourceType": "CommunicationRequest", + "status": "unknown", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "payload": [ + { + "contentString": "Due to Coronavirus restrictions Church View Surgery is CLOSED until further notice" + }, + { + "contentReference": { + "reference": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "display": "List of Repeat Medications for re-ordering" + } + } + ], + "requester": { + "type": "Organization", + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + }, + "recipient": [ + { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9453740519" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "resource": { + "resourceType": "List", + "status": "current", + "mode": "snapshot", + "code": { + "text": "Repeat Medications" + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "entry": [ + { + "item": { + "display": "Bendroflumethiazide 2.5mg tablets (3/6)" + } + }, + { + "item": { + "display": "Salbutamol 100micrograms/dose inhaler CFC free (2/6)" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2022-02-19T17:36:35+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+CiAgICAgICAgICAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPkRteW45TERVWXZFWVBsWEFrYVc1NSt0SDNUZz08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4KICAgICAgICAgICAgIDxTaWduYXR1cmVWYWx1ZT5mdjJzSG5SaDYyb0tlNFVzYTBtbzJtSTVZMUJjb25lakd0QkY5VlFvTFF2TGpVYTY5ZGg2aGgxOGZVbG5CKzNXSHR0Q3ZSZXhRM0pDdTBON2c1eWQwWWhKb2RnR2F6NWJseHo1c1FJVWd4OWE4Yng2NVdmcTYvNlMxdUJsUERVVlVJamdIZ2pPMWNBNHlGUFg4M1BDZ3ZwanlNNW5RTzB5SzQyZm5zSnNsNWc9PC9TaWduYXR1cmVWYWx1ZT4KICAgICAgICAgICAgIDxLZXlJbmZvPjxYNTA5RGF0YT48WDUwOUNlcnRpZmljYXRlPk1JSUR1RENDQXFDZ0F3SUJBZ0lFWGNtdEh6QU5CZ2txaGtpRzl3MEJBUXNGQURBMk1Rd3dDZ1lEVlFRS0V3TnVhSE14Q3pBSkJnTlZCQXNUQWtOQk1Sa3dGd1lEVlFRREV4Qk9TRk1nU1U1VUlFeGxkbVZzSURGRU1CNFhEVEl3TVRBeU1qRXdNakUxTlZvWERUSXlNVEF5TWpFd05URTFOVm93UXpFTU1Bb0dBMVVFQ2hNRGJtaHpNUTh3RFFZRFZRUUxFd1pRWlc5d2JHVXhJakFnQmdOVkJBTU1HVFUxTlRJMU16VXlNVEV3T0Y5U1FVNUVUMDFmVlZORlVsRXdnWjh3RFFZSktvWklodmNOQVFFQkJRQURnWTBBTUlHSkFvR0JBS3Q0c3pOdzdPQUg3QVFSckRlL3hCSW1zTW1NaVM5RXNyVDNhM3AvTGgzYnJkekk5YWFqVFVaMmIvY3ZiT2E3UGVZZDd1K0s0YTJaZDBYayswR0ZtWUd6U1ZYNmlZamJsd3IwdmFpMzF6VjdHK2xHdkh4SDZwU29MQ3dJQ2FaQUZ3YWJlRDVPejk0K3lBM2FXTld0R1YwRGZoOXF3SDNaRkNJTVJzdmVyTjFwQWdNQkFBR2pnZ0ZETUlJQlB6QU9CZ05WSFE4QkFmOEVCQU1DQmtBd1pRWURWUjBnQVFIL0JGc3dXVEJYQmdzcWhqb0FpWHRtQUFNQ0FEQklNRVlHQ0NzR0FRVUZCd0lCRmpwb2RIUndjem92TDNCcmFTNXVhSE11ZFdzdlkyVnlkR2xtYVdOaGRHVmZjRzlzYVdOcFpYTXZZMjl1ZEdWdWRGOWpiMjF0YVhSdFpXNTBNRE1HQTFVZEh3UXNNQ293S0tBbW9DU0dJbWgwZEhBNkx5OWpjbXd1Ym1oekxuVnJMMmx1ZEM4eFpDOWpjbXhqTXk1amNtd3dLd1lEVlIwUUJDUXdJb0FQTWpBeU1ERXdNakl4TURJeE5UVmFnUTh5TURJeU1ETXhOekV3TlRFMU5Wb3dId1lEVlIwakJCZ3dGb0FVb0pZZmdZVE5QZDZFVUtMNlFMSXpIeFk1UEZJd0hRWURWUjBPQkJZRUZMdHl2WVN5YXFnNjBBRVVaZ3hrMHdyalJKYytNQWtHQTFVZEV3UUNNQUF3R1FZSktvWklodlo5QjBFQUJBd3dDaHNFVmpndU13TUNCTEF3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUJjenk4QjhqdVBwSWZhVE5GY3hyQzIyYUNYL3hZWm1ockwvTnZJQkFhWDFHNWhqaXdta0dLRTJoUlRJcjY3UHhaeG1Yc0p4aWdSQk1IUGxJK2xZLytva3pIMEdpN2I1YnFsdzdweEdJZ0pPMDAwdzhwRnN2bzl3NDJJWWhIb2Rzdm5EVlN4aE1UMEo0NlFoazlzb0UwTGpvRVVMS1FQUGxZR2tlL0dsM20xN0l0Rll3T2JRSDBmTUV3bWlxQnllSWZ6N2dTY2NPekw1Y0lwNlBjWlRPam8ySXFRcGdFbWhqT2NSSW5FcUFOaXRTZGpvaUpBSnpwYWFaallUUmRIVVg3aTdhakVpSDRtOTFuRlcrNEFxa050dGxiNFdjR0tzU21XZ2ZLS2hlRjRJb1pLTUU4MHhlclNnTXk4dnRqTE9CSkNHWHowd0xHbVF1Um14TVRxODhxND08L1g1MDlDZXJ0aWZpY2F0ZT48L1g1MDlEYXRhPjwvS2V5SW5mbz4KICAgICAgICAgICA8L1NpZ25hdHVyZT4=" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/din/1-VerifySignature-Request-200_OK.json b/src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/din/1-VerifySignature-Request-200_OK.json new file mode 100644 index 00000000..995f5203 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/din/1-VerifySignature-Request-200_OK.json @@ -0,0 +1,668 @@ +{ + "resourceType": "Bundle", + "id": "917f870d-4867-4d63-ac54-047890b76061", + "meta": { + "lastUpdated": "2022-02-19T17:37:21+00:00" + }, + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "917f870d-4867-4d63-ac54-047890b76061" + }, + "type": "searchset", + "total": 1, + "entry": [ + { + "fullUrl": "urn:uuid:0d4f804c-9c31-4706-b2cf-4f796e7b199b", + "resource": { + "resourceType": "Bundle", + "id": "0d4f804c-9c31-4706-b2cf-4f796e7b199b", + "meta": { + "lastUpdated": "2022-02-19T00:00:00+00:00" + }, + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "c289bd6e-a10a-4c5a-b14c-8cbb3f4b5d44" + }, + "type": "message", + "entry": [ + { + "resource": { + "resourceType": "MessageHeader", + "id": "ba7b87be-6e18-414d-9fed-e997d737fbe8", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-Spine-MessageHeader-messageId", + "valueIdentifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "c289bd6e-a10a-4c5a-b14c-8cbb3f4b5d44" + } + } + ], + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FCG71", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "X2601" + }, + "display": "NHS Digital Spine" + }, + "source": { + "name": "NHS Spine", + "endpoint": "https://internal-dev.api.service.nhs.uk/electronic-prescriptions-pr-769/$process-message" + }, + "response": { + "identifier": "4e8d0225-f7a7-4af6-8b5c-bbf3ccfc96a5", + "code": "ok" + }, + "focus": [ + { + "reference": "urn:uuid:aea78fb1-0f6f-49d1-ab39-3afd6cfe155c" + }, + { + "reference": "urn:uuid:b76a6db1-aded-4355-b4ce-84ebd5055e64" + }, + { + "reference": "urn:uuid:f6f297e8-8c40-4f06-8f11-7c8a54539660" + } + ] + }, + "fullUrl": "urn:uuid:ba7b87be-6e18-414d-9fed-e997d737fbe8" + }, + { + "resource": { + "resourceType": "Patient", + "id": "aea78fb1-0f6f-49d1-ab39-3afd6cfe155c", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + }, + "fullUrl": "urn:uuid:aea78fb1-0f6f-49d1-ab39-3afd6cfe155c" + }, + { + "resource": { + "resourceType": "PractitionerRole", + "id": "80efd30a-60f5-4cd8-a4a5-941b16cd0fa1", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:0d6fcc6c-9853-4404-b4c5-dfd160a8e796" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "S8000:G8000:R8000" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01234567890" + } + ], + "organization": { + "reference": "urn:uuid:7f27edf3-25a3-4584-b902-7c09ce3f453a" + } + }, + "fullUrl": "urn:uuid:80efd30a-60f5-4cd8-a4a5-941b16cd0fa1" + }, + { + "resource": { + "resourceType": "Practitioner", + "id": "0d6fcc6c-9853-4404-b4c5-dfd160a8e796", + "identifier": [ + { + "system": "https://fhir.hl7.org.uk/Id/gphc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + }, + "fullUrl": "urn:uuid:0d6fcc6c-9853-4404-b4c5-dfd160a8e796" + }, + { + "resource": { + "resourceType": "Organization", + "id": "7f27edf3-25a3-4584-b902-7c09ce3f453a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "179", + "display": "PRIMARY CARE TRUST" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01159737320" + } + ], + "address": [ + { + "use": "work", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE", + "SHILDON", + "COUNTY DURHAM" + ], + "postalCode": "DL4 2HP" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + }, + "fullUrl": "urn:uuid:7f27edf3-25a3-4584-b902-7c09ce3f453a" + }, + { + "resource": { + "resourceType": "CommunicationRequest", + "id": "ba65f769-f537-48ab-9c12-c01d4c0b767b", + "status": "unknown", + "subject": { + "reference": "urn:uuid:aea78fb1-0f6f-49d1-ab39-3afd6cfe155c" + }, + "payload": [ + { + "contentString": "Due to Coronavirus restrictions Church View Surgery is CLOSED until further notice" + }, + { + "contentReference": { + "reference": "urn:uuid:f379c607-5769-4f7e-95b5-be59dc3852d0" + } + } + ], + "requester": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + }, + "recipient": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + } + ] + }, + "fullUrl": "urn:uuid:ba65f769-f537-48ab-9c12-c01d4c0b767b" + }, + { + "resource": { + "resourceType": "List", + "id": "f379c607-5769-4f7e-95b5-be59dc3852d0", + "status": "current", + "mode": "snapshot", + "entry": [ + { + "item": { + "display": "Bendroflumethiazide 2.5mg tablets (3/6)" + } + }, + { + "item": { + "display": "Salbutamol 100micrograms/dose inhaler CFC free (2/6)" + } + } + ] + }, + "fullUrl": "urn:uuid:f379c607-5769-4f7e-95b5-be59dc3852d0" + }, + { + "resource": { + "resourceType": "MedicationRequest", + "id": "b76a6db1-aded-4355-b4ce-84ebd5055e64", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:80efd30a-60f5-4cd8-a4a5-941b16cd0fa1" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2020-12-07" + }, + { + "url": "numberOfPrescriptionsIssued", + "valueUnsignedInt": 1 + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "cedf33f2-49fc-4d11-a5e7-e663d9037817" + } + ], + "status": "active", + "intent": "reflex-order", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:aea78fb1-0f6f-49d1-ab39-3afd6cfe155c" + }, + "authoredOn": "2022-02-19T17:36:35+00:00", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "requester": { + "reference": "urn:uuid:80efd30a-60f5-4cd8-a4a5-941b16cd0fa1" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "998244-A83008-238DCD", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "4f2b64a2-0f32-401f-81f4-5e585bfa2e61" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "One tablet to be taken four times a day" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 0, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "validityPeriod": { + "start": "2022-02-19", + "end": "2022-03-19" + }, + "expectedSupplyDuration": { + "unit": "days", + "value": 30, + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + }, + "substitution": { + "allowedBoolean": false + }, + "basedOn": [ + { + "reference": "urn:uuid:cedf33f2-49fc-4d11-a5e7-e663d9037817", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation", + "extension": [ + { + "url": "numberOfRepeatsAllowed", + "valueInteger": 5 + } + ] + } + ] + } + ] + }, + "fullUrl": "urn:uuid:b76a6db1-aded-4355-b4ce-84ebd5055e64" + }, + { + "resource": { + "resourceType": "MedicationRequest", + "id": "f6f297e8-8c40-4f06-8f11-7c8a54539660", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:80efd30a-60f5-4cd8-a4a5-941b16cd0fa1" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2020-12-07" + }, + { + "url": "numberOfPrescriptionsIssued", + "valueUnsignedInt": 1 + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "1341f8f3-3b52-4820-91ed-47cac20db83f" + } + ], + "status": "active", + "intent": "reflex-order", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39113611000001102", + "display": "Salbutamol 100micrograms/dose inhaler CFC free" + } + ] + }, + "subject": { + "reference": "urn:uuid:aea78fb1-0f6f-49d1-ab39-3afd6cfe155c" + }, + "authoredOn": "2022-02-19T17:36:35+00:00", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "requester": { + "reference": "urn:uuid:80efd30a-60f5-4cd8-a4a5-941b16cd0fa1" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "998244-A83008-238DCD", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "4f2b64a2-0f32-401f-81f4-5e585bfa2e61" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "One dose to be taken five times a day" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 0, + "quantity": { + "value": 200, + "unit": "dose", + "system": "http://snomed.info/sct", + "code": "3317411000001100" + }, + "validityPeriod": { + "start": "2022-02-19", + "end": "2022-03-19" + }, + "expectedSupplyDuration": { + "unit": "days", + "value": 30, + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + }, + "substitution": { + "allowedBoolean": false + }, + "basedOn": [ + { + "reference": "urn:uuid:1341f8f3-3b52-4820-91ed-47cac20db83f", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation", + "extension": [ + { + "url": "numberOfRepeatsAllowed", + "valueInteger": 5 + } + ] + } + ] + } + ] + }, + "fullUrl": "urn:uuid:f6f297e8-8c40-4f06-8f11-7c8a54539660" + }, + { + "resource": { + "resourceType": "Provenance", + "id": "30843d63-a6b6-4618-b503-5c43b9272ce8", + "agent": [ + { + "who": { + "reference": "urn:uuid:80efd30a-60f5-4cd8-a4a5-941b16cd0fa1" + } + } + ], + "recorded": "2022-02-19T17:36:35+00:00", + "signature": [ + { + "who": { + "reference": "urn:uuid:80efd30a-60f5-4cd8-a4a5-941b16cd0fa1" + }, + "when": "2022-02-19T17:36:35+00:00", + "data": "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+PFNpZ25lZEluZm8+PENhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiPjwvQ2Fub25pY2FsaXphdGlvbk1ldGhvZD48U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3JzYS1zaGExIj48L1NpZ25hdHVyZU1ldGhvZD48UmVmZXJlbmNlPjxUcmFuc2Zvcm1zPjxUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiPjwvVHJhbnNmb3JtPjwvVHJhbnNmb3Jtcz48RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3NoYTEiPjwvRGlnZXN0TWV0aG9kPjxEaWdlc3RWYWx1ZT5EbXluOUxEVVl2RVlQbFhBa2FXNTUrdEgzVGc9PC9EaWdlc3RWYWx1ZT48L1JlZmVyZW5jZT48L1NpZ25lZEluZm8+PFNpZ25hdHVyZVZhbHVlPmZ2MnNIblJoNjJvS2U0VXNhMG1vMm1JNVkxQmNvbmVqR3RCRjlWUW9MUXZMalVhNjlkaDZoaDE4ZlVsbkIrM1dIdHRDdlJleFEzSkN1ME43ZzV5ZDBZaEpvZGdHYXo1Ymx4ejVzUUlVZ3g5YThieDY1V2ZxNi82UzF1QmxQRFVWVUlqZ0hnak8xY0E0eUZQWDgzUENndnBqeU01blFPMHlLNDJmbnNKc2w1Zz08L1NpZ25hdHVyZVZhbHVlPjxLZXlJbmZvPjxYNTA5RGF0YT48WDUwOUNlcnRpZmljYXRlPk1JSUR1RENDQXFDZ0F3SUJBZ0lFWGNtdEh6QU5CZ2txaGtpRzl3MEJBUXNGQURBMk1Rd3dDZ1lEVlFRS0V3TnVhSE14Q3pBSkJnTlZCQXNUQWtOQk1Sa3dGd1lEVlFRREV4Qk9TRk1nU1U1VUlFeGxkbVZzSURGRU1CNFhEVEl3TVRBeU1qRXdNakUxTlZvWERUSXlNVEF5TWpFd05URTFOVm93UXpFTU1Bb0dBMVVFQ2hNRGJtaHpNUTh3RFFZRFZRUUxFd1pRWlc5d2JHVXhJakFnQmdOVkJBTU1HVFUxTlRJMU16VXlNVEV3T0Y5U1FVNUVUMDFmVlZORlVsRXdnWjh3RFFZSktvWklodmNOQVFFQkJRQURnWTBBTUlHSkFvR0JBS3Q0c3pOdzdPQUg3QVFSckRlL3hCSW1zTW1NaVM5RXNyVDNhM3AvTGgzYnJkekk5YWFqVFVaMmIvY3ZiT2E3UGVZZDd1K0s0YTJaZDBYayswR0ZtWUd6U1ZYNmlZamJsd3IwdmFpMzF6VjdHK2xHdkh4SDZwU29MQ3dJQ2FaQUZ3YWJlRDVPejk0K3lBM2FXTld0R1YwRGZoOXF3SDNaRkNJTVJzdmVyTjFwQWdNQkFBR2pnZ0ZETUlJQlB6QU9CZ05WSFE4QkFmOEVCQU1DQmtBd1pRWURWUjBnQVFIL0JGc3dXVEJYQmdzcWhqb0FpWHRtQUFNQ0FEQklNRVlHQ0NzR0FRVUZCd0lCRmpwb2RIUndjem92TDNCcmFTNXVhSE11ZFdzdlkyVnlkR2xtYVdOaGRHVmZjRzlzYVdOcFpYTXZZMjl1ZEdWdWRGOWpiMjF0YVhSdFpXNTBNRE1HQTFVZEh3UXNNQ293S0tBbW9DU0dJbWgwZEhBNkx5OWpjbXd1Ym1oekxuVnJMMmx1ZEM4eFpDOWpjbXhqTXk1amNtd3dLd1lEVlIwUUJDUXdJb0FQTWpBeU1ERXdNakl4TURJeE5UVmFnUTh5TURJeU1ETXhOekV3TlRFMU5Wb3dId1lEVlIwakJCZ3dGb0FVb0pZZmdZVE5QZDZFVUtMNlFMSXpIeFk1UEZJd0hRWURWUjBPQkJZRUZMdHl2WVN5YXFnNjBBRVVaZ3hrMHdyalJKYytNQWtHQTFVZEV3UUNNQUF3R1FZSktvWklodlo5QjBFQUJBd3dDaHNFVmpndU13TUNCTEF3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUJjenk4QjhqdVBwSWZhVE5GY3hyQzIyYUNYL3hZWm1ockwvTnZJQkFhWDFHNWhqaXdta0dLRTJoUlRJcjY3UHhaeG1Yc0p4aWdSQk1IUGxJK2xZLytva3pIMEdpN2I1YnFsdzdweEdJZ0pPMDAwdzhwRnN2bzl3NDJJWWhIb2Rzdm5EVlN4aE1UMEo0NlFoazlzb0UwTGpvRVVMS1FQUGxZR2tlL0dsM20xN0l0Rll3T2JRSDBmTUV3bWlxQnllSWZ6N2dTY2NPekw1Y0lwNlBjWlRPam8ySXFRcGdFbWhqT2NSSW5FcUFOaXRTZGpvaUpBSnpwYWFaallUUmRIVVg3aTdhakVpSDRtOTFuRlcrNEFxa050dGxiNFdjR0tzU21XZ2ZLS2hlRjRJb1pLTUU4MHhlclNnTXk4dnRqTE9CSkNHWHowd0xHbVF1Um14TVRxODhxND08L1g1MDlDZXJ0aWZpY2F0ZT48L1g1MDlEYXRhPjwvS2V5SW5mbz48L1NpZ25hdHVyZT4=", + "type": [ + { + "code": "1.2.840.10065.1.12.1.1", + "system": "urn:iso-astm:E1762-95:2013" + } + ] + } + ], + "target": [ + { + "reference": "urn:uuid:ba7b87be-6e18-414d-9fed-e997d737fbe8" + }, + { + "reference": "urn:uuid:aea78fb1-0f6f-49d1-ab39-3afd6cfe155c" + }, + { + "reference": "urn:uuid:80efd30a-60f5-4cd8-a4a5-941b16cd0fa1" + }, + { + "reference": "urn:uuid:0d6fcc6c-9853-4404-b4c5-dfd160a8e796" + }, + { + "reference": "urn:uuid:7f27edf3-25a3-4584-b902-7c09ce3f453a" + }, + { + "reference": "urn:uuid:ba65f769-f537-48ab-9c12-c01d4c0b767b" + }, + { + "reference": "urn:uuid:f379c607-5769-4f7e-95b5-be59dc3852d0" + }, + { + "reference": "urn:uuid:b76a6db1-aded-4355-b4ce-84ebd5055e64" + }, + { + "reference": "urn:uuid:f6f297e8-8c40-4f06-8f11-7c8a54539660" + } + ] + }, + "fullUrl": "urn:uuid:30843d63-a6b6-4618-b503-5c43b9272ce8" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/spurious-code/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/spurious-code/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..c45f3303 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/spurious-code/1-Prepare-Request-200_OK.json @@ -0,0 +1,567 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "ab28bba7-d570-4095-b7d7-8962196b0df4" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "bea7a124-fa11-406b-9c62-87964c8e38d0" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "6BC03A-A83008-485BAR" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39113611000001102", + "display": "Salbutamol 100micrograms/dose inhaler CFC free" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "bea7a124-fa11-406b-9c62-87964c8e38d0" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "6BC03A-A83008-485BAR" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 times a day - Inhalation", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "18679011000001101", + "display": "Inhalation" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 200, + "unit": "dose", + "system": "http://snomed.info/sct", + "code": "3317411000001100" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "666666" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e", + "resource": { + "resourceType": "CommunicationRequest", + "status": "unknown", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "payload": [ + { + "contentString": "Due to Coronavirus restrictions Church View Surgery is CLOSED until further notice" + }, + { + "contentReference": { + "reference": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "display": "List of Repeat Medications for re-ordering" + } + } + ], + "requester": { + "type": "Organization", + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + }, + "recipient": [ + { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9453740519" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "resource": { + "resourceType": "List", + "status": "current", + "mode": "snapshot", + "code": { + "text": "Repeat Medications" + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "entry": [ + { + "item": { + "display": "Bendroflumethiazide 2.5mg tablets (3/6)" + } + }, + { + "item": { + "display": "Salbutamol 100micrograms/dose inhaler CFC free (2/6)" + } + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/spurious-code/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/spurious-code/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..ec9dab99 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/spurious-code/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+R3Bxa3MvWVllWjluTnQwbTlsMml5ZTljRWEwPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/spurious-code/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/spurious-code/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..f431ca58 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/repeat-dispensing/nominated-pharmacy/medical-prescriber/author/gmc/responsible-party/medication-list/spurious-code/1-Process-Request-Send-200_OK.json @@ -0,0 +1,605 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "2260f662-a331-4917-a343-9a8c1a7d3192" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322237000", + "display": "Paracetamol 500mg soluble tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "bea7a124-fa11-406b-9c62-87964c8e38d0" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "6BC03A-A83008-485BAR" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39113611000001102", + "display": "Salbutamol 100micrograms/dose inhaler CFC free" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "bea7a124-fa11-406b-9c62-87964c8e38d0" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "6BC03A-A83008-485BAR" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 times a day - Inhalation", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "18679011000001101", + "display": "Inhalation" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + }, + "quantity": { + "value": 200, + "unit": "dose", + "system": "http://snomed.info/sct", + "code": "3317411000001100" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "666666" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "telecom": [ + { + "system": "phone", + "value": "0115 9737320", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e", + "resource": { + "resourceType": "CommunicationRequest", + "status": "unknown", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "payload": [ + { + "contentString": "Due to Coronavirus restrictions Church View Surgery is CLOSED until further notice" + }, + { + "contentReference": { + "reference": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "display": "List of Repeat Medications for re-ordering" + } + } + ], + "requester": { + "type": "Organization", + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + }, + "recipient": [ + { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9453740519" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "resource": { + "resourceType": "List", + "status": "current", + "mode": "snapshot", + "code": { + "text": "Repeat Medications" + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "entry": [ + { + "item": { + "display": "Bendroflumethiazide 2.5mg tablets (3/6)" + } + }, + { + "item": { + "display": "Salbutamol 100micrograms/dose inhaler CFC free (2/6)" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "recorded": "2021-02-11T16:37:49+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:54+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPmpobitWQVY4ZitHUUFxcDQxd2JaaSs3bXU1cz08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+RUlGSG1oTUZydnB5aXVvQUFadkpJajVGOGJMZzM2clJPR1pMaEQ1YkQvY1NkaVY3QkJ2ZUh1ai83QUU3R01yYjR3RU5iZ2s3cjB5WkE4eDRYSFN5Y25hL1hzd3h5c1RmTEdpS0hQYzNtWVZOMGRQeXVBakJjQVZFeHpsaEgwcWJabGp1Mm1oS3FqQVJudk1EMFVQdXhtRnQySVBLVkhPVVdqaU1VYXRHNGYwPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/repeat-prescribing/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/primary-care/repeat-prescribing/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..2402c5c7 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/repeat-prescribing/1-Prepare-Request-200_OK.json @@ -0,0 +1,877 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "46183abc-9fad-4673-85db-ce2cb6614732" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + }, + "display": "The Simple Pharmacy" + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "focus": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00" + }, + { + "reference": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "numberOfPrescriptionsIssued", + "valueUnsignedInt": 2 + }, + { + "url": "authorisationExpiryDate", + "valueDateTime": "2023-04-07" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "instance-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "basedOn": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation", + "extension": [ + { + "url": "numberOfRepeatsAllowed", + "valueInteger": 5 + } + ] + } + ], + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + } + ], + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous", + "display": "Continuous long term therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "numberOfRepeatsAllowed": 0, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "numberOfPrescriptionsIssued", + "valueUnsignedInt": 2 + }, + { + "url": "authorisationExpiryDate", + "valueDateTime": "2023-04-07" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "6989b7bd-8db6-428c-a593-4022e3044c00" + } + ], + "status": "active", + "intent": "instance-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322341003", + "display": "Co-codamol 30mg/500mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "basedOn": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation", + "extension": [ + { + "url": "numberOfRepeatsAllowed", + "valueInteger": 5 + } + ] + } + ], + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + } + ], + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous", + "display": "Continuous long term therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "numberOfRepeatsAllowed": 0, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "numberOfPrescriptionsIssued", + "valueUnsignedInt": 2 + }, + { + "url": "authorisationExpiryDate", + "valueDateTime": "2023-04-07" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "2868554c-5565-4d31-b92a-c5b8dab8b90a" + } + ], + "status": "active", + "intent": "instance-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321080004", + "display": "Pseudoephedrine hydrochloride 60mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "basedOn": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation", + "extension": [ + { + "url": "numberOfRepeatsAllowed", + "valueInteger": 5 + } + ] + } + ], + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + } + ], + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous", + "display": "Continuous long term therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "numberOfRepeatsAllowed": 0, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "numberOfPrescriptionsIssued", + "valueUnsignedInt": 2 + }, + { + "url": "authorisationExpiryDate", + "valueDateTime": "2023-04-07" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "instance-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "basedOn": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation", + "extension": [ + { + "url": "numberOfRepeatsAllowed", + "valueInteger": 5 + } + ] + } + ], + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + } + ], + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous", + "display": "Continuous long term therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "numberOfRepeatsAllowed": 0, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + ], + "name": [ + { + "use": "usual", + "family": "TWITCHETT", + "given": [ + "STACEY", + "MARISA" + ], + "prefix": [ + "MS" + ] + } + ], + "gender": "female", + "birthDate": "1948-04-30", + "address": [ + { + "use": "home", + "line": [ + "10 HEATHFIELD", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + }, + { + "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01234567890" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0115 9737320" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/repeat-prescribing/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/primary-care/repeat-prescribing/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..b7d4857d --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/repeat-prescribing/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+aDBHZnFHSjl4VG4rMTMvbytlbG1iT05JRFY0PTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-21T13:47:00+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/repeat-prescribing/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/repeat-prescribing/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..09254591 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/repeat-prescribing/1-Process-Request-Send-200_OK.json @@ -0,0 +1,912 @@ +{ + "resourceType": "Bundle", + "id": "0cb82cfa-76c8-4fb2-a08e-bf0e326e5487", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "46183abc-9fad-4673-85db-ce2cb6614732" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:17773b27-427e-4940-8c16-64cdac715001", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + }, + "display": "The Simple Pharmacy" + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + }, + "display": "HALLGARTH SURGERY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/A83008" + }, + "focus": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00" + }, + { + "reference": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a" + }, + { + "reference": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "numberOfPrescriptionsIssued", + "valueUnsignedInt": 2 + }, + { + "url": "authorisationExpiryDate", + "valueDateTime": "2023-04-07" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "instance-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "basedOn": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation", + "extension": [ + { + "url": "numberOfRepeatsAllowed", + "valueInteger": 5 + } + ] + } + ], + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + } + ], + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous", + "display": "Continuous long term therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "numberOfRepeatsAllowed": 0, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:6989b7bd-8db6-428c-a593-4022e3044c00", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "numberOfPrescriptionsIssued", + "valueUnsignedInt": 2 + }, + { + "url": "authorisationExpiryDate", + "valueDateTime": "2023-04-07" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "6989b7bd-8db6-428c-a593-4022e3044c00" + } + ], + "status": "active", + "intent": "instance-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322341003", + "display": "Co-codamol 30mg/500mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "basedOn": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation", + "extension": [ + { + "url": "numberOfRepeatsAllowed", + "valueInteger": 5 + } + ] + } + ], + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + } + ], + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous", + "display": "Continuous long term therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "2 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "numberOfRepeatsAllowed": 0, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:2868554c-5565-4d31-b92a-c5b8dab8b90a", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "numberOfPrescriptionsIssued", + "valueUnsignedInt": 2 + }, + { + "url": "authorisationExpiryDate", + "valueDateTime": "2023-04-07" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "2868554c-5565-4d31-b92a-c5b8dab8b90a" + } + ], + "status": "active", + "intent": "instance-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321080004", + "display": "Pseudoephedrine hydrochloride 60mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "basedOn": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation", + "extension": [ + { + "url": "numberOfRepeatsAllowed", + "valueInteger": 5 + } + ] + } + ], + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + } + ], + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous", + "display": "Continuous long term therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "numberOfRepeatsAllowed": 0, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:5cb17f5a-11ac-4e18-825f-6470467238b3", + "resource": { + "resourceType": "MedicationRequest", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "numberOfPrescriptionsIssued", + "valueUnsignedInt": 2 + }, + { + "url": "authorisationExpiryDate", + "valueDateTime": "2023-04-07" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5cb17f5a-11ac-4e18-825f-6470467238b3" + } + ], + "status": "active", + "intent": "instance-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324252006", + "display": "Azithromycin 250mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "basedOn": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation", + "extension": [ + { + "url": "numberOfRepeatsAllowed", + "valueInteger": 5 + } + ] + } + ], + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "299c610b-f4f1-4eac-a7d7-4fb6b0556e11" + } + } + ], + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "24F5DA-A83008-7EFE6Z", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "20ba5fb5-cb58-462c-923e-22d180b09356" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous", + "display": "Continuous long term therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "3 times a day for 10 days", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2022-10-21" + }, + "numberOfRepeatsAllowed": 0, + "quantity": { + "value": 30, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + ], + "name": [ + { + "use": "usual", + "family": "TWITCHETT", + "given": [ + "STACEY", + "MARISA" + ], + "prefix": [ + "MS" + ] + } + ], + "gender": "female", + "birthDate": "1948-04-30", + "address": [ + { + "use": "home", + "line": [ + "10 HEATHFIELD", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "200102238987" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + }, + { + "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", + "code": "R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01234567890" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6095103" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "977677" + } + ], + "name": [ + { + "family": "BOIN", + "given": [ + "C" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A83008" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "76", + "display": "GP PRACTICE" + } + ] + } + ], + "name": "HALLGARTH SURGERY", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0115 9737320" + } + ], + "address": [ + { + "use": "work", + "type": "both", + "line": [ + "HALLGARTH SURGERY", + "CHEAPSIDE" + ], + "city": "SHILDON", + "district": "COUNTY DURHAM", + "postalCode": "DL4 2HP" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "84H" + }, + "display": "NHS COUNTY DURHAM CCG" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:0cb82cfa-76c8-4fb2-a08e-bf0e326e5487" + } + ], + "recorded": "2022-10-21T13:47:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2022-10-21T13:47:00+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+CiAgICAgICAgICAgIDxTaWduZWRJbmZvPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+WTg5YWNmSC90VkVtSXI2aVlrRVJrWWMxbG1jPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPgogICAgICAgICAgICA8U2lnbmF0dXJlVmFsdWU+PC9TaWduYXR1cmVWYWx1ZT4KICAgICAgICAgICAgPEtleUluZm8+PFg1MDlEYXRhPjxYNTA5Q2VydGlmaWNhdGU+PC9YNTA5Q2VydGlmaWNhdGU+PC9YNTA5RGF0YT48L0tleUluZm8+CiAgICAgICAgICA8L1NpZ25hdHVyZT4=" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/primary-care/repeat-prescribing/1-Process-Response-Send-200_OK.json b/src/test/resources/examples/full_examples/primary-care/repeat-prescribing/1-Process-Response-Send-200_OK.json new file mode 100644 index 00000000..d0c17019 --- /dev/null +++ b/src/test/resources/examples/full_examples/primary-care/repeat-prescribing/1-Process-Response-Send-200_OK.json @@ -0,0 +1,12 @@ +{ + "resourceType": "OperationOutcome", + "meta": { + "lastUpdated": "2022-10-21T13:47:00+00:00" + }, + "issue": [ + { + "severity": "information", + "code": "informational" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/no-nominated-pharmacy/clinical-practitioner/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/no-nominated-pharmacy/clinical-practitioner/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..5a08d5a9 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/no-nominated-pharmacy/clinical-practitioner/1-Prepare-Request-200_OK.json @@ -0,0 +1,340 @@ +{ + "resourceType": "Bundle", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "1f829687-73de-48a6-84f4-78f094f0ba10" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "resource": { + "resourceType": "MessageHeader", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "c7f5c532-6835-4907-b83e-dc46f758129c" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "1270de18-f486-4ae4-8f00-e92dd9ed6cda" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "B61BA2-0RRERP-F2ACDV" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "DAVIS", + "given": [ + "JANE" + ], + "prefix": [ + "MRS" + ] + } + ], + "gender": "female", + "birthDate": "1999-11-25", + "address": [ + { + "use": "home", + "line": [ + "53 Harrogate Road", + "Chapel Allerton", + "Leeds" + ], + "postalCode": "LS7 3PY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": [ + "RANDOM" + ], + "prefix": [ + "MR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role " + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RRERP" + } + ], + "name": "PRESCRIBER 240", + "address": [ { + "line": [ + "SEVERN FIELDS MEDICAL PRACTICE", + "SUNDORNE ROAD", + "SHREWSBURY" + ], + "postalCode": "SY1 4RQ" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01233123123", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RRE" + }, + "display": "MIDLANDS PARTNERSHIP NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/no-nominated-pharmacy/clinical-practitioner/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/no-nominated-pharmacy/clinical-practitioner/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..075e6118 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/no-nominated-pharmacy/clinical-practitioner/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+NkUwUjk4dzJtakFXcEhzdDlQNEtVdndQNnFrPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/no-nominated-pharmacy/clinical-practitioner/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/no-nominated-pharmacy/clinical-practitioner/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..df5ec426 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/no-nominated-pharmacy/clinical-practitioner/1-Process-Request-Send-200_OK.json @@ -0,0 +1,375 @@ +{ + "resourceType": "Bundle", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "1f829687-73de-48a6-84f4-78f094f0ba10" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "resource": { + "resourceType": "MessageHeader", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "c7f5c532-6835-4907-b83e-dc46f758129c" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "1270de18-f486-4ae4-8f00-e92dd9ed6cda" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "B61BA2-0RRERP-F2ACDV" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "0004" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "DAVIS", + "given": [ + "JANE" + ], + "prefix": [ + "MRS" + ] + } + ], + "gender": "female", + "birthDate": "1999-11-25", + "address": [ + { + "use": "home", + "line": [ + "53 Harrogate Road", + "Chapel Allerton", + "Leeds" + ], + "postalCode": "LS7 3PY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": [ + "RANDOM" + ], + "prefix": [ + "MR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role " + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RRERP" + } + ], + "name": "PRESCRIBER 240", + "address": [ { + "line": [ + "SEVERN FIELDS MEDICAL PRACTICE", + "SUNDORNE ROAD", + "SHREWSBURY" + ], + "postalCode": "SY1 4RQ" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01233123123", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RRE" + }, + "display": "MIDLANDS PARTNERSHIP NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2022-02-28T14:36:47+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+CiAgICAgICAgICAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPkVnRG9raEFvYjl2MjNybWx1aktRWU1oSHpJRT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4KICAgICAgICAgICAgIDxTaWduYXR1cmVWYWx1ZT48L1NpZ25hdHVyZVZhbHVlPgogICAgICAgICAgICAgPEtleUluZm8+PFg1MDlEYXRhPjxYNTA5Q2VydGlmaWNhdGU+PC9YNTA5Q2VydGlmaWNhdGU+PC9YNTA5RGF0YT48L0tleUluZm8+CiAgICAgICAgICAgPC9TaWduYXR1cmU+" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..c1f54d91 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/1-Prepare-Request-200_OK.json @@ -0,0 +1,347 @@ +{ + "resourceType": "Bundle", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "c7cb1c13-6129-468b-899b-091a71d86d78" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "resource": { + "resourceType": "MessageHeader", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "dcc7c70c-bb4f-46a8-93ca-1f518611b798" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "7e27431e-367c-4bee-b9d7-78619e4b7d2d" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "1A7D94-0RRERP-549310" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304122" + } + ], + "name": [ + { + "use": "usual", + "family": "FORREST", + "given": [ + "LILAC", + "EMERSON" + ], + "prefix": [ + "MS" + ] + } + ], + "gender": "female", + "birthDate": "2011-03-30", + "address": [ + { + "use": "home", + "line": [ + "10 HAWKHURST", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QX" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": [ + "RANDOM" + ], + "prefix": [ + "MR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role " + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RRERP" + } + ], + "name": "PRESCRIBER 240", + "address": [ { + "line": [ + "SEVERN FIELDS MEDICAL PRACTICE", + "SUNDORNE ROAD", + "SHREWSBURY" + ], + "postalCode": "SY1 4RQ" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01233123123", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RRE" + }, + "display": "MIDLANDS PARTNERSHIP NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..7b05a36c --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+a0h1czhKS3JHTG02UGxwWjhTcUhyQSs5YnhJPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/1-Process-Request-Cancel-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/1-Process-Request-Cancel-200_OK.json new file mode 100644 index 00000000..11ed1944 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/1-Process-Request-Cancel-200_OK.json @@ -0,0 +1,404 @@ +{ + "resourceType": "Bundle", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "78b0df32-e47a-4b94-9f68-e0a3d2825696" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "resource": { + "resourceType": "MessageHeader", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order-update", + "display": "Prescription Order Update" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:7202dc57-9ac4-4666-a1c4-068a940c7a33" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "dcc7c70c-bb4f-46a8-93ca-1f518611b798" + } + ], + "status": "cancelled", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "7e27431e-367c-4bee-b9d7-78619e4b7d2d" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "1A7D94-0RRERP-549310" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + }, + "statusReason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-status-reason", + "code": "0005", + "display": "At the Patient's request" + } + ] + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304122" + } + ], + "name": [ + { + "use": "usual", + "family": "FORREST", + "given": ["LILAC", "EMERSON"], + "prefix": ["MS"] + } + ], + "gender": "female", + "birthDate": "2011-03-30", + "address": [ + { + "use": "home", + "line": ["10 HAWKHURST", "COBHAM", "SURREY"], + "postalCode": "KT11 2QX" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role " + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RRERP" + } + ], + "name": "PRESCRIBER 240", + "address": [ + { + "line": [ + "SEVERN FIELDS MEDICAL PRACTICE", + "SUNDORNE ROAD", + "SHREWSBURY" + ], + "postalCode": "SY1 4RQ" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01233123123", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RRE" + }, + "display": "MIDLANDS PARTNERSHIP NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:7202dc57-9ac4-4666-a1c4-068a940c7a33", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "212304192555" + } + ], + "practitioner": { + "reference": "urn:uuid:16fdc6d9-414a-487d-8939-ddc432066c3b" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8006:G8006:R8006", + "display": "Admin - Medical Secretary Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:16fdc6d9-414a-487d-8939-ddc432066c3b", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086718101" + }, + { + "system": "https://fhir.hl7.org.uk/Id/professional-code", + "value": "unknown" + } + ], + "name": [ + { + "family": "Secretary", + "given": ["Medical"], + "prefix": ["MS"] + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..a8173c9e --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/1-Process-Request-Send-200_OK.json @@ -0,0 +1,382 @@ +{ + "resourceType": "Bundle", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "c7cb1c13-6129-468b-899b-091a71d86d78" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "resource": { + "resourceType": "MessageHeader", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "dcc7c70c-bb4f-46a8-93ca-1f518611b798" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "7e27431e-367c-4bee-b9d7-78619e4b7d2d" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "1A7D94-0RRERP-549310" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304122" + } + ], + "name": [ + { + "use": "usual", + "family": "FORREST", + "given": [ + "LILAC", + "EMERSON" + ], + "prefix": [ + "MS" + ] + } + ], + "gender": "female", + "birthDate": "2011-03-30", + "address": [ + { + "use": "home", + "line": [ + "10 HAWKHURST", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QX" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": [ + "RANDOM" + ], + "prefix": [ + "MR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role " + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RRERP" + } + ], + "name": "PRESCRIBER 240", + "address": [ { + "line": [ + "SEVERN FIELDS MEDICAL PRACTICE", + "SUNDORNE ROAD", + "SHREWSBURY" + ], + "postalCode": "SY1 4RQ" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01233123123", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RRE" + }, + "display": "MIDLANDS PARTNERSHIP NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2022-02-28T14:57:09+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+CiAgICAgICAgICAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPnoxRGZJYkJNV0hXeE9rdk8yQXVqenE2Um1ZTT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4KICAgICAgICAgICAgIDxTaWduYXR1cmVWYWx1ZT48L1NpZ25hdHVyZVZhbHVlPgogICAgICAgICAgICAgPEtleUluZm8+PFg1MDlEYXRhPjxYNTA5Q2VydGlmaWNhdGU+PC9YNTA5Q2VydGlmaWNhdGU+PC9YNTA5RGF0YT48L0tleUluZm8+CiAgICAgICAgICAgPC9TaWduYXR1cmU+" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/1-VerifySignature-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/1-VerifySignature-Request-200_OK.json new file mode 100644 index 00000000..2e95a3da --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/1-VerifySignature-Request-200_OK.json @@ -0,0 +1,400 @@ +{ + "resourceType": "Bundle", + "id": "1afb59cc-ebc4-49e8-8902-2c1d3824352e", + "meta": { + "lastUpdated": "2022-02-17T04:41:42+00:00" + }, + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "1afb59cc-ebc4-49e8-8902-2c1d3824352e" + }, + "type": "searchset", + "total": 1, + "entry": [ + { + "fullUrl": "urn:uuid:60e2080a-dcc1-4a24-bba1-6ffe8bd7fc41", + "resource": { + "resourceType": "Bundle", + "id": "60e2080a-dcc1-4a24-bba1-6ffe8bd7fc41", + "meta": { + "lastUpdated": "2022-02-17T04:40:01+00:00" + }, + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "6faf886e-b7a9-4a82-ab48-cc51747ec9e7" + }, + "type": "message", + "entry": [ + { + "resource": { + "resourceType": "MessageHeader", + "id": "0482f88a-fea5-4608-baec-b7b417e69181", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-Spine-MessageHeader-messageId", + "valueIdentifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "6faf886e-b7a9-4a82-ab48-cc51747ec9e7" + } + } + ], + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "X2601" + }, + "display": "NHS Digital Spine" + }, + "source": { + "name": "NHS Spine", + "endpoint": "https://internal-dev.api.service.nhs.uk/electronic-prescriptions-pr-763/$process-message" + }, + "response": { + "identifier": "862accf6-8a0a-47ae-b4c9-eb9bc8fd637e", + "code": "ok" + }, + "focus": [ + { + "reference": "urn:uuid:bf47a6f3-6ffc-4e49-af55-dac73f0f7108" + }, + { + "reference": "urn:uuid:bb0a194b-f21f-4571-9d75-e967906316f9" + } + ] + }, + "fullUrl": "urn:uuid:0482f88a-fea5-4608-baec-b7b417e69181" + }, + { + "resource": { + "resourceType": "Patient", + "id": "bf47a6f3-6ffc-4e49-af55-dac73f0f7108", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304122" + } + ], + "name": [ + { + "use": "usual", + "family": "FORREST", + "given": ["LILAC", "EMERSON"], + "prefix": ["MS"] + } + ], + "gender": "female", + "birthDate": "2011-03-30", + "address": [ + { + "use": "home", + "line": ["10 HAWKHURST", "COBHAM", "SURREY"], + "postalCode": "KT11 2QX" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + }, + "fullUrl": "urn:uuid:bf47a6f3-6ffc-4e49-af55-dac73f0f7108" + }, + { + "resource": { + "resourceType": "PractitionerRole", + "id": "e54a2a9b-ae68-4317-ba68-01aa492d788a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "683458" + } + ], + "practitioner": { + "reference": "urn:uuid:9e945d89-785c-4fb6-bc15-2b7eacad883b" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "S8000:G8000:R8000" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01234567890" + } + ], + "organization": { + "reference": "urn:uuid:60183aa6-3bd5-4ce9-a1ea-21f76be55526" + } + }, + "fullUrl": "urn:uuid:e54a2a9b-ae68-4317-ba68-01aa492d788a" + }, + { + "resource": { + "resourceType": "Location", + "id": "3b613208-7a00-497f-a9a2-25890c5d3fe6", + "address": { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL", "TAUNTON"], + "postalCode": "TA1 5DA" + } + }, + "fullUrl": "urn:uuid:3b613208-7a00-497f-a9a2-25890c5d3fe6" + }, + { + "resource": { + "resourceType": "Practitioner", + "id": "9e945d89-785c-4fb6-bc15-2b7eacad883b", + "identifier": [ + { + "system": "https://fhir.hl7.org.uk/Id/gphc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + }, + "fullUrl": "urn:uuid:9e945d89-785c-4fb6-bc15-2b7eacad883b" + }, + { + "resource": { + "resourceType": "Organization", + "id": "60183aa6-3bd5-4ce9-a1ea-21f76be55526", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01823333444" + } + ], + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL", "TAUNTON"], + "postalCode": "TA1 5DA" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + }, + "fullUrl": "urn:uuid:60183aa6-3bd5-4ce9-a1ea-21f76be55526" + }, + { + "resource": { + "resourceType": "MedicationRequest", + "id": "bb0a194b-f21f-4571-9d75-e967906316f9", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:e54a2a9b-ae68-4317-ba68-01aa492d788a" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "0b7953a8-eb30-47b6-a306-769badf67478" + } + ], + "status": "active", + "intent": "order", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:bf47a6f3-6ffc-4e49-af55-dac73f0f7108" + }, + "authoredOn": "2022-02-17T04:40:01+00:00", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "requester": { + "reference": "urn:uuid:e54a2a9b-ae68-4317-ba68-01aa492d788a" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "2A9172-A99968-8F11FG", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "b6ea6e2e-c302-4f1e-a8d7-10c0469d23be" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "10 milligram, Inject, Subcutaneous route, once weekly" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 0, + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + }, + "fullUrl": "urn:uuid:bb0a194b-f21f-4571-9d75-e967906316f9" + }, + { + "resource": { + "resourceType": "Provenance", + "id": "54fc971f-db30-4f07-abd1-b25b74335948", + "agent": [ + { + "who": { + "reference": "urn:uuid:e54a2a9b-ae68-4317-ba68-01aa492d788a" + } + } + ], + "recorded": "2022-02-17T04:40:01+00:00", + "signature": [ + { + "who": { + "reference": "urn:uuid:e54a2a9b-ae68-4317-ba68-01aa492d788a" + }, + "when": "2022-02-17T04:40:01+00:00", + "data": "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+PFNpZ25lZEluZm8+PENhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiPjwvQ2Fub25pY2FsaXphdGlvbk1ldGhvZD48U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3JzYS1zaGExIj48L1NpZ25hdHVyZU1ldGhvZD48UmVmZXJlbmNlPjxUcmFuc2Zvcm1zPjxUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiPjwvVHJhbnNmb3JtPjwvVHJhbnNmb3Jtcz48RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3NoYTEiPjwvRGlnZXN0TWV0aG9kPjxEaWdlc3RWYWx1ZT5PbENRTmhtOHM0eThaY1l1Lzg3VVZQaE5WeUk9PC9EaWdlc3RWYWx1ZT48L1JlZmVyZW5jZT48L1NpZ25lZEluZm8+PFNpZ25hdHVyZVZhbHVlPnBsSmprT0FlOHFuMmc5QndMSTdRdUJkZmw5Z2VCdG9LZWJHdzM0aEl3OGc4dVY5bk9OZDh3TEJPbmxnZGdHbWpVcjAyRVdIaFRRYXdseHoxRmFJUDVBa3F1bExJK2QvL2V6cksyK0YxU1FFQ2ZPMmJ4QTg2NWtqbWxndCtnVG5kSDQ3K2NJYzdHRUx4Y2RpMXlxN1E3WVVGSXp2R2VrU0s4V2pWQ2kxemkvOD08L1NpZ25hdHVyZVZhbHVlPjxLZXlJbmZvPjxYNTA5RGF0YT48WDUwOUNlcnRpZmljYXRlPk1JSUR1RENDQXFDZ0F3SUJBZ0lFWGNtdEh6QU5CZ2txaGtpRzl3MEJBUXNGQURBMk1Rd3dDZ1lEVlFRS0V3TnVhSE14Q3pBSkJnTlZCQXNUQWtOQk1Sa3dGd1lEVlFRREV4Qk9TRk1nU1U1VUlFeGxkbVZzSURGRU1CNFhEVEl3TVRBeU1qRXdNakUxTlZvWERUSXlNVEF5TWpFd05URTFOVm93UXpFTU1Bb0dBMVVFQ2hNRGJtaHpNUTh3RFFZRFZRUUxFd1pRWlc5d2JHVXhJakFnQmdOVkJBTU1HVFUxTlRJMU16VXlNVEV3T0Y5U1FVNUVUMDFmVlZORlVsRXdnWjh3RFFZSktvWklodmNOQVFFQkJRQURnWTBBTUlHSkFvR0JBS3Q0c3pOdzdPQUg3QVFSckRlL3hCSW1zTW1NaVM5RXNyVDNhM3AvTGgzYnJkekk5YWFqVFVaMmIvY3ZiT2E3UGVZZDd1K0s0YTJaZDBYayswR0ZtWUd6U1ZYNmlZamJsd3IwdmFpMzF6VjdHK2xHdkh4SDZwU29MQ3dJQ2FaQUZ3YWJlRDVPejk0K3lBM2FXTld0R1YwRGZoOXF3SDNaRkNJTVJzdmVyTjFwQWdNQkFBR2pnZ0ZETUlJQlB6QU9CZ05WSFE4QkFmOEVCQU1DQmtBd1pRWURWUjBnQVFIL0JGc3dXVEJYQmdzcWhqb0FpWHRtQUFNQ0FEQklNRVlHQ0NzR0FRVUZCd0lCRmpwb2RIUndjem92TDNCcmFTNXVhSE11ZFdzdlkyVnlkR2xtYVdOaGRHVmZjRzlzYVdOcFpYTXZZMjl1ZEdWdWRGOWpiMjF0YVhSdFpXNTBNRE1HQTFVZEh3UXNNQ293S0tBbW9DU0dJbWgwZEhBNkx5OWpjbXd1Ym1oekxuVnJMMmx1ZEM4eFpDOWpjbXhqTXk1amNtd3dLd1lEVlIwUUJDUXdJb0FQTWpBeU1ERXdNakl4TURJeE5UVmFnUTh5TURJeU1ETXhOekV3TlRFMU5Wb3dId1lEVlIwakJCZ3dGb0FVb0pZZmdZVE5QZDZFVUtMNlFMSXpIeFk1UEZJd0hRWURWUjBPQkJZRUZMdHl2WVN5YXFnNjBBRVVaZ3hrMHdyalJKYytNQWtHQTFVZEV3UUNNQUF3R1FZSktvWklodlo5QjBFQUJBd3dDaHNFVmpndU13TUNCTEF3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUJjenk4QjhqdVBwSWZhVE5GY3hyQzIyYUNYL3hZWm1ockwvTnZJQkFhWDFHNWhqaXdta0dLRTJoUlRJcjY3UHhaeG1Yc0p4aWdSQk1IUGxJK2xZLytva3pIMEdpN2I1YnFsdzdweEdJZ0pPMDAwdzhwRnN2bzl3NDJJWWhIb2Rzdm5EVlN4aE1UMEo0NlFoazlzb0UwTGpvRVVMS1FQUGxZR2tlL0dsM20xN0l0Rll3T2JRSDBmTUV3bWlxQnllSWZ6N2dTY2NPekw1Y0lwNlBjWlRPam8ySXFRcGdFbWhqT2NSSW5FcUFOaXRTZGpvaUpBSnpwYWFaallUUmRIVVg3aTdhakVpSDRtOTFuRlcrNEFxa050dGxiNFdjR0tzU21XZ2ZLS2hlRjRJb1pLTUU4MHhlclNnTXk4dnRqTE9CSkNHWHowd0xHbVF1Um14TVRxODhxND08L1g1MDlDZXJ0aWZpY2F0ZT48L1g1MDlEYXRhPjwvS2V5SW5mbz48L1NpZ25hdHVyZT4=", + "type": [ + { + "code": "1.2.840.10065.1.12.1.1", + "system": "urn:iso-astm:E1762-95:2013" + } + ] + } + ], + "target": [ + { + "reference": "urn:uuid:0482f88a-fea5-4608-baec-b7b417e69181" + }, + { + "reference": "urn:uuid:bf47a6f3-6ffc-4e49-af55-dac73f0f7108" + }, + { + "reference": "urn:uuid:e54a2a9b-ae68-4317-ba68-01aa492d788a" + }, + { + "reference": "urn:uuid:3b613208-7a00-497f-a9a2-25890c5d3fe6" + }, + { + "reference": "urn:uuid:9e945d89-785c-4fb6-bc15-2b7eacad883b" + }, + { + "reference": "urn:uuid:60183aa6-3bd5-4ce9-a1ea-21f76be55526" + }, + { + "reference": "urn:uuid:a0c681a5-6226-49d6-9595-600327ebd13c" + }, + { + "reference": "urn:uuid:bb0a194b-f21f-4571-9d75-e967906316f9" + } + ] + }, + "fullUrl": "urn:uuid:54fc971f-db30-4f07-abd1-b25b74335948" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..a3298158 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/1-Prepare-Request-200_OK.json @@ -0,0 +1,434 @@ +{ + "resourceType": "Bundle", + "id": "2c251ced-dc17-47ff-bd2f-36f4b8c27dda", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "022dd4b4-3f7e-47ad-adb5-00e2b64cd4b9" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:2c251ced-dc17-47ff-bd2f-36f4b8c27dda", + "resource": { + "resourceType": "MessageHeader", + "id": "A8F71A7D-B426-4B55-80A5-05436DE80486", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "SEVEN|FIFTY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://int.api.service.nhs.uk/electronic-prescriptions/$prepare", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8" + }, + { + "reference": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + } + ] + } + }, + { + "fullUrl": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8", + "resource": { + "resourceType": "MedicationRequest", + "id": "00d3dd04-d162-49ce-a808-6f220906f1c8", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ControlledDrug", + "extension": [ + { + "url": "quantityWords", + "valueString": "twenty eight" + }, + { + "url": "schedule", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-controlled-drug", + "code": "CD2", + "display": "Schedule 2" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "00d3dd04-d162-49ce-a808-6f220906f1c8" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "36126511000001106", + "display": "Morphine 10mg modified-release tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a524e315-e629-4381-90e3-df436f0d3a03" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "DE1AF4-A99968-4C918K" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "1 tablet, daily" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186", + "resource": { + "resourceType": "MedicationRequest", + "id": "1de954ac-a1ea-49ab-bd4e-88e99f191186", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "1de954ac-a1ea-49ab-bd4e-88e99f191186" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321196004", + "display": "Diazepam 2mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a524e315-e629-4381-90e3-df436f0d3a03" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "DE1AF4-A99968-4C918K" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "note": [ + { + "text": "Dosage has been decreased on advice from the hospital." + } + ], + "dosageInstruction": [ + { + "text": "1 tablet, at NIGHT" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449303703" + } + ], + "name": [ + { + "use": "usual", + "family": "AKRASI", + "given": ["ROYDON"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1959-08-20", + "address": [ + { + "use": "home", + "line": ["35 STEVENS LANE", "CLAYGATE", "SURREY"], + "postalCode": "KT10 0TQ" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "Fiftyseven", + "given": ["Random"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "683458" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..58d67283 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+SDNxcGQzYWJEb0RKRmU4ZzdOTDRVSit2a1ZNPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..7407dfa4 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/1-Process-Request-Send-200_OK.json @@ -0,0 +1,490 @@ +{ + "resourceType": "Bundle", + "id": "2c251ced-dc17-47ff-bd2f-36f4b8c27dda", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "3b87cba2-c349-468a-ab96-5e1c7457a4b6" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:2c251ced-dc17-47ff-bd2f-36f4b8c27dda", + "resource": { + "resourceType": "MessageHeader", + "id": "A8F71A7D-B426-4B55-80A5-05436DE80486", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "SEVEN|FIFTY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://int.api.service.nhs.uk/electronic-prescriptions/$process-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8" + }, + { + "reference": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + { + "reference": "urn:uuid:b2a46b68-9e1e-49e6-a132-88b3308ed561" + } + ] + } + }, + { + "fullUrl": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8", + "resource": { + "resourceType": "MedicationRequest", + "id": "00d3dd04-d162-49ce-a808-6f220906f1c8", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ControlledDrug", + "extension": [ + { + "url": "quantityWords", + "valueString": "twenty eight" + }, + { + "url": "schedule", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-controlled-drug", + "code": "CD2", + "display": "Schedule 2" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "00d3dd04-d162-49ce-a808-6f220906f1c8" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "36126511000001106", + "display": "Morphine 10mg modified-release tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a524e315-e629-4381-90e3-df436f0d3a03" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "DE1AF4-A99968-4C918K" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "1 tablet, daily" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186", + "resource": { + "resourceType": "MedicationRequest", + "id": "1de954ac-a1ea-49ab-bd4e-88e99f191186", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "1de954ac-a1ea-49ab-bd4e-88e99f191186" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321196004", + "display": "Diazepam 2mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a524e315-e629-4381-90e3-df436f0d3a03" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "DE1AF4-A99968-4C918K" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "note": [ + { + "text": "Dosage has been decreased on advice from the hospital." + } + ], + "dosageInstruction": [ + { + "text": "1 tablet, at NIGHT" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449303703" + } + ], + "name": [ + { + "use": "usual", + "family": "AKRASI", + "given": ["ROYDON"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1959-08-20", + "address": [ + { + "use": "home", + "line": ["35 STEVENS LANE", "CLAYGATE", "SURREY"], + "postalCode": "KT10 0TQ" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "Fiftyseven", + "given": ["Random"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "683458" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:b2a46b68-9e1e-49e6-a132-88b3308ed561", + "resource": { + "resourceType": "Provenance", + "id": "b2a46b68-9e1e-49e6-a132-88b3308ed561", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8" + }, + { + "reference": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:46+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPllmbWVQTUlQa2VqNkIxTFRjanQvU0dWblRNMD08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+QTdlU1lLZDhaWDdhcThSRVdyWnUvY0huU0txRlVRTHNMVEoycUk4bU05cVlVbWUycUEzQlgwalo5THNLNUVVcWFGV3NCMVNnOWhuQVYxRjhsVmFTN1orbU5lanloREwyT20wSm1qeUt0RUlrN1ExeHRBcmxUNWZvRkhaVFkrOVpzUldROHFtVVJaUU9SQkVONkg2UHV1Y3pTWUg3bjNQL3hJUmdpQlZuZWlJPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/2-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/2-Prepare-Request-200_OK.json new file mode 100644 index 00000000..780f6de3 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/2-Prepare-Request-200_OK.json @@ -0,0 +1,434 @@ +{ + "resourceType": "Bundle", + "id": "2c251ced-dc17-47ff-bd2f-36f4b8c27dda", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "a0419242-9181-4897-9ca6-ea15c6edf5a8" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:2c251ced-dc17-47ff-bd2f-36f4b8c27dda", + "resource": { + "resourceType": "MessageHeader", + "id": "A8F71A7D-B426-4B55-80A5-05436DE80486", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "SEVEN|FIFTY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://int.api.service.nhs.uk/electronic-prescriptions/$process-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8" + }, + { + "reference": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + } + ] + } + }, + { + "fullUrl": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8", + "resource": { + "resourceType": "MedicationRequest", + "id": "00d3dd04-d162-49ce-a808-6f220906f1c8", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ControlledDrug", + "extension": [ + { + "url": "quantityWords", + "valueString": "twenty eight" + }, + { + "url": "schedule", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-controlled-drug", + "code": "CD2", + "display": "Schedule 2" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "00d3dd04-d162-49ce-a808-6f220906f1c8" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "36126511000001106", + "display": "Morphine 10mg modified-release tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "8ff3b279-1483-4db1-a59e-cb7c6f63b17c" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "4F5374-A99968-4556BB" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "1 tablet, daily" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186", + "resource": { + "resourceType": "MedicationRequest", + "id": "1de954ac-a1ea-49ab-bd4e-88e99f191186", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "1de954ac-a1ea-49ab-bd4e-88e99f191186" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321196004", + "display": "Diazepam 2mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "8ff3b279-1483-4db1-a59e-cb7c6f63b17c" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "4F5374-A99968-4556BB" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "note": [ + { + "text": "Dosage has been decreased on advice from the hospital." + } + ], + "dosageInstruction": [ + { + "text": "1 tablet, at NIGHT" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449303703" + } + ], + "name": [ + { + "use": "usual", + "family": "AKRASI", + "given": ["ROYDON"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1959-08-20", + "address": [ + { + "use": "home", + "line": ["35 STEVENS LANE", "CLAYGATE", "SURREY"], + "postalCode": "KT10 0TQ" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "V81999" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "Fiftyseven", + "given": ["Random"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "683458" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/2-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/2-Prepare-Response-200_OK.json new file mode 100644 index 00000000..5c6c8e92 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/2-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+RE1UWlZlMlA5ZG1vTG04OXBvYXZnbmphbG1JPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/2-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/2-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..9d7cd163 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/controlled-drugs/2-Process-Request-Send-200_OK.json @@ -0,0 +1,490 @@ +{ + "resourceType": "Bundle", + "id": "2c251ced-dc17-47ff-bd2f-36f4b8c27dda", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "44ad6a7b-bd25-487f-a4d8-4b28857cca63" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:2c251ced-dc17-47ff-bd2f-36f4b8c27dda", + "resource": { + "resourceType": "MessageHeader", + "id": "A8F71A7D-B426-4B55-80A5-05436DE80486", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "SEVEN|FIFTY" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://int.api.service.nhs.uk/electronic-prescriptions/$process-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8" + }, + { + "reference": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + { + "reference": "urn:uuid:b2a46b68-9e1e-49e6-a132-88b3308ed561" + } + ] + } + }, + { + "fullUrl": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8", + "resource": { + "resourceType": "MedicationRequest", + "id": "00d3dd04-d162-49ce-a808-6f220906f1c8", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ControlledDrug", + "extension": [ + { + "url": "quantityWords", + "valueString": "twenty eight" + }, + { + "url": "schedule", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-controlled-drug", + "code": "CD2", + "display": "Schedule 2" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "00d3dd04-d162-49ce-a808-6f220906f1c8" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "36126511000001106", + "display": "Morphine 10mg modified-release tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "8ff3b279-1483-4db1-a59e-cb7c6f63b17c" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "4F5374-A99968-4556BB" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "1 tablet, daily" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186", + "resource": { + "resourceType": "MedicationRequest", + "id": "1de954ac-a1ea-49ab-bd4e-88e99f191186", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "1de954ac-a1ea-49ab-bd4e-88e99f191186" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321196004", + "display": "Diazepam 2mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "8ff3b279-1483-4db1-a59e-cb7c6f63b17c" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "4F5374-A99968-4556BB" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "note": [ + { + "text": "Dosage has been decreased on advice from the hospital." + } + ], + "dosageInstruction": [ + { + "text": "1 tablet, at NIGHT" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449303703" + } + ], + "name": [ + { + "use": "usual", + "family": "AKRASI", + "given": ["ROYDON"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1959-08-20", + "address": [ + { + "use": "home", + "line": ["35 STEVENS LANE", "CLAYGATE", "SURREY"], + "postalCode": "KT10 0TQ" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "V81999" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "Fiftyseven", + "given": ["Random"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "683458" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:b2a46b68-9e1e-49e6-a132-88b3308ed561", + "resource": { + "resourceType": "Provenance", + "id": "b2a46b68-9e1e-49e6-a132-88b3308ed561", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8" + }, + { + "reference": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:45+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPmVNUjlEQjI5bnNlZGZYUHR6aDRTU3ZYL0FXTT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+SHFQdzNHTzZLMXNTWXd5NFlYd2lxUnUxMWlRZnBPNkFVTW45cXA0bTBTdFVBcXJXYmt6dE9JWjcxeDgwVWwwZkl3RThzTDF3cHNtQXdoQzZxeFJuc3piemZvaXZQR25uMERnNFBneG1XVDZtOU1EL3ozNURxZVdWRkVrMGs1Nm4xUlE2REF2OHdDQXF0MVBzUS9uK1hha1hTSXQxS2pRNG00ckdhYzRJY0MwPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..4a598505 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/1-Prepare-Request-200_OK.json @@ -0,0 +1,684 @@ +{ + "resourceType": "Bundle", + "id": "f190329a-3854-4a31-9ff5-417969f2a40d", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "d8f2e9c9-789d-402f-9995-1911be7431df" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:f190329a-3854-4a31-9ff5-417969f2a40d", + "resource": { + "resourceType": "MessageHeader", + "id": "f190329a-3854-4a31-9ff5-417969f2a40d", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RANDOM|FIFTYSEVEN" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + } + ] + } + }, + { + "fullUrl": "urn:uuid:c1c92ca5-8d60-4d0d-a423-9c25f8a4c24d", + "resource": { + "resourceType": "MedicationRequest", + "id": "c1c92ca5-8d60-4d0d-a423-9c25f8a4c24d", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "c1c92ca5-8d60-4d0d-a423-9c25f8a4c24d" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "329968007", + "display": "Diclofenac potassium 50mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a030c4d8-c40f-4703-a020-2d91ed42fc62" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "4243A0-A99968-4E149+" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "1 tablet - 3 times a day - Oral route - One tablet three times daily", + "patientInstruction": "One tablet three times daily", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 1, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 84, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:586a29cc-55ec-4fa0-aca5-8cd99a04b9f9", + "resource": { + "resourceType": "MedicationRequest", + "id": "586a29cc-55ec-4fa0-aca5-8cd99a04b9f9", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "586a29cc-55ec-4fa0-aca5-8cd99a04b9f9" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322236009", + "display": "Paracetamol 500mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a030c4d8-c40f-4703-a020-2d91ed42fc62" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "4243A0-A99968-4E149+" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral route - One or two, four times daily", + "patientInstruction": "One or two, four times daily", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral route" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:4a850960-6d79-4fcc-8e5a-7f6e24b09d80", + "resource": { + "resourceType": "MedicationRequest", + "id": "4a850960-6d79-4fcc-8e5a-7f6e24b09d80", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "4a850960-6d79-4fcc-8e5a-7f6e24b09d80" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "36126811000001109", + "display": "Morphine 15mg modified-release tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a030c4d8-c40f-4703-a020-2d91ed42fc62" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "4243A0-A99968-4E149+" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "twice a day - Oral route - One twice daily", + "patientInstruction": "One twice daily", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral route" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 60, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:f3ed8bb5-7331-4510-978f-4fe2d7d7b3d7", + "resource": { + "resourceType": "MedicationRequest", + "id": "f3ed8bb5-7331-4510-978f-4fe2d7d7b3d7", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "f3ed8bb5-7331-4510-978f-4fe2d7d7b3d7" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "36120011000001101", + "display": "Fentanyl 25micrograms/hour transdermal patches" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a030c4d8-c40f-4703-a020-2d91ed42fc62" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "4243A0-A99968-4E149+" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "1 patch - every 72 hours - One every 72 hours", + "patientInstruction": "One every 72 hours", + "timing": { + "repeat": { + "frequency": 1, + "period": 72, + "periodUnit": "h" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 1, + "unit": "patch", + "system": "http://snomed.info/sct", + "code": "419702001" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 5, + "unit": "patch", + "system": "http://snomed.info/sct", + "code": "419702001" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449310394" + } + ], + "name": [ + { + "use": "official", + "family": "Lewington", + "given": ["TRACE"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1908-04-03", + "address": [ + { + "use": "home", + "line": ["1 NETHERNE LANE", "COULSDON", "Surrey"], + "postalCode": "CR5 1NR" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "201715352555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "683458" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..a3d275c1 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+Q3ppTHlDcE9aMkNNbzhkVzgzVkEvSjZFblVRPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..38617c76 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/1-Process-Request-Send-200_OK.json @@ -0,0 +1,719 @@ +{ + "resourceType": "Bundle", + "id": "f190329a-3854-4a31-9ff5-417969f2a40d", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "0e36a275-da3e-4bfa-9846-838ffe7b8e8b" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:f190329a-3854-4a31-9ff5-417969f2a40d", + "resource": { + "resourceType": "MessageHeader", + "id": "f190329a-3854-4a31-9ff5-417969f2a40d", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RANDOM|FIFTYSEVEN" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + } + ] + } + }, + { + "fullUrl": "urn:uuid:c1c92ca5-8d60-4d0d-a423-9c25f8a4c24d", + "resource": { + "resourceType": "MedicationRequest", + "id": "c1c92ca5-8d60-4d0d-a423-9c25f8a4c24d", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "c1c92ca5-8d60-4d0d-a423-9c25f8a4c24d" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "329968007", + "display": "Diclofenac potassium 50mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a030c4d8-c40f-4703-a020-2d91ed42fc62" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "4243A0-A99968-4E149+" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "1 tablet - 3 times a day - Oral route - One tablet three times daily", + "patientInstruction": "One tablet three times daily", + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 1, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 84, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:586a29cc-55ec-4fa0-aca5-8cd99a04b9f9", + "resource": { + "resourceType": "MedicationRequest", + "id": "586a29cc-55ec-4fa0-aca5-8cd99a04b9f9", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "586a29cc-55ec-4fa0-aca5-8cd99a04b9f9" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "322236009", + "display": "Paracetamol 500mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a030c4d8-c40f-4703-a020-2d91ed42fc62" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "4243A0-A99968-4E149+" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "4 times a day - Oral route - One or two, four times daily", + "patientInstruction": "One or two, four times daily", + "timing": { + "repeat": { + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral route" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 100, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:4a850960-6d79-4fcc-8e5a-7f6e24b09d80", + "resource": { + "resourceType": "MedicationRequest", + "id": "4a850960-6d79-4fcc-8e5a-7f6e24b09d80", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "4a850960-6d79-4fcc-8e5a-7f6e24b09d80" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "36126811000001109", + "display": "Morphine 15mg modified-release tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a030c4d8-c40f-4703-a020-2d91ed42fc62" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "4243A0-A99968-4E149+" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "twice a day - Oral route - One twice daily", + "patientInstruction": "One twice daily", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral route" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 60, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:f3ed8bb5-7331-4510-978f-4fe2d7d7b3d7", + "resource": { + "resourceType": "MedicationRequest", + "id": "f3ed8bb5-7331-4510-978f-4fe2d7d7b3d7", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "f3ed8bb5-7331-4510-978f-4fe2d7d7b3d7" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "36120011000001101", + "display": "Fentanyl 25micrograms/hour transdermal patches" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a030c4d8-c40f-4703-a020-2d91ed42fc62" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "4243A0-A99968-4E149+" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "1 patch - every 72 hours - One every 72 hours", + "patientInstruction": "One every 72 hours", + "timing": { + "repeat": { + "frequency": 1, + "period": 72, + "periodUnit": "h" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 1, + "unit": "patch", + "system": "http://snomed.info/sct", + "code": "419702001" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 5, + "unit": "patch", + "system": "http://snomed.info/sct", + "code": "419702001" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449310394" + } + ], + "name": [ + { + "use": "official", + "family": "Lewington", + "given": ["TRACE"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1908-04-03", + "address": [ + { + "use": "home", + "line": ["1 NETHERNE LANE", "COULSDON", "Surrey"], + "postalCode": "CR5 1NR" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "201715352555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "683458" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-28T14:19:40+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjNkSTNnWTA4SURMNjVIb2FLRmx1YkVrNTQzYz08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+bE1mMUtKYnR6UStDdXR6c1Q4YklRV2dFS1ArcERtVkhpek1DemQzVkhQN3gzemROenJVWGlOT0gyOUNzWVgzcko5UXVaWDZzRDQ5M0JpZ0JDRFUrU1NrMHJGdE5hVHl4MGJRV2hjd3VwNC9iRysyb2JXZHQrcFZLQ3dMVElTM0pHeG1sS0hyQkpudlJOOFg0TExtVEs0b1BkTVhmbkJXY2pmWmFLRk9rbmRrPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/2-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/2-Prepare-Request-200_OK.json new file mode 100644 index 00000000..f3973688 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/2-Prepare-Request-200_OK.json @@ -0,0 +1,304 @@ +{ + "resourceType": "Bundle", + "id": "f190329a-3854-4a31-9ff5-417969f2a40d", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "7966761a-6c1f-4a79-b797-541e0440ddd2" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:f190329a-3854-4a31-9ff5-417969f2a40d", + "resource": { + "resourceType": "MessageHeader", + "id": "f190329a-3854-4a31-9ff5-417969f2a40d", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RANDOM|FIFTYSEVEN" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + } + ] + } + }, + { + "fullUrl": "urn:uuid:787bcfda-e555-40ba-8422-ac79f3d11f0e", + "resource": { + "resourceType": "MedicationRequest", + "id": "787bcfda-e555-40ba-8422-ac79f3d11f0e", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "787bcfda-e555-40ba-8422-ac79f3d11f0e" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "9655601000001105", + "display": "Glandosane" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "b784fb9f-d2ec-4db7-a3e3-fcd5bbd53681" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "FF7110-A99968-4179BK" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 50, + "unit": "ml", + "system": "http://snomed.info/sct", + "code": "258773002" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449310394" + } + ], + "name": [ + { + "use": "official", + "family": "Lewington", + "given": ["TRACE"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1908-04-03", + "address": [ + { + "use": "home", + "line": ["1 NETHERNE LANE", "COULSDON", "Surrey"], + "postalCode": "CR5 1NR" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "201715352555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "683458" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/2-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/2-Prepare-Response-200_OK.json new file mode 100644 index 00000000..66c72ac9 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/2-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+SkYxWUUwZVpKRlc2N1Z0MStlV09Fa2t2RWRBPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/2-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/2-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..578da614 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/clinical-practitioner/multiple-drugs/2-Process-Request-Send-200_OK.json @@ -0,0 +1,339 @@ +{ + "resourceType": "Bundle", + "id": "f190329a-3854-4a31-9ff5-417969f2a40d", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "b947391d-db3a-43b4-8978-25ed965a05ab" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:f190329a-3854-4a31-9ff5-417969f2a40d", + "resource": { + "resourceType": "MessageHeader", + "id": "f190329a-3854-4a31-9ff5-417969f2a40d", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RANDOM|FIFTYSEVEN" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + } + ] + } + }, + { + "fullUrl": "urn:uuid:787bcfda-e555-40ba-8422-ac79f3d11f0e", + "resource": { + "resourceType": "MedicationRequest", + "id": "787bcfda-e555-40ba-8422-ac79f3d11f0e", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "787bcfda-e555-40ba-8422-ac79f3d11f0e" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "9655601000001105", + "display": "Glandosane" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "30cb0885-a186-457d-b5d3-42b445d6d97a" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "CF397C-A99968-4B009F" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 50, + "unit": "ml", + "system": "http://snomed.info/sct", + "code": "258773002" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449310394" + } + ], + "name": [ + { + "use": "official", + "family": "Lewington", + "given": ["TRACE"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1908-04-03", + "address": [ + { + "use": "home", + "line": ["1 NETHERNE LANE", "COULSDON", "Surrey"], + "postalCode": "CR5 1NR" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "201715352555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "683458" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-28T14:19:41+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPlRWUUNwMnNQS3NNa0pvR2M0bUliYk96aFQ1MD08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+UUlkTTdGV2ZCSjJHcGFEckZOSkVGRkxmbTFCaURFTFI2aS8zc0FqSzFKOVY1RlhacGs5cm1oVDJxaTR5c3RjMThwSFNpVkF0UHVncWJDcEh4MEhwam4yVmpSZ08rY0xiKy8yb01GcTFSaE1sanc5YVdrNHB2bDV6MlVjSmhYdUNxTnptcFVMRndycDVoRFFCUHpNOHNpOVRjMHI2TlhJMjVGOHZLdzE3cmxJPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..b61c7edd --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/1-Prepare-Request-200_OK.json @@ -0,0 +1,332 @@ +{ + "resourceType": "Bundle", + "id": "f190329a-3854-4a31-9ff5-417969f2a40d", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "704567ad-b5b6-4dbb-92b2-35308a520a26" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:f190329a-3854-4a31-9ff5-417969f2a40d", + "resource": { + "resourceType": "MessageHeader", + "id": "f190329a-3854-4a31-9ff5-417969f2a40d", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "extension": [ + { + "url": "https://fhir.nhs.uk/R4/StructureDefinition/Extension-spineEndpoint", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/spine-ASID", + "value": "12456789012" + } + } + ], + "name": "DJM", + "endpoint": "https://mait.digital.nhs.uk/" + }, + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1008", + "display": "Outpatient Community Prescriber - Pharmacist Independent/Supplementary prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "2b21b5eb-b188-443e-bb3b-199588b13fbf" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "C296DE-A99968-4E09B2" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449310394" + } + ], + "name": [ + { + "use": "official", + "family": "Lewington", + "given": ["TRACE"], + "prefix": ["MR"] + } + ], + "gender": "female", + "birthDate": "1999-11-25", + "address": [ + { + "use": "home", + "line": ["1 NETHERNE LANE", "COULSDON", "Surrey"], + "postalCode": "CR5 1NR" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gphc-number", + "value": "2083469" + } + ], + "name": [ + { + "family": "UserM", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "201715352555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "2083469" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8003:G8003:R8003", + "display": "Health Professional Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..352759b9 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+VDBCd0JQVEUzZksyWmlhWUxsZkR1K0hpUGdrPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/1-Process-Request-Cancel-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/1-Process-Request-Cancel-200_OK.json new file mode 100644 index 00000000..8049f385 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/1-Process-Request-Cancel-200_OK.json @@ -0,0 +1,346 @@ +{ + "resourceType": "Bundle", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03083", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "e78f40d0-f889-4144-8733-60a1126384d7" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03083", + "resource": { + "resourceType": "MessageHeader", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order-update", + "display": "Prescription Order Update" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1008", + "display": "Outpatient Community Prescriber - Pharmacist Independent/Supplementary prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "cancelled", + "statusReason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-status-reason", + "code": "0001", + "display": "Prescribing Error" + } + ] + }, + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "2b21b5eb-b188-443e-bb3b-199588b13fbf" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "C296DE-A99968-4E09B2" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449310394" + } + ], + "name": [ + { + "use": "official", + "family": "Lewington", + "given": ["TRACE"], + "prefix": ["MR"] + } + ], + "gender": "female", + "birthDate": "1999-11-25", + "address": [ + { + "use": "home", + "line": ["1 NETHERNE LANE", "COULSDON", "Surrey"], + "postalCode": "CR5 1NR" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gphc-number", + "value": "2083469" + } + ], + "name": [ + { + "family": "UserM", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "201715352555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "2083469" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8003:G8003:R8003", + "display": "Health Professional Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..7943bbbc --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/1-Process-Request-Send-200_OK.json @@ -0,0 +1,370 @@ +{ + "resourceType": "Bundle", + "id": "f190329a-3854-4a31-9ff5-417969f2a40d", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "2bf951f5-bd09-441e-aaa1-fc370a92ec6c" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:f190329a-3854-4a31-9ff5-417969f2a40d", + "resource": { + "resourceType": "MessageHeader", + "id": "f190329a-3854-4a31-9ff5-417969f2a40d", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "extension": [ + { + "url": "https://fhir.nhs.uk/R4/StructureDefinition/Extension-spineEndpoint", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/spine-ASID", + "value": "12456789012" + } + } + ], + "name": "DJM", + "endpoint": "https://mait.digital.nhs.uk/" + }, + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1008", + "display": "Outpatient Community Prescriber - Pharmacist Independent/Supplementary prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "2b21b5eb-b188-443e-bb3b-199588b13fbf" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "C296DE-A99968-4E09B2" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449310394" + } + ], + "name": [ + { + "use": "official", + "family": "Lewington", + "given": ["TRACE"], + "prefix": ["MR"] + } + ], + "gender": "female", + "birthDate": "1999-11-25", + "address": [ + { + "use": "home", + "line": ["1 NETHERNE LANE", "COULSDON", "Surrey"], + "postalCode": "CR5 1NR" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gphc-number", + "value": "2083469" + } + ], + "name": [ + { + "family": "UserM", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "201715352555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "2083469" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8003:G8003:R8003", + "display": "Health Professional Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:38+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPkRpVW9pcWhzYW9NOG5rM0FEV0F5QWRqOGdPQT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+aGFWOTBrQ1U1aGxKYzkzOFBKSlhFdXZJejJXWmwvRHRXaXI0a043YWtTU1R3SFVST3dhM1JYNmJsWEM0NWZlczBZTWRuVjFYTFFiVG9hMXl3cE94cEdRNSt5WENmVGh3ZjJPMStmeXlnM0R5VHlJbGNLeUx0M21MTEU0NjU5NzhXY2RvV1BWc3c3WkZ6RFlnT2FMbWM1MEtZZDF2d1ltSm1sa2xwTXZrQzVrPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/6-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/6-Prepare-Request-200_OK.json new file mode 100644 index 00000000..98a58770 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/6-Prepare-Request-200_OK.json @@ -0,0 +1,332 @@ +{ + "resourceType": "Bundle", + "id": "f190329a-3854-4a31-9ff5-417969f2a40d", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "7567077b-f276-42d2-981d-e139d991f425" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:f190329a-3854-4a31-9ff5-417969f2a40d", + "resource": { + "resourceType": "MessageHeader", + "id": "f190329a-3854-4a31-9ff5-417969f2a40d", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "USERM|PHARMACIST" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1008", + "display": "Outpatient Community Prescriber - Pharmacist Independent Supplementary prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "CC", + "display": "Contraceptive" + } + ] + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "FS", + "display": "Sexual Health" + } + ] + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "332402005", + "display": "Co-cyprindiol 2000microgram/35microgram tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "cc3b29a7-2ae4-4dbc-8967-033463020ff2" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "8AA24F-A99968-487B8O" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ], + "text": "Follow directions" + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "DAVIS", + "given": ["JANE"], + "prefix": ["MRS"] + } + ], + "gender": "female", + "birthDate": "1999-11-25", + "address": [ + { + "use": "home", + "line": ["53 Harrogate Road", "Chapel Allerton", "Leeds"], + "postalCode": "LS7 3PY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "5555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gphc-number", + "value": "2083469" + } + ], + "name": [ + { + "family": "USERM", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "201715352555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "2083469" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8003:G8003:R8003", + "display": "Healthcare Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/6-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/6-Prepare-Response-200_OK.json new file mode 100644 index 00000000..80b0b3de --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/6-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+ekZWMVRrdndmNHo0UFU4cy9BVWpQZTN2MXY0PTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/6-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/6-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..5e87302a --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/6-Process-Request-Send-200_OK.json @@ -0,0 +1,370 @@ +{ + "resourceType": "Bundle", + "id": "f190329a-3854-4a31-9ff5-417969f2a40d", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "ec9c4f98-a31e-46b6-a8fb-6cd0483a60cb" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:f190329a-3854-4a31-9ff5-417969f2a40d", + "resource": { + "resourceType": "MessageHeader", + "id": "f190329a-3854-4a31-9ff5-417969f2a40d", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "USERM|PHARMACIST" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1008", + "display": "Outpatient Community Prescriber - Pharmacist Independent Supplementary prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "CC", + "display": "Contraceptive" + } + ] + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "FS", + "display": "Sexual Health" + } + ] + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "332402005", + "display": "Co-cyprindiol 2000microgram/35microgram tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "cc3b29a7-2ae4-4dbc-8967-033463020ff2" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "8AA24F-A99968-487B8O" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ], + "text": "Follow directions" + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "DAVIS", + "given": ["JANE"], + "prefix": ["MRS"] + } + ], + "gender": "female", + "birthDate": "1999-11-25", + "address": [ + { + "use": "home", + "line": ["53 Harrogate Road", "Chapel Allerton", "Leeds"], + "postalCode": "LS7 3PY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "5555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gphc-number", + "value": "2083469" + } + ], + "name": [ + { + "family": "USERM", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "201715352555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "2083469" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8003:G8003:R8003", + "display": "Healthcare Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:37+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPnZmUUdIRHJyM01TQjhIV29IYitXQVUzS2c2MD08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+SCtHUmVSVXB4ZWJpN1NTT0NtOEw0TmFNN3VkT3paMEE5cGx2N0JGdk1QTEhpOTRCMTJEQXdLaFA2SmVIeHRpRWtHdmhod0Nkbk9jSUN5VnZhSTFGdmp5QXBINXQ1M05KOUsvcU9DZXJiNGJyK3pYU2R1b24yODRJVnprcWNGN1NPYXNJTW03OE1oTnVOUEFic3YybmFYRmdSSWlrVFgzd0pydGh1ZmFZU0lVPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/controlled-drugs/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/controlled-drugs/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..0a67018e --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/controlled-drugs/1-Prepare-Request-200_OK.json @@ -0,0 +1,444 @@ +{ + "resourceType": "Bundle", + "id": "2c251ced-dc17-47ff-bd2f-36f4b8c27dda", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "0fbfabd7-c1e5-4435-ac7f-ac2083e7f2b5" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:2c251ced-dc17-47ff-bd2f-36f4b8c27dda", + "resource": { + "resourceType": "MessageHeader", + "id": "A8F71A7D-B426-4B55-80A5-05436DE80486", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "Pharmacist|UserM" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://int.api.service.nhs.uk/electronic-prescriptions/$prepare", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FY210" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8" + }, + { + "reference": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + } + ] + } + }, + { + "fullUrl": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8", + "resource": { + "resourceType": "MedicationRequest", + "id": "00d3dd04-d162-49ce-a808-6f220906f1c8", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1008", + "display": "Outpatient Community Prescriber - Pharmacist Independent/Supplementary prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ControlledDrug", + "extension": [ + { + "url": "quantityWords", + "valueString": "twenty eight" + }, + { + "url": "schedule", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-controlled-drug", + "code": "CD2", + "display": "Schedule 2" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "00d3dd04-d162-49ce-a808-6f220906f1c8" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "36126511000001106", + "display": "Morphine 10mg modified-release tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a472f8aa-b039-454e-9380-76377d549022" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "F4B59B-A99968-4D22B6" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "1 tablet, daily" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FY210" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186", + "resource": { + "resourceType": "MedicationRequest", + "id": "1de954ac-a1ea-49ab-bd4e-88e99f191186", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1008", + "display": "Outpatient Community Prescriber - Pharmacist Independent/Supplementary prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "1de954ac-a1ea-49ab-bd4e-88e99f191186" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321196004", + "display": "Diazepam 2mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a472f8aa-b039-454e-9380-76377d549022" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "F4B59B-A99968-4D22B6" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "note": [{ + "text": "Dosage has been decreased on advice from the hospital." + }], + "dosageInstruction": [ + { + "text": "1 tablet, at NIGHT" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FY210" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449306036" + } + ], + "name": [ + { + "use": "usual", + "family": "ILLIDGE", + "given": [ + "DIANN" + ], + "prefix": [ + "MISS" + ] + } + ], + "gender": "female", + "birthDate": "1996-10-15", + "address": [ + { + "use": "home", + "line": [ + "20 POOLE ROAD", + "EPSOM", + "SURREY" + ], + "postalCode": "KT19 9SH" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "H81109" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "5555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gphc-number", + "value": "2083469" + } + ], + "name": [ + { + "family": "UserM", + "given": [ + "Random" + ], + "prefix": [ + "MR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "201715352555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "2083469" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8003:G8003:R8003", + "display": "Health Professional Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/controlled-drugs/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/controlled-drugs/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..a7747950 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/controlled-drugs/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+UkxUNHd6cnpGWTZXYS9WNk11YWhVbE9qUjZrPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2023-03-31T11:56:30+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/controlled-drugs/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/controlled-drugs/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..5599d903 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/health-professional/controlled-drugs/1-Process-Request-Send-200_OK.json @@ -0,0 +1,500 @@ +{ + "resourceType": "Bundle", + "id": "2c251ced-dc17-47ff-bd2f-36f4b8c27dda", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "648f2894-4358-4592-af13-486dab2c686c" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:2c251ced-dc17-47ff-bd2f-36f4b8c27dda", + "resource": { + "resourceType": "MessageHeader", + "id": "A8F71A7D-B426-4B55-80A5-05436DE80486", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "Pharmacist|UserM" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://int.api.service.nhs.uk/electronic-prescriptions/$process-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FY210" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8" + }, + { + "reference": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + { + "reference": "urn:uuid:b2a46b68-9e1e-49e6-a132-88b3308ed561" + } + ] + } + }, + { + "fullUrl": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8", + "resource": { + "resourceType": "MedicationRequest", + "id": "00d3dd04-d162-49ce-a808-6f220906f1c8", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1008", + "display": "Outpatient Community Prescriber - Pharmacist Independent/Supplementary prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ControlledDrug", + "extension": [ + { + "url": "quantityWords", + "valueString": "twenty eight" + }, + { + "url": "schedule", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-controlled-drug", + "code": "CD2", + "display": "Schedule 2" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "00d3dd04-d162-49ce-a808-6f220906f1c8" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "36126511000001106", + "display": "Morphine 10mg modified-release tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a472f8aa-b039-454e-9380-76377d549022" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "F4B59B-A99968-4D22B6" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "1 tablet, daily" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FY210" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186", + "resource": { + "resourceType": "MedicationRequest", + "id": "1de954ac-a1ea-49ab-bd4e-88e99f191186", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1008", + "display": "Outpatient Community Prescriber - Pharmacist Independent/Supplementary prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "1de954ac-a1ea-49ab-bd4e-88e99f191186" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321196004", + "display": "Diazepam 2mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a472f8aa-b039-454e-9380-76377d549022" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "F4B59B-A99968-4D22B6" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "note": [{ + "text": "Dosage has been decreased on advice from the hospital." + }], + "dosageInstruction": [ + { + "text": "1 tablet, at NIGHT" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FY210" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449306036" + } + ], + "name": [ + { + "use": "usual", + "family": "ILLIDGE", + "given": [ + "DIANN" + ], + "prefix": [ + "MISS" + ] + } + ], + "gender": "female", + "birthDate": "1996-10-15", + "address": [ + { + "use": "home", + "line": [ + "20 POOLE ROAD", + "EPSOM", + "SURREY" + ], + "postalCode": "KT19 9SH" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "H81109" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "5555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gphc-number", + "value": "2083469" + } + ], + "name": [ + { + "family": "UserM", + "given": [ + "Random" + ], + "prefix": [ + "MR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "201715352555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "2083469" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8003:G8003:R8003", + "display": "Health Professional Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:b2a46b68-9e1e-49e6-a132-88b3308ed561", + "resource": { + "resourceType": "Provenance", + "id": "b2a46b68-9e1e-49e6-a132-88b3308ed561", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8" + }, + { + "reference": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:39+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPnRvZk92dDJ6a0MrVngya3ZlNHRsN095c3QwVT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+VittK0labFk0c0ZSdU83ZDNHMlVsUU5xaDlmSUtHSExYeFdHTDFmUzRjZlVOTnRJbkh6MFFaUWtIclV4SmxRWENicFFTRTRYN0VmcXNmeEJaNHlwMG9UT0g4V0J5eCs4UHVDVE80a0YramJCdTlvZ0cxdjJKeHNhL21IdDVrZFdveFRmRW1OTlQ1VktJdzcvTHdJN0pQREREZE5VcUVHZ1VpZ2VUd1MrdHlFPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/medication-reference/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/medication-reference/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..3ba3d682 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/medication-reference/1-Prepare-Request-200_OK.json @@ -0,0 +1,670 @@ +{ + "resourceType": "Bundle", + "id": "0A1FD9EF-A3D5-4E95-84CD-552070A03089", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "66375d07-8e0a-44c6-8561-c4da3cdbc99a" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "resource": { + "resourceType": "MessageHeader", + "id": "0A1FD9EF-A3D5-4E95-84CD-552070A03089", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "USERM|PHARMACIST" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1005", + "display": "Outpatient Community Prescriber - Community Practitioner Nurse prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324689003", + "display": "Nystatin 100,000units/ml oral suspension" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "65162689-6918-460c-a1e4-5918e0d7de0b" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "7E5416-A99968-42DBAE" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 30, + "unit": "ml", + "system": "http://snomed.info/sct", + "code": "385024007" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:dd994697-df0e-4202-bd5a-a8e3080bf0bc", + "resource": { + "resourceType": "MedicationRequest", + "id": "dd994697-df0e-4202-bd5a-a8e3080bf0bc", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1005", + "display": "Outpatient Community Prescriber - Community Practitioner Nurse prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "dd994697-df0e-4202-bd5a-a8e3080bf0bc" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "14611011000001107", + "display": "Phosphates enema (Formula B) 128ml standard tube" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "65162689-6918-460c-a1e4-5918e0d7de0b" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "7E5416-A99968-42DBAE" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "Enema", + "system": "http://snomed.info/sct", + "code": "700476008" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:1e35d3a9-a256-4985-8476-0294bb12d37e", + "resource": { + "resourceType": "MedicationRequest", + "id": "1e35d3a9-a256-4985-8476-0294bb12d37e", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1005", + "display": "Outpatient Community Prescriber - Community Practitioner Nurse prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "1e35d3a9-a256-4985-8476-0294bb12d37e" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "30318011000001108", + "display": "Diclofenac 140mg medicated plasters" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "65162689-6918-460c-a1e4-5918e0d7de0b" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "7E5416-A99968-42DBAE" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 2, + "unit": "Plaster", + "system": "http://snomed.info/sct", + "code": "733010002" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a51041ce-9a43-4bc4-a277-cffa434bdd63", + "resource": { + "resourceType": "MedicationRequest", + "id": "a51041ce-9a43-4bc4-a277-cffa434bdd63", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1005", + "display": "Outpatient Community Prescriber - Community Practitioner Nurse prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a51041ce-9a43-4bc4-a277-cffa434bdd63" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "65162689-6918-460c-a1e4-5918e0d7de0b" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "7E5416-A99968-42DBAE" + }, + "medicationReference": { + "reference": "urn:uuid:495df5c5-5931-4795-960d-d2188bec3c2e" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 5, + "unit": "Ampoule", + "system": "http://snomed.info/sct", + "code": "413516001" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "DAVIS", + "given": ["JANE"], + "prefix": ["MRS"] + } + ], + "gender": "female", + "birthDate": "1999-11-25", + "address": [ + { + "use": "home", + "line": ["53 Harrogate Road", "Chapel Allerton", "Leeds"], + "postalCode": "LS7 3PY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "5555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gphc-number", + "value": "2083469" + } + ], + "name": [ + { + "family": "USERM", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "201715352555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "2083469" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8003:G8003:R8003", + "display": "Healthcare Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:495df5c5-5931-4795-960d-d2188bec3c2e", + "resource": { + "resourceType": "Medication", + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "3318611000001103", + "display": "pre-filled disposable injection" + } + ] + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/medication-reference/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/medication-reference/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..6c92cf59 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/medication-reference/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+UDhIRHAvZTg3b3hvNTRvOHpxZ1ZSOHRwMTJVPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/medication-reference/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/medication-reference/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..e64a5899 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/medication-reference/1-Process-Request-Send-200_OK.json @@ -0,0 +1,705 @@ +{ + "resourceType": "Bundle", + "id": "0A1FD9EF-A3D5-4E95-84CD-552070A03089", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "29957cde-a9f1-4d01-8601-81921bc2da39" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "resource": { + "resourceType": "MessageHeader", + "id": "0A1FD9EF-A3D5-4E95-84CD-552070A03089", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "USERM|PHARMACIST" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1005", + "display": "Outpatient Community Prescriber - Community Practitioner Nurse prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324689003", + "display": "Nystatin 100,000units/ml oral suspension" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "65162689-6918-460c-a1e4-5918e0d7de0b" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "7E5416-A99968-42DBAE" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 30, + "unit": "ml", + "system": "http://snomed.info/sct", + "code": "385024007" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:dd994697-df0e-4202-bd5a-a8e3080bf0bc", + "resource": { + "resourceType": "MedicationRequest", + "id": "dd994697-df0e-4202-bd5a-a8e3080bf0bc", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1005", + "display": "Outpatient Community Prescriber - Community Practitioner Nurse prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "dd994697-df0e-4202-bd5a-a8e3080bf0bc" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "14611011000001107", + "display": "Phosphates enema (Formula B) 128ml standard tube" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "65162689-6918-460c-a1e4-5918e0d7de0b" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "7E5416-A99968-42DBAE" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "Enema", + "system": "http://snomed.info/sct", + "code": "700476008" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:1e35d3a9-a256-4985-8476-0294bb12d37e", + "resource": { + "resourceType": "MedicationRequest", + "id": "1e35d3a9-a256-4985-8476-0294bb12d37e", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1005", + "display": "Outpatient Community Prescriber - Community Practitioner Nurse prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "1e35d3a9-a256-4985-8476-0294bb12d37e" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "30318011000001108", + "display": "Diclofenac 140mg medicated plasters" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "65162689-6918-460c-a1e4-5918e0d7de0b" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "7E5416-A99968-42DBAE" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 2, + "unit": "Plaster", + "system": "http://snomed.info/sct", + "code": "733010002" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a51041ce-9a43-4bc4-a277-cffa434bdd63", + "resource": { + "resourceType": "MedicationRequest", + "id": "a51041ce-9a43-4bc4-a277-cffa434bdd63", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1005", + "display": "Outpatient Community Prescriber - Community Practitioner Nurse prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a51041ce-9a43-4bc4-a277-cffa434bdd63" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "65162689-6918-460c-a1e4-5918e0d7de0b" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "7E5416-A99968-42DBAE" + }, + "medicationReference": { + "reference": "urn:uuid:495df5c5-5931-4795-960d-d2188bec3c2e" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 5, + "unit": "Ampoule", + "system": "http://snomed.info/sct", + "code": "413516001" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "DAVIS", + "given": ["JANE"], + "prefix": ["MRS"] + } + ], + "gender": "female", + "birthDate": "1999-11-25", + "address": [ + { + "use": "home", + "line": ["53 Harrogate Road", "Chapel Allerton", "Leeds"], + "postalCode": "LS7 3PY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "5555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gphc-number", + "value": "2083469" + } + ], + "name": [ + { + "family": "USERM", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "201715352555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "2083469" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8003:G8003:R8003", + "display": "Healthcare Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:51+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPkowYjNWMUhHc0YvRjZsMGxIZXh5ZVZWdHFGND08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+Wm9id0FnSVU5UXZma1p5UGJWUVlIell5SFQ3bFNJRStVOEtkd2FKaW9KWHFiQ3h5SzVzMkk1aHp5bzY2a0RXUGtVdmJTNzRpa24ySUR2K3Awem1QWFNsSVYycjFWUFVCNmhzb09ldjhLeE83TzVEdnRTMnJaVW1udXhyUHJrSXdGNlY3eSs1dWJYVUJMb3RqWFc0M2hOR2JNTk5NY2k5eDFZeTVmWUZnQ2lVPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + }, + { + "fullUrl": "urn:uuid:495df5c5-5931-4795-960d-d2188bec3c2e", + "resource": { + "resourceType": "Medication", + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "3318611000001103", + "display": "pre-filled disposable injection" + } + ] + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/multiple-medications/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/multiple-medications/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..c2f9a19b --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/multiple-medications/1-Prepare-Request-200_OK.json @@ -0,0 +1,652 @@ +{ + "resourceType": "Bundle", + "id": "0A1FD9EF-A3D5-4E95-84CD-552070A03089", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "9bc4efad-d208-4d8b-8e0a-1e6fdc6a8207" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "resource": { + "resourceType": "MessageHeader", + "id": "0A1FD9EF-A3D5-4E95-84CD-552070A03089", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "USERM|PHARMACIST" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1005", + "display": "Outpatient Community Prescriber - Community Practitioner Nurse prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324689003", + "display": "Nystatin 100,000units/ml oral suspension" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a157e44d-ef58-45db-a821-ced1572d2319" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "D8E3A8-A99968-4468B0" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 30, + "unit": "ml", + "system": "http://snomed.info/sct", + "code": "385024007" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:dd994697-df0e-4202-bd5a-a8e3080bf0bc", + "resource": { + "resourceType": "MedicationRequest", + "id": "dd994697-df0e-4202-bd5a-a8e3080bf0bc", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1005", + "display": "Outpatient Community Prescriber - Community Practitioner Nurse prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "dd994697-df0e-4202-bd5a-a8e3080bf0bc" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "14611011000001107", + "display": "Phosphates enema (Formula B) 128ml standard tube" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a157e44d-ef58-45db-a821-ced1572d2319" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "D8E3A8-A99968-4468B0" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "Enema", + "system": "http://snomed.info/sct", + "code": "700476008" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:1e35d3a9-a256-4985-8476-0294bb12d37e", + "resource": { + "resourceType": "MedicationRequest", + "id": "1e35d3a9-a256-4985-8476-0294bb12d37e", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1005", + "display": "Outpatient Community Prescriber - Community Practitioner Nurse prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "1e35d3a9-a256-4985-8476-0294bb12d37e" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "30318011000001108", + "display": "Diclofenac 140mg medicated plasters" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a157e44d-ef58-45db-a821-ced1572d2319" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "D8E3A8-A99968-4468B0" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 2, + "unit": "Plaster", + "system": "http://snomed.info/sct", + "code": "733010002" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a51041ce-9a43-4bc4-a277-cffa434bdd63", + "resource": { + "resourceType": "MedicationRequest", + "id": "a51041ce-9a43-4bc4-a277-cffa434bdd63", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1005", + "display": "Outpatient Community Prescriber - Community Practitioner Nurse prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a51041ce-9a43-4bc4-a277-cffa434bdd63" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "110171000001104", + "display": "Water for injections 2ml ampoules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a157e44d-ef58-45db-a821-ced1572d2319" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "D8E3A8-A99968-4468B0" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 5, + "unit": "Ampoule", + "system": "http://snomed.info/sct", + "code": "413516001" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "DAVIS", + "given": ["JANE"], + "prefix": ["MRS"] + } + ], + "gender": "female", + "birthDate": "1999-11-25", + "address": [ + { + "use": "home", + "line": ["53 Harrogate Road", "Chapel Allerton", "Leeds"], + "postalCode": "LS7 3PY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "5555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gphc-number", + "value": "2083469" + } + ], + "name": [ + { + "family": "USERM", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "201715352555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "2083469" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8003:G8003:R8003", + "display": "Healthcare Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/multiple-medications/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/multiple-medications/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..b6552984 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/multiple-medications/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+d1BjeThUZmtWUitpdEFGRnBUMUlhOGc4cVZZPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/multiple-medications/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/multiple-medications/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..0c7ff837 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/multiple-medications/1-Process-Request-Send-200_OK.json @@ -0,0 +1,687 @@ +{ + "resourceType": "Bundle", + "id": "0A1FD9EF-A3D5-4E95-84CD-552070A03089", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "91926526-f0e8-4a04-b6bb-46e3fe80f8d6" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "resource": { + "resourceType": "MessageHeader", + "id": "0A1FD9EF-A3D5-4E95-84CD-552070A03089", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "USERM|PHARMACIST" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1005", + "display": "Outpatient Community Prescriber - Community Practitioner Nurse prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "324689003", + "display": "Nystatin 100,000units/ml oral suspension" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a157e44d-ef58-45db-a821-ced1572d2319" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "D8E3A8-A99968-4468B0" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 30, + "unit": "ml", + "system": "http://snomed.info/sct", + "code": "385024007" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:dd994697-df0e-4202-bd5a-a8e3080bf0bc", + "resource": { + "resourceType": "MedicationRequest", + "id": "dd994697-df0e-4202-bd5a-a8e3080bf0bc", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1005", + "display": "Outpatient Community Prescriber - Community Practitioner Nurse prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "dd994697-df0e-4202-bd5a-a8e3080bf0bc" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "14611011000001107", + "display": "Phosphates enema (Formula B) 128ml standard tube" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a157e44d-ef58-45db-a821-ced1572d2319" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "D8E3A8-A99968-4468B0" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "Enema", + "system": "http://snomed.info/sct", + "code": "700476008" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:1e35d3a9-a256-4985-8476-0294bb12d37e", + "resource": { + "resourceType": "MedicationRequest", + "id": "1e35d3a9-a256-4985-8476-0294bb12d37e", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1005", + "display": "Outpatient Community Prescriber - Community Practitioner Nurse prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "1e35d3a9-a256-4985-8476-0294bb12d37e" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "30318011000001108", + "display": "Diclofenac 140mg medicated plasters" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a157e44d-ef58-45db-a821-ced1572d2319" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "D8E3A8-A99968-4468B0" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 2, + "unit": "Plaster", + "system": "http://snomed.info/sct", + "code": "733010002" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a51041ce-9a43-4bc4-a277-cffa434bdd63", + "resource": { + "resourceType": "MedicationRequest", + "id": "a51041ce-9a43-4bc4-a277-cffa434bdd63", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1005", + "display": "Outpatient Community Prescriber - Community Practitioner Nurse prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a51041ce-9a43-4bc4-a277-cffa434bdd63" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "110171000001104", + "display": "Water for injections 2ml ampoules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a157e44d-ef58-45db-a821-ced1572d2319" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "D8E3A8-A99968-4468B0" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 5, + "unit": "Ampoule", + "system": "http://snomed.info/sct", + "code": "413516001" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "DAVIS", + "given": ["JANE"], + "prefix": ["MRS"] + } + ], + "gender": "female", + "birthDate": "1999-11-25", + "address": [ + { + "use": "home", + "line": ["53 Harrogate Road", "Chapel Allerton", "Leeds"], + "postalCode": "LS7 3PY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "5555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gphc-number", + "value": "2083469" + } + ], + "name": [ + { + "family": "USERM", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "201715352555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "2083469" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8003:G8003:R8003", + "display": "Healthcare Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:52+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPkowYjNWMUhHc0YvRjZsMGxIZXh5ZVZWdHFGND08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+Wm9id0FnSVU5UXZma1p5UGJWUVlIell5SFQ3bFNJRStVOEtkd2FKaW9KWHFiQ3h5SzVzMkk1aHp5bzY2a0RXUGtVdmJTNzRpa24ySUR2K3Awem1QWFNsSVYycjFWUFVCNmhzb09ldjhLeE83TzVEdnRTMnJaVW1udXhyUHJrSXdGNlY3eSs1dWJYVUJMb3RqWFc0M2hOR2JNTk5NY2k5eDFZeTVmWUZnQ2lVPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..110117de --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/1-Prepare-Request-200_OK.json @@ -0,0 +1,337 @@ +{ + "resourceType": "Bundle", + "id": "aef77afb-7e3c-427a-8657-2c427f71a271", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "f442b1a3-efe2-4434-b9cf-888e2f12d0a5" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:aef77afb-7e3c-427a-8657-2c427f71a271", + "resource": { + "resourceType": "MessageHeader", + "id": "3599c0e9-9292-413e-9270-9a1ef1ead99c", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "1dfb1898-70dd-42df-ace4-aa0fd83a501a" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "9A80DD-A99968-4CCC8W" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "CORY", + "given": ["ETTA"], + "prefix": ["MISS"] + } + ], + "gender": "female", + "birthDate": "1999-01-04", + "address": [ + { + "use": "home", + "line": ["123 Dale Avenue", "Long Eaton", "Nottingham"], + "postalCode": "NG10 1NP" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086690109" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nmc-number", + "value": "12A3456B" + } + ], + "name": [ + { + "family": "Userq", + "given": ["Random"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "12A3456B" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8001:G8001:R8001", + "display": "Nurse Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..179fadf2 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+QVlDYXJZeUo3TXluWXlxUWNLeWl0clgrZUpVPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/1-Process-Request-Cancel-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/1-Process-Request-Cancel-200_OK.json new file mode 100644 index 00000000..858da027 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/1-Process-Request-Cancel-200_OK.json @@ -0,0 +1,346 @@ +{ + "resourceType": "Bundle", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03083", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "393ab857-ee77-4749-9000-2cd62fe62bfe" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03083", + "resource": { + "resourceType": "MessageHeader", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order-update", + "display": "Prescription Order Update" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1004", + "display": "Outpatient Community Prescriber - Nurse Independent/Supplementary prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "cancelled", + "statusReason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-status-reason", + "code": "0001", + "display": "Prescribing Error" + } + ] + }, + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "1dfb1898-70dd-42df-ace4-aa0fd83a501a" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "9A80DD-A99968-4CCC8W" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "CORY", + "given": ["ETTA"], + "prefix": ["MISS"] + } + ], + "gender": "female", + "birthDate": "1999-01-04", + "address": [ + { + "use": "home", + "line": ["123 Dale Avenue", "Long Eaton", "Nottingham"], + "postalCode": "NG10 1NP" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086690109" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nmc-number", + "value": "12A3456B" + } + ], + "name": [ + { + "family": "Userq", + "given": ["Random"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "12A3456B" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8001:G8001:R8001", + "display": "Nurse Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..4f93f4c7 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/1-Process-Request-Send-200_OK.json @@ -0,0 +1,372 @@ +{ + "resourceType": "Bundle", + "id": "aef77afb-7e3c-427a-8657-2c427f71a271", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "30d65c8e-98e8-4806-b6a6-51e94733f0e9" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:aef77afb-7e3c-427a-8657-2c427f71a271", + "resource": { + "resourceType": "MessageHeader", + "id": "3599c0e9-9292-413e-9270-9a1ef1ead99c", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1004", + "display": "Outpatient Community Prescriber - Nurse Independent/Supplementary prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "1dfb1898-70dd-42df-ace4-aa0fd83a501a" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "9A80DD-A99968-4CCC8W" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "CORY", + "given": ["ETTA"], + "prefix": ["MISS"] + } + ], + "gender": "female", + "birthDate": "1999-01-04", + "address": [ + { + "use": "home", + "line": ["123 Dale Avenue", "Long Eaton", "Nottingham"], + "postalCode": "NG10 1NP" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086690109" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nmc-number", + "value": "12A3456B" + } + ], + "name": [ + { + "family": "Userq", + "given": ["Random"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "12A3456B" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8001:G8001:R8001", + "display": "Nurse Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:47+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjJ5cUJISDVLK05ibVA1WWY3bVE3WmVFYWN0Yz08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+aE9DaXVJOGIyTEFaRXoxUDdXcGFlRDBQUWQ2bVJKdzVSV2JNV2ZMcU1OUWtRMzIzbnpWTDk3a01XZUJycnJzNU5vTHhGb28vKzFPUjYxcmNXNTJEamlHdjRRcE53QmJOQkYvMi9hUWxqd3pUdm9tQm9tUlpnbUtRQWpyZU1iOTZNM0hjajVvVFNBZG9tUEc2TGw3RVRCS25wRTVJdW5EamducUIxelhEWllVPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/1-Process-Response-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/1-Process-Response-Send-200_OK.json new file mode 100644 index 00000000..4f61b645 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/1-Process-Response-Send-200_OK.json @@ -0,0 +1,12 @@ +{ + "resourceType": "OperationOutcome", + "meta": { + "lastUpdated": "2022-10-21T13:47:00+00:00" + }, + "issue": [ + { + "code": "informational", + "severity": "information" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..4e3e002f --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/1-Prepare-Request-200_OK.json @@ -0,0 +1,434 @@ +{ + "resourceType": "Bundle", + "id": "2c251ced-dc17-47ff-bd2f-36f4b8c27dda", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "e7c0a2db-abac-4ed7-8757-106fd8c36274" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:2c251ced-dc17-47ff-bd2f-36f4b8c27dda", + "resource": { + "resourceType": "MessageHeader", + "id": "A8F71A7D-B426-4B55-80A5-05436DE80486", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "Nurse|UserP" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://int.api.service.nhs.uk/electronic-prescriptions/$prepare", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FY210" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8" + }, + { + "reference": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + } + ] + } + }, + { + "fullUrl": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8", + "resource": { + "resourceType": "MedicationRequest", + "id": "00d3dd04-d162-49ce-a808-6f220906f1c8", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1004", + "display": "Outpatient Community Prescriber - Nurse Independent/Supplementary prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ControlledDrug", + "extension": [ + { + "url": "quantityWords", + "valueString": "twenty eight" + }, + { + "url": "schedule", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-controlled-drug", + "code": "CD2", + "display": "Schedule 2" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "00d3dd04-d162-49ce-a808-6f220906f1c8" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "36126511000001106", + "display": "Morphine 10mg modified-release tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "d59ec3f9-9a75-4a0f-90ac-b6853dbd82d7" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "BA850E-A99968-41D69K" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "1 tablet, daily" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FY210" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186", + "resource": { + "resourceType": "MedicationRequest", + "id": "1de954ac-a1ea-49ab-bd4e-88e99f191186", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1004", + "display": "Outpatient Community Prescriber - Nurse Independent/Supplementary prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "1de954ac-a1ea-49ab-bd4e-88e99f191186" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321196004", + "display": "Diazepam 2mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "d59ec3f9-9a75-4a0f-90ac-b6853dbd82d7" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "BA850E-A99968-41D69K" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "note": [ + { + "text": "Dosage has been decreased on advice from the hospital." + } + ], + "dosageInstruction": [ + { + "text": "1 tablet, at NIGHT" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FY210" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449306087" + } + ], + "name": [ + { + "use": "usual", + "family": "LAURENCE", + "given": ["NEVILLE"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1917-07-06", + "address": [ + { + "use": "home", + "line": ["1 PETERSMEAD CLOSE", "TADWORTH", "SURREY"], + "postalCode": "KT20 5AR" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "H81109" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555253520107" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nmc-number", + "value": "12A3456B" + } + ], + "name": [ + { + "family": "UserP", + "given": ["Random"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "701025352555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "12A3456B" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8001:G8001:R8001", + "display": "Nurse Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..16c1ac3b --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+eHhuTUdqUHZ4dTlwbndyRE5ob0tIVGJCYkZVPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..6972fc81 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/1-Process-Request-Send-200_OK.json @@ -0,0 +1,490 @@ +{ + "resourceType": "Bundle", + "id": "2c251ced-dc17-47ff-bd2f-36f4b8c27dda", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "6370f676-8c2a-45bd-b2a7-868547e355ff" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:2c251ced-dc17-47ff-bd2f-36f4b8c27dda", + "resource": { + "resourceType": "MessageHeader", + "id": "A8F71A7D-B426-4B55-80A5-05436DE80486", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "Nurse|UserP" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://int.api.service.nhs.uk/electronic-prescriptions/$process-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FY210" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8" + }, + { + "reference": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + { + "reference": "urn:uuid:b2a46b68-9e1e-49e6-a132-88b3308ed561" + } + ] + } + }, + { + "fullUrl": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8", + "resource": { + "resourceType": "MedicationRequest", + "id": "00d3dd04-d162-49ce-a808-6f220906f1c8", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1004", + "display": "Outpatient Community Prescriber - Nurse Independent/Supplementary prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ControlledDrug", + "extension": [ + { + "url": "quantityWords", + "valueString": "twenty eight" + }, + { + "url": "schedule", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-controlled-drug", + "code": "CD2", + "display": "Schedule 2" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "00d3dd04-d162-49ce-a808-6f220906f1c8" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "36126511000001106", + "display": "Morphine 10mg modified-release tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "d59ec3f9-9a75-4a0f-90ac-b6853dbd82d7" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "BA850E-A99968-41D69K" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "1 tablet, daily" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FY210" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186", + "resource": { + "resourceType": "MedicationRequest", + "id": "1de954ac-a1ea-49ab-bd4e-88e99f191186", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1004", + "display": "Outpatient Community Prescriber - Nurse Independent/Supplementary prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "1de954ac-a1ea-49ab-bd4e-88e99f191186" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321196004", + "display": "Diazepam 2mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "d59ec3f9-9a75-4a0f-90ac-b6853dbd82d7" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "BA850E-A99968-41D69K" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "note": [ + { + "text": "Dosage has been decreased on advice from the hospital." + } + ], + "dosageInstruction": [ + { + "text": "1 tablet, at NIGHT" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FY210" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449306087" + } + ], + "name": [ + { + "use": "usual", + "family": "LAURENCE", + "given": ["NEVILLE"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1917-07-06", + "address": [ + { + "use": "home", + "line": ["1 PETERSMEAD CLOSE", "TADWORTH", "SURREY"], + "postalCode": "KT20 5AR" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "H81109" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555253520107" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nmc-number", + "value": "12A3456B" + } + ], + "name": [ + { + "family": "UserP", + "given": ["Random"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "701025352555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "12A3456B" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8001:G8001:R8001", + "display": "Nurse Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:b2a46b68-9e1e-49e6-a132-88b3308ed561", + "resource": { + "resourceType": "Provenance", + "id": "b2a46b68-9e1e-49e6-a132-88b3308ed561", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8" + }, + { + "reference": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:48+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPnM0d1JQdnIwenJwNk9iR0hKRlh5UHBId3dSYz08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+UUVObDhYd2t1cGg3MHVGYU02NWdCSkZSOTFkSENLUHZHTFV6L2Y5ZXNWNWhzQmM5UXcwS2pxQjBnMFpzWUFUay9TT0hDZ2VGb2tMbU5VVFZ6NElLcG9pNVBVK0xTUDBPSzZwL2Z3TThPb0lTVTlzNVZoSHUvZ3RPcmg3bHIwc0JQVktZMVZQNGVaVlNuMFM5bHp5Yzd6b0FvNnJwbk9JNUtKdnlwMDRNdlJnPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..4aad80e1 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/1-Prepare-Request-200_OK.json @@ -0,0 +1,615 @@ +{ + "resourceType": "Bundle", + "id": "aef77afb-7e3c-427a-8657-2c427f71a271", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "74441a9e-bafb-4a86-a389-b4c7d1d98645" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:3599c0e9-9292-413e-9270-9a1ef1ead99c", + "resource": { + "resourceType": "MessageHeader", + "id": "3599c0e9-9292-413e-9270-9a1ef1ead99c", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8" + }, + { + "reference": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + { + "reference": "urn:uuid:302ec192-3766-4964-a9f7-561a4a1bdada" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ControlledDrug", + "extension": [ + { + "url": "quantityWords", + "valueString": "twenty eight" + }, + { + "url": "schedule", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-controlled-drug", + "code": "CD2", + "display": "Schedule 2" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "4d529658-2be3-402d-b04e-6dd0392fcdea" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "2C07EF-A99968-46DCBI" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8", + "resource": { + "resourceType": "MedicationRequest", + "id": "00d3dd04-d162-49ce-a808-6f220906f1c8", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab5" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "36126511000001106", + "display": "Morphine 10mg modified-release tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "4d529658-2be3-402d-b04e-6dd0392fcdea" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "2C07EF-A99968-46DCBI" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "1 tablet, daily" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186", + "resource": { + "resourceType": "MedicationRequest", + "id": "1de954ac-a1ea-49ab-bd4e-88e99f191186", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab4" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321196004", + "display": "Diazepam 2mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "4d529658-2be3-402d-b04e-6dd0392fcdea" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "2C07EF-A99968-46DCBI" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "note": [ + { + "text": "Dosage has been decreased on advice from the hospital." + } + ], + "dosageInstruction": [ + { + "text": "1 tablet, at NIGHT" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "CORY", + "given": ["ETTA"], + "prefix": ["MISS"] + } + ], + "gender": "female", + "birthDate": "1999-01-04", + "address": [ + { + "use": "home", + "line": ["123 Dale Avenue", "Long Eaton", "Nottingham"], + "postalCode": "NG10 1NP" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086690109" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nmc-number", + "value": "12A3456B" + } + ], + "name": [ + { + "family": "Userq", + "given": ["Random"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "612345" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8001:G8001:R8001", + "display": "Nurse Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:302ec192-3766-4964-a9f7-561a4a1bdada", + "resource": { + "resourceType": "CommunicationRequest", + "id": "302ec192-3766-4964-a9f7-561a4a1bdada", + "status": "active", + "payload": [ + { + "contentString": "Your medication review is due. Please make an appointment to see your GP." + } + ], + "requester": { + "type": "Organization", + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + }, + "recipient": [ + { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9453740519" + } + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..a6a6e978 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+RGt4MVdTcG5uMGRMYURuQlhERWpmSVBuM3ZRPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..38149d42 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/1-Process-Request-Send-200_OK.json @@ -0,0 +1,674 @@ +{ + "resourceType": "Bundle", + "id": "aef77afb-7e3c-427a-8657-2c427f71a271", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "51601e5d-2c7b-4b7f-a3d0-0b076d55cfae" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:3599c0e9-9292-413e-9270-9a1ef1ead99c", + "resource": { + "resourceType": "MessageHeader", + "id": "3599c0e9-9292-413e-9270-9a1ef1ead99c", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8" + }, + { + "reference": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + { + "reference": "urn:uuid:302ec192-3766-4964-a9f7-561a4a1bdada" + }, + { + "reference": "urn:uuid:b2a46b68-9e1e-49e6-a132-88b3308ed561" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ControlledDrug", + "extension": [ + { + "url": "quantityWords", + "valueString": "twenty eight" + }, + { + "url": "schedule", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-controlled-drug", + "code": "CD2", + "display": "Schedule 2" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "4d529658-2be3-402d-b04e-6dd0392fcdea" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "2C07EF-A99968-46DCBI" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8", + "resource": { + "resourceType": "MedicationRequest", + "id": "00d3dd04-d162-49ce-a808-6f220906f1c8", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab5" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "36126511000001106", + "display": "Morphine 10mg modified-release tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "4d529658-2be3-402d-b04e-6dd0392fcdea" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "2C07EF-A99968-46DCBI" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "1 tablet, daily" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186", + "resource": { + "resourceType": "MedicationRequest", + "id": "1de954ac-a1ea-49ab-bd4e-88e99f191186", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab4" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321196004", + "display": "Diazepam 2mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "4d529658-2be3-402d-b04e-6dd0392fcdea" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "2C07EF-A99968-46DCBI" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "note": [ + { + "text": "Dosage has been decreased on advice from the hospital." + } + ], + "dosageInstruction": [ + { + "text": "1 tablet, at NIGHT" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "CORY", + "given": ["ETTA"], + "prefix": ["MISS"] + } + ], + "gender": "female", + "birthDate": "1999-01-04", + "address": [ + { + "use": "home", + "line": ["123 Dale Avenue", "Long Eaton", "Nottingham"], + "postalCode": "NG10 1NP" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086690109" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nmc-number", + "value": "12A3456B" + } + ], + "name": [ + { + "family": "Userq", + "given": ["Random"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "612345" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8001:G8001:R8001", + "display": "Nurse Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:302ec192-3766-4964-a9f7-561a4a1bdada", + "resource": { + "resourceType": "CommunicationRequest", + "id": "302ec192-3766-4964-a9f7-561a4a1bdada", + "status": "active", + "payload": [ + { + "contentString": "Your medication review is due. Please make an appointment to see your GP." + } + ], + "requester": { + "type": "Organization", + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + }, + "recipient": [ + { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9453740519" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:b2a46b68-9e1e-49e6-a132-88b3308ed561", + "resource": { + "resourceType": "Provenance", + "id": "b2a46b68-9e1e-49e6-a132-88b3308ed561", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8" + }, + { + "reference": "urn:uuid:1de954ac-a1ea-49ab-bd4e-88e99f191186" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + { + "reference": "urn:uuid:302ec192-3766-4964-a9f7-561a4a1bdada" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:49+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPmNBMC9GUzlnMEk5REdxdFpvR0JOSitjc3Bpbz08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+R1ZwOTkyUVdMZ21vQ2theFo5a043OElVUXprSlQ4bWR3RjV1Q0FlMXBudnlwNnpPVEY0OFBzeTh3aGFJeGQ3NmdUK1BidkllcnJvVnlPeDVuUi9taDcvTittTDliZkNCRHhQcXEvNUhJVWl3WkhBN0s2MFdJbnNpU0VlRlFGWEtQTnh1aXNrR2RpcnBuSUhyVnRBUGhLYVdvN1hQZ2lRcWVSaTRMMW1mVDRjPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/2-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/2-Prepare-Request-200_OK.json new file mode 100644 index 00000000..8e37e47c --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/2-Prepare-Request-200_OK.json @@ -0,0 +1,360 @@ +{ + "resourceType": "Bundle", + "id": "aef77afb-7e3c-427a-8657-2c427f71a271", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "ff9a1638-f33c-4075-b62b-2cb39f53835e" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:3599c0e9-9292-413e-9270-9a1ef1ead99c", + "resource": { + "resourceType": "MessageHeader", + "id": "3599c0e9-9292-413e-9270-9a1ef1ead99c", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + { + "reference": "urn:uuid:302ec192-3766-4964-a9f7-561a4a1bdada" + } + ] + } + }, + { + "fullUrl": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8", + "resource": { + "resourceType": "MedicationRequest", + "id": "00d3dd04-d162-49ce-a808-6f220906f1c8", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ControlledDrug", + "extension": [ + { + "url": "quantityWords", + "valueString": "twenty eight" + }, + { + "url": "schedule", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-controlled-drug", + "code": "CD2", + "display": "Schedule 2" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "36126511000001106", + "display": "Morphine 10mg modified-release tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "d0e593e6-a39e-4b14-8961-f93dad795779" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "CD1BC3-A99968-4A788Y" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "note": [ + { + "text": "Dosage has been decreased on advice from the hospital." + } + ], + "dosageInstruction": [ + { + "text": "1 tablet, daily" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "CORY", + "given": ["ETTA"], + "prefix": ["MISS"] + } + ], + "gender": "female", + "birthDate": "1999-01-04", + "address": [ + { + "use": "home", + "line": ["123 Dale Avenue", "Long Eaton", "Nottingham"], + "postalCode": "NG10 1NP" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086690109" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nmc-number", + "value": "12A3456B" + } + ], + "name": [ + { + "family": "Userq", + "given": ["Random"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "612345" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8001:G8001:R8001", + "display": "Nurse Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:302ec192-3766-4964-a9f7-561a4a1bdada", + "resource": { + "resourceType": "CommunicationRequest", + "id": "302ec192-3766-4964-a9f7-561a4a1bdada", + "status": "active", + "payload": [ + { + "contentString": "Your medication review is due. Please make an appointment to see your GP." + } + ], + "requester": { + "type": "Organization", + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + }, + "recipient": [ + { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9453740519" + } + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/2-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/2-Prepare-Response-200_OK.json new file mode 100644 index 00000000..29621b38 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/2-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+L0VGd2haZnZWL05QTVdpM2UrN0VGcTA1QWJzPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/2-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/2-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..6de3dcdc --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/prescribing-and-professional-codes/controlled-drugs/additional-instructions/2-Process-Request-Send-200_OK.json @@ -0,0 +1,413 @@ +{ + "resourceType": "Bundle", + "id": "aef77afb-7e3c-427a-8657-2c427f71a271", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "6e2a1b05-21c9-4b0f-bdb0-7daeef739689" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:3599c0e9-9292-413e-9270-9a1ef1ead99c", + "resource": { + "resourceType": "MessageHeader", + "id": "3599c0e9-9292-413e-9270-9a1ef1ead99c", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + { + "reference": "urn:uuid:302ec192-3766-4964-a9f7-561a4a1bdada" + }, + { + "reference": "urn:uuid:b2a46b68-9e1e-49e6-a132-88b3308ed561" + } + ] + } + }, + { + "fullUrl": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8", + "resource": { + "resourceType": "MedicationRequest", + "id": "00d3dd04-d162-49ce-a808-6f220906f1c8", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ControlledDrug", + "extension": [ + { + "url": "quantityWords", + "valueString": "twenty eight" + }, + { + "url": "schedule", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-controlled-drug", + "code": "CD2", + "display": "Schedule 2" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "36126511000001106", + "display": "Morphine 10mg modified-release tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "d0e593e6-a39e-4b14-8961-f93dad795779" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "CD1BC3-A99968-4A788Y" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "note": [ + { + "text": "Dosage has been decreased on advice from the hospital." + } + ], + "dosageInstruction": [ + { + "text": "1 tablet, daily" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "CORY", + "given": ["ETTA"], + "prefix": ["MISS"] + } + ], + "gender": "female", + "birthDate": "1999-01-04", + "address": [ + { + "use": "home", + "line": ["123 Dale Avenue", "Long Eaton", "Nottingham"], + "postalCode": "NG10 1NP" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086690109" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nmc-number", + "value": "12A3456B" + } + ], + "name": [ + { + "family": "Userq", + "given": ["Random"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "612345" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8001:G8001:R8001", + "display": "Nurse Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:302ec192-3766-4964-a9f7-561a4a1bdada", + "resource": { + "resourceType": "CommunicationRequest", + "id": "302ec192-3766-4964-a9f7-561a4a1bdada", + "status": "active", + "payload": [ + { + "contentString": "Your medication review is due. Please make an appointment to see your GP." + } + ], + "requester": { + "type": "Organization", + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + }, + "recipient": [ + { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9453740519" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:b2a46b68-9e1e-49e6-a132-88b3308ed561", + "resource": { + "resourceType": "Provenance", + "id": "b2a46b68-9e1e-49e6-a132-88b3308ed561", + "target": [ + { + "reference": "urn:uuid:00d3dd04-d162-49ce-a808-6f220906f1c8" + }, + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + { + "reference": "urn:uuid:302ec192-3766-4964-a9f7-561a4a1bdada" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:49+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPlp0WXFvV3loemo3M0JYdE5qWWR0Z0w5R2xlcz08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+UFdER01EYjNPZnpkOWM1bkprN0ZOQ1gwc29LVmxkV1dyOTUwTWxQNVQ3c1JPYTBrWkJBbFkwRFZlYTlJSUxQRk5XS2srL2pnUGp2RGc3RkFNazZoNUhwRGV3clFUUVV6NUovd0N3eUQxN3JyVXBoR01OVWM1V2g4NjVzVTBKeFNHblFmVk1LaHZSTW83Wnd6WnREOCtxNWxFa01nbnZ1SzJ0MDE1UHNaRTEwPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/professional-code/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/professional-code/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..25121a54 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/professional-code/1-Prepare-Request-200_OK.json @@ -0,0 +1,333 @@ +{ + "resourceType": "Bundle", + "id": "aef77afb-7e3c-427a-8657-2c427f71a271", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "d91dbd11-43ba-442e-a239-0ac0dd1b423c" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:aef77afb-7e3c-427a-8657-2c427f71a271", + "resource": { + "resourceType": "MessageHeader", + "id": "3599c0e9-9292-413e-9270-9a1ef1ead99c", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "c3f8dfb0-eed2-428d-bccc-a7df482d2d03" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "B28780-A99968-4DD892" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "CORY", + "given": ["ETTA"], + "prefix": ["MISS"] + } + ], + "gender": "female", + "birthDate": "1999-01-04", + "address": [ + { + "use": "home", + "line": ["123 Dale Avenue", "Long Eaton", "Nottingham"], + "postalCode": "NG10 1NP" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086690109" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nmc-number", + "value": "12A3456B" + } + ], + "name": [ + { + "family": "Userq", + "given": ["Random"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8001:G8001:R8001", + "display": "Nurse Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/professional-code/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/professional-code/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..b74eac30 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/professional-code/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+dDBqUDRkTVRnY0JLQXpENUtHVnJuNm5GSHMwPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/professional-code/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/professional-code/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..a18569e0 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/nurse/professional-code/1-Process-Request-Send-200_OK.json @@ -0,0 +1,368 @@ +{ + "resourceType": "Bundle", + "id": "aef77afb-7e3c-427a-8657-2c427f71a271", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "163f7c81-1561-419e-8333-5ef39a4158dd" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:aef77afb-7e3c-427a-8657-2c427f71a271", + "resource": { + "resourceType": "MessageHeader", + "id": "3599c0e9-9292-413e-9270-9a1ef1ead99c", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "c3f8dfb0-eed2-428d-bccc-a7df482d2d03" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "B28780-A99968-4DD892" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "CORY", + "given": ["ETTA"], + "prefix": ["MISS"] + } + ], + "gender": "female", + "birthDate": "1999-01-04", + "address": [ + { + "use": "home", + "line": ["123 Dale Avenue", "Long Eaton", "Nottingham"], + "postalCode": "NG10 1NP" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086690109" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nmc-number", + "value": "12A3456B" + } + ], + "name": [ + { + "family": "Userq", + "given": ["Random"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8001:G8001:R8001", + "display": "Nurse Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:DBAA616B-E23C-4D53-0F82-B2D178DB79CA" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:51+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjhZdVd6aG9jdE9qa1JvdWk4NTR6QXFydy9NQT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+TkIwdU5rRS9QUjNJNmZ6dnVualQ0dVlrQ0ErM0wwYW55c2ViWUU4S3BOTGQ4enFMY0RnYytrWFhuMW5US3VjZXdQa2V0QnA2MjQybUlJMDZBRFN2TkNTa3k0UDVJbERNS3BvUTI2U09yK2xGUXRLTTlpWWcvMUloV3lCOFYwNGExRUZualRzYlFqZzd3QnlVSk04amxFQkVQSkdTU2owNG5lL3liYndldG40PTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/paramedic/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/paramedic/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..a6c97474 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/paramedic/1-Prepare-Request-200_OK.json @@ -0,0 +1,652 @@ +{ + "resourceType": "Bundle", + "id": "0A1FD9EF-A3D5-4E95-84CD-552070A03089", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "0dfed66b-568f-449e-a24b-2a2f325e4d7e" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "resource": { + "resourceType": "MessageHeader", + "id": "0A1FD9EF-A3D5-4E95-84CD-552070A03089", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "USERM|PHARMACIST" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1025", + "display": "Outpatient Community Prescriber - Paramedic Independent Supplementary prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321249002", + "display": "Chlordiazepoxide 5mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "1b143870-aa42-4c67-95a0-ee0a400b7578" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "BC2927-A99968-478E9A" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 3, + "unit": "Capsule", + "system": "http://snomed.info/sct", + "code": "428641000" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:dd994697-df0e-4202-bd5a-a8e3080bf0bc", + "resource": { + "resourceType": "MedicationRequest", + "id": "dd994697-df0e-4202-bd5a-a8e3080bf0bc", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1025", + "display": "Outpatient Community Prescriber - Paramedic Independent Supplementary prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "dd994697-df0e-4202-bd5a-a8e3080bf0bc" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421341000", + "display": "Doxycycline 100mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "1b143870-aa42-4c67-95a0-ee0a400b7578" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "BC2927-A99968-478E9A" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 7, + "unit": "Tablet", + "system": "http://snomed.info/sct", + "code": "385055001" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:1e35d3a9-a256-4985-8476-0294bb12d37e", + "resource": { + "resourceType": "MedicationRequest", + "id": "1e35d3a9-a256-4985-8476-0294bb12d37e", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1025", + "display": "Outpatient Community Prescriber - Paramedic Independent Supplementary prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "1e35d3a9-a256-4985-8476-0294bb12d37e" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "376689003", + "display": "Trazodone 50mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "1b143870-aa42-4c67-95a0-ee0a400b7578" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "BC2927-A99968-478E9A" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 14, + "unit": "Capsule", + "system": "http://snomed.info/sct", + "code": "428641000" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a51041ce-9a43-4bc4-a277-cffa434bdd63", + "resource": { + "resourceType": "MedicationRequest", + "id": "a51041ce-9a43-4bc4-a277-cffa434bdd63", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1025", + "display": "Outpatient Community Prescriber - Paramedic Independent Supplementary prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a51041ce-9a43-4bc4-a277-cffa434bdd63" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "415165003", + "display": "Pregabalin 300mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "1b143870-aa42-4c67-95a0-ee0a400b7578" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "BC2927-A99968-478E9A" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 10, + "unit": "Tablet", + "system": "http://snomed.info/sct", + "code": "385055001" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "DAVIS", + "given": ["JANE"], + "prefix": ["MRS"] + } + ], + "gender": "female", + "birthDate": "1999-11-25", + "address": [ + { + "use": "home", + "line": ["53 Harrogate Road", "Chapel Allerton", "Leeds"], + "postalCode": "LS7 3PY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "5555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gphc-number", + "value": "2083469" + } + ], + "name": [ + { + "family": "USERM", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "201715352555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "2083469" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8003:G8003:R8003", + "display": "Healthcare Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/paramedic/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/paramedic/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..f1e0cb58 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/paramedic/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+QndUb3dMNjd3b3IvUnVlTnZWcTZCL1BhV080PTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/paramedic/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/paramedic/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..2bd959f9 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/paramedic/1-Process-Request-Send-200_OK.json @@ -0,0 +1,687 @@ +{ + "resourceType": "Bundle", + "id": "0A1FD9EF-A3D5-4E95-84CD-552070A03089", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "a8156c34-9c4e-42fc-b2fe-b224c686247b" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "resource": { + "resourceType": "MessageHeader", + "id": "0A1FD9EF-A3D5-4E95-84CD-552070A03089", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "USERM|PHARMACIST" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1025", + "display": "Outpatient Community Prescriber - Paramedic Independent Supplementary prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "321249002", + "display": "Chlordiazepoxide 5mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "1b143870-aa42-4c67-95a0-ee0a400b7578" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "BC2927-A99968-478E9A" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 3, + "unit": "Capsule", + "system": "http://snomed.info/sct", + "code": "428641000" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:dd994697-df0e-4202-bd5a-a8e3080bf0bc", + "resource": { + "resourceType": "MedicationRequest", + "id": "dd994697-df0e-4202-bd5a-a8e3080bf0bc", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1025", + "display": "Outpatient Community Prescriber - Paramedic Independent Supplementary prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "dd994697-df0e-4202-bd5a-a8e3080bf0bc" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421341000", + "display": "Doxycycline 100mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "1b143870-aa42-4c67-95a0-ee0a400b7578" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "BC2927-A99968-478E9A" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 7, + "unit": "Tablet", + "system": "http://snomed.info/sct", + "code": "385055001" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:1e35d3a9-a256-4985-8476-0294bb12d37e", + "resource": { + "resourceType": "MedicationRequest", + "id": "1e35d3a9-a256-4985-8476-0294bb12d37e", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1025", + "display": "Outpatient Community Prescriber - Paramedic Independent Supplementary prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "1e35d3a9-a256-4985-8476-0294bb12d37e" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "376689003", + "display": "Trazodone 50mg capsules" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "1b143870-aa42-4c67-95a0-ee0a400b7578" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "BC2927-A99968-478E9A" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 14, + "unit": "Capsule", + "system": "http://snomed.info/sct", + "code": "428641000" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a51041ce-9a43-4bc4-a277-cffa434bdd63", + "resource": { + "resourceType": "MedicationRequest", + "id": "a51041ce-9a43-4bc4-a277-cffa434bdd63", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1025", + "display": "Outpatient Community Prescriber - Paramedic Independent Supplementary prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a51041ce-9a43-4bc4-a277-cffa434bdd63" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "415165003", + "display": "Pregabalin 300mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "1b143870-aa42-4c67-95a0-ee0a400b7578" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "BC2927-A99968-478E9A" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Follow directions", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421769005", + "display": "Follow directions" + } + ] + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 10, + "unit": "Tablet", + "system": "http://snomed.info/sct", + "code": "385055001" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "DAVIS", + "given": ["JANE"], + "prefix": ["MRS"] + } + ], + "gender": "female", + "birthDate": "1999-11-25", + "address": [ + { + "use": "home", + "line": ["53 Harrogate Road", "Chapel Allerton", "Leeds"], + "postalCode": "LS7 3PY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "5555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gphc-number", + "value": "2083469" + } + ], + "name": [ + { + "family": "USERM", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "201715352555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "2083469" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8003:G8003:R8003", + "display": "Healthcare Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:36+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPk1TMUViLzUwQ09JbkVJam01UGNIZ2tiYWUxND08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+TkQ4M0hDSGs5Z0NXRU8rQVRCV0lGOS82SDhQTTd6OFJYNVYyenhSZVRpbnlLUlRWQk1HYnBTYlk2TDhBRVBKdm54U1FhS1NGUWFnbXE0YjVXcGpxSFg0YmprL3ZlZU55aTBEM0w3QktTYXg1TVNiRzI1MWUzeTJPNlRXK0poMGhhMW5KU3ZEWXRnbGZOWGZnUWErVWx0WUFDUSt1cnljL0FJLzZFMmg3MDRrPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..bfe33277 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/1-Prepare-Request-200_OK.json @@ -0,0 +1,349 @@ +{ + "resourceType": "Bundle", + "id": "2df4d4d2-fa89-4fc3-acd1-53f8296b7b60", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "25f35aa4-1e27-4fa2-9213-ca0ac8bc18c4" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:2df4d4d2-fa89-4fc3-acd1-53f8296b7b60", + "resource": { + "resourceType": "MessageHeader", + "id": "2df4d4d2-fa89-4fc3-acd1-53f8296b7b60", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1008", + "display": "Outpatient Community Prescriber - Pharmacist Independent Supplementary prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "FS", + "display": "Sexual Health" + } + ] + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "408015000", + "display": "Moxifloxacin 400mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "ea100330-67d3-4783-9d9c-87950b94a186" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "863F80-A99968-4DA7AW" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Swallow 400 milligram - 5 times a day - Oral route - for 5 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 5, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421521009", + "display": "Swallow" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 400, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 1, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "DAVIS", + "given": ["JANE"], + "prefix": ["MRS"] + } + ], + "gender": "female", + "birthDate": "1999-11-25", + "address": [ + { + "use": "home", + "line": ["53 Harrogate Road", "Chapel Allerton", "Leeds"], + "postalCode": "LS7 3PY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gphc-number", + "value": "2083469" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role " + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..8e4e7e2b --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+akd0Vm1FcW13aCtNSWF4elJLYXhsc0ZyYVNBPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..ddfc9e83 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/1-Process-Request-Send-200_OK.json @@ -0,0 +1,384 @@ +{ + "resourceType": "Bundle", + "id": "2df4d4d2-fa89-4fc3-acd1-53f8296b7b60", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "1d2b3b95-9e5c-41b2-a6f4-83b9c112fc39" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:2df4d4d2-fa89-4fc3-acd1-53f8296b7b60", + "resource": { + "resourceType": "MessageHeader", + "id": "2df4d4d2-fa89-4fc3-acd1-53f8296b7b60", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1008", + "display": "Outpatient Community Prescriber - Pharmacist Independent Supplementary prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "FS", + "display": "Sexual Health" + } + ] + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "408015000", + "display": "Moxifloxacin 400mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "ea100330-67d3-4783-9d9c-87950b94a186" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "863F80-A99968-4DA7AW" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Swallow 400 milligram - 5 times a day - Oral route - for 5 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 5, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "421521009", + "display": "Swallow" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 400, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 1, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "DAVIS", + "given": ["JANE"], + "prefix": ["MRS"] + } + ], + "gender": "female", + "birthDate": "1999-11-25", + "address": [ + { + "use": "home", + "line": ["53 Harrogate Road", "Chapel Allerton", "Leeds"], + "postalCode": "LS7 3PY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gphc-number", + "value": "2083469" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role " + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:41+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPkFOU1RjejV4TDAyRWlhUlNXY0M5a0oxTU9waz08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+TUFhRjkyYy94K3FwY0htUUQwN2V6WDY2cm1rZE1uRkxMUUJIcGlqcll0OGNmcFE0WVh0VlZ5VkpHNkZJbDRwcVhySjFzeXBVVWdDUnJ3bE9aZEpDSkNEUHNTL1RWcEVaQlZ2TC83YkdxcTBaUU5lclVvblBKV2ZGWjE3MkVxSGpmWXU1UkQ3WmptUzE2Sy9YY0tPd2h4UVQyc0Z2TEtHd2FwbUZIVUFZWmdRPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/2-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/2-Prepare-Request-200_OK.json new file mode 100644 index 00000000..4b690faa --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/2-Prepare-Request-200_OK.json @@ -0,0 +1,361 @@ +{ + "resourceType": "Bundle", + "id": "2df4d4d2-fa89-4fc3-acd1-53f8296b7b60", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "cb398d94-035b-4ddd-ab69-d3dfa0ec16da" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:2df4d4d2-fa89-4fc3-acd1-53f8296b7b60", + "resource": { + "resourceType": "MessageHeader", + "id": "2df4d4d2-fa89-4fc3-acd1-53f8296b7b60", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1008", + "display": "Outpatient Community Prescriber - Pharmacist Independent Supplementary prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "SLS", + "display": "Selected List Scheme" + } + ] + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "FS", + "display": "Sexual Health" + } + ] + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "37740611000001101", + "display": "Nizoral 2% cream" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "94f0201a-f656-4a8b-b646-5561f74d16f0" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "C2529A-A99968-464891" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Apply 30 gram - 5 times a day - Cutaneous route - for 5 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 5, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "417924000", + "display": "Apply" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "448598008", + "display": "Cutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 30, + "unit": "gram", + "system": "http://unitsofmeasure.org", + "code": "g" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 1, + "unit": "Bottle", + "system": "http://snomed.info/sct", + "code": "419672006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "DAVIS", + "given": ["JANE"], + "prefix": ["MRS"] + } + ], + "gender": "female", + "birthDate": "1999-11-25", + "address": [ + { + "use": "home", + "line": ["53 Harrogate Road", "Chapel Allerton", "Leeds"], + "postalCode": "LS7 3PY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gphc-number", + "value": "2083469" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role " + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/2-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/2-Prepare-Response-200_OK.json new file mode 100644 index 00000000..d1ee9622 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/2-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+aEtGMjVHa3lmTENrajlMb1ppZGptZHdPZzJNPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/2-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/2-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..1ad2552d --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/acute/nominated-pharmacy/pharmacist/prescriber-endorsed/2-Process-Request-Send-200_OK.json @@ -0,0 +1,396 @@ +{ + "resourceType": "Bundle", + "id": "2df4d4d2-fa89-4fc3-acd1-53f8296b7b60", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "bef2d32d-0ecb-46a3-b259-02f12b6cdfaa" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:2df4d4d2-fa89-4fc3-acd1-53f8296b7b60", + "resource": { + "resourceType": "MessageHeader", + "id": "2df4d4d2-fa89-4fc3-acd1-53f8296b7b60", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1008", + "display": "Outpatient Community Prescriber - Pharmacist Independent Supplementary prescriber" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "SLS", + "display": "Selected List Scheme" + } + ] + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "FS", + "display": "Sexual Health" + } + ] + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "37740611000001101", + "display": "Nizoral 2% cream" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "94f0201a-f656-4a8b-b646-5561f74d16f0" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "C2529A-A99968-464891" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Apply 30 gram - 5 times a day - Cutaneous route - for 5 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 5, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "417924000", + "display": "Apply" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "448598008", + "display": "Cutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 30, + "unit": "gram", + "system": "http://unitsofmeasure.org", + "code": "g" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 1, + "unit": "Bottle", + "system": "http://snomed.info/sct", + "code": "419672006" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "DAVIS", + "given": ["JANE"], + "prefix": ["MRS"] + } + ], + "gender": "female", + "birthDate": "1999-11-25", + "address": [ + { + "use": "home", + "line": ["53 Harrogate Road", "Chapel Allerton", "Leeds"], + "postalCode": "LS7 3PY" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gphc-number", + "value": "2083469" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role " + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:40+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPnJJN0FFYmZ2c3BMTk5iajFQNnh2RkIzeUUyZz08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+QzhZNUtocTFhNlhpeE5WU2tZMzI3TVREdGxqSmx6WU9GQkRyQ3IxS3U1M05wV0tFR0k0WWt5SWMycVVrWFk5STd2NU82MFpKMFhwaUxNTUdocFlXdUdXVXlSYlpKZjJwSm5aUWcrT1RUQXpZZHAvbHEwMDd2bFQvcmcxM3NrUXlTTVVQS3lVTG5NY0YvU2ZWWEdRUzRFSFNPNEhpTURVeVBPNG5kdWNvemh3PTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/non-prescriber-endorsed/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/non-prescriber-endorsed/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..291789ff --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/non-prescriber-endorsed/1-Prepare-Request-200_OK.json @@ -0,0 +1,852 @@ +{ + "resourceType": "Bundle", + "id": "aef77afb-7e3c-427a-8657-2c427f71a271", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "6072bbce-754a-48ec-90c0-38f861e1412a" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:aef77afb-7e3c-427a-8657-2c427f71a271", + "resource": { + "resourceType": "MessageHeader", + "id": "3599c0e9-9292-413e-9270-9a1ef1ead99c", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab7", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab7", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab7" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "66679858-aa86-46a1-8de7-a2c878867693" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "31AE14-A99968-48FB9Q" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + }, + "numberOfRepeatsAllowed": 5 + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "66679858-aa86-46a1-8de7-a2c878867693" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "31AE14-A99968-48FB9Q" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + }, + "numberOfRepeatsAllowed": 5 + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab5", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab5", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab5" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "66679858-aa86-46a1-8de7-a2c878867693" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "31AE14-A99968-48FB9Q" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + }, + "numberOfRepeatsAllowed": 5 + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab4", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab4", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab4" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "66679858-aa86-46a1-8de7-a2c878867693" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "31AE14-A99968-48FB9Q" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + }, + "numberOfRepeatsAllowed": 5 + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "CORY", + "given": ["ETTA"], + "prefix": ["MISS"] + } + ], + "gender": "female", + "birthDate": "1999-01-04", + "address": [ + { + "use": "home", + "line": ["123 Dale Avenue", "Long Eaton", "Nottingham"], + "postalCode": "NG10 1NP" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "612345" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "4428981" + } + ], + "name": [ + { + "family": "Edwards", + "given": ["Thomas"], + "prefix": ["DR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/non-prescriber-endorsed/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/non-prescriber-endorsed/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..7c27e868 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/non-prescriber-endorsed/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+Tkt0NkwwZmoyY0R4ak1CUE9Jd1l1QTJxc29NPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/non-prescriber-endorsed/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/non-prescriber-endorsed/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..937c3222 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/non-prescriber-endorsed/1-Process-Request-Send-200_OK.json @@ -0,0 +1,887 @@ +{ + "resourceType": "Bundle", + "id": "aef77afb-7e3c-427a-8657-2c427f71a271", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "81787bc4-c5e6-4c0c-9299-5421ec72a01c" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:aef77afb-7e3c-427a-8657-2c427f71a271", + "resource": { + "resourceType": "MessageHeader", + "id": "3599c0e9-9292-413e-9270-9a1ef1ead99c", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab7", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab7", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab7" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "66679858-aa86-46a1-8de7-a2c878867693" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "31AE14-A99968-48FB9Q" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + }, + "numberOfRepeatsAllowed": 5 + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "66679858-aa86-46a1-8de7-a2c878867693" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "31AE14-A99968-48FB9Q" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + }, + "numberOfRepeatsAllowed": 5 + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab5", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab5", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab5" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "66679858-aa86-46a1-8de7-a2c878867693" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "31AE14-A99968-48FB9Q" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + }, + "numberOfRepeatsAllowed": 5 + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab4", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab4", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab4" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "66679858-aa86-46a1-8de7-a2c878867693" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "31AE14-A99968-48FB9Q" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + }, + "numberOfRepeatsAllowed": 5 + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "CORY", + "given": ["ETTA"], + "prefix": ["MISS"] + } + ], + "gender": "female", + "birthDate": "1999-01-04", + "address": [ + { + "use": "home", + "line": ["123 Dale Avenue", "Long Eaton", "Nottingham"], + "postalCode": "NG10 1NP" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "612345" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "4428981" + } + ], + "name": [ + { + "family": "Edwards", + "given": ["Thomas"], + "prefix": ["DR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:34+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPkNLdW5uZDVKNHVpUkdtbkx3MmdTMEdYSXNvUT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+YXo2RDVOalA3TkxkMjhkSUNGM1ExT0JxR0RWSWo1TW0xSWIweXVuN01INHhGV2p2c3V4L0xBN3BLeGxBUnFLbTZBdXBEVEI2VGxwUU5VenRtKzVWK0U3QktoSkFiaFQ2N1RXcUpmb3Zab3RZWUZSeGt0eGc4MFZjTUpQWllMZk4rUUZqQUt6ODZzNlJTMHhINmI0bkxuRUptdndvUXVTVzF1RVNRT3Nmd0VBPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/prescriber-endorsed/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/prescriber-endorsed/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..cb42e0ed --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/prescriber-endorsed/1-Prepare-Request-200_OK.json @@ -0,0 +1,912 @@ +{ + "resourceType": "Bundle", + "id": "aef77afb-7e3c-427a-8657-2c427f71a271", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "19b3e4a8-7db6-486a-b2b6-178b2f44ac13" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:3599c0e9-9292-413e-9270-9a1ef1ead99c", + "resource": { + "resourceType": "MessageHeader", + "id": "3599c0e9-9292-413e-9270-9a1ef1ead99c", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab7", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab7", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "SLS", + "display": "Selected List Scheme" + } + ] + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab5" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "5f3b444b-9378-4597-ab49-194ebfd05439" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "540F91-A99968-4B9EBV" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "SLS", + "display": "Selected List Scheme" + } + ] + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab4" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "5f3b444b-9378-4597-ab49-194ebfd05439" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "540F91-A99968-4B9EBV" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab5", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab5", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "SLS", + "display": "Selected List Scheme" + } + ] + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab3" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "5f3b444b-9378-4597-ab49-194ebfd05439" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "540F91-A99968-4B9EBV" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab4", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab4", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "SLS", + "display": "Selected List Scheme" + } + ] + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab2" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "5f3b444b-9378-4597-ab49-194ebfd05439" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "540F91-A99968-4B9EBV" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "CORY", + "given": [ + "ETTA" + ], + "prefix": [ + "MISS" + ] + } + ], + "gender": "female", + "birthDate": "1999-01-04", + "address": [ + { + "use": "home", + "line": [ + "123 Dale Avenue", + "Long Eaton", + "Nottingham" + ], + "postalCode": "NG10 1NP" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "612345" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "4428981" + } + ], + "name": [ + { + "family": "Edwards", + "given": [ + "Thomas" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/prescriber-endorsed/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/prescriber-endorsed/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..62825cd0 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/prescriber-endorsed/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+Q0lFM2MwNnRxZlQ4ZUhMM2ZMY3A4TWNFYkJnPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/prescriber-endorsed/1-Process-Request-Dispense-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/prescriber-endorsed/1-Process-Request-Dispense-200_OK.json new file mode 100644 index 00000000..45abb9a0 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/prescriber-endorsed/1-Process-Request-Dispense-200_OK.json @@ -0,0 +1,1570 @@ +{ + "resourceType": "Bundle", + "id": "3d03b02a-2f98-44b8-b990-4280c5eafbb6", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "e7d43cac-5c63-4f08-b988-60813a080398" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:59466d42-419a-40b3-a9a9-7b20c998fa7c", + "resource": { + "resourceType": "MessageHeader", + "id": "59466d42-419a-40b3-a9a9-7b20c998fa7c", + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FCG71", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FCG71" + } + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "X2601" + }, + "display": "NHS Digital Spine" + }, + "source": { + "name": "NHS Spine", + "endpoint": "https://internal-qa.api.service.nhs.uk/electronic-prescriptions/$process-message" + }, + "response": { + "code": "ok", + "identifier": "ffffffff-ffff-4fff-bfff-ffffffffffff" + }, + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "dispense-notification", + "display": "Dispense Notification" + }, + "focus": [ + { + "reference": "urn:uuid:44ec4183-028c-480a-aa61-86861afef355" + }, + { + "reference": "urn:uuid:92c421ee-322a-41c8-85ed-784733761581" + }, + { + "reference": "urn:uuid:4c963cd2-05e4-4c25-8acb-5c30ac1981ef" + } + ] + } + }, + { + "fullUrl": "urn:uuid:92c421ee-322a-41c8-85ed-784733761581", + "resource": { + "resourceType": "MedicationDispense", + "id": "92c421ee-322a-41c8-85ed-784733761581", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "code": "0006", + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "display": "Dispensed" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", + "value": "f4625352-cbf9-4af4-8ad9-f639d003ad34" + } + ], + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Mr Peter Potion" + }, + "organization": { + "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0532567890" + } + ] + }, + { + "resourceType": "MedicationRequest", + "id": "m1", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + }, + { + "url": "numberOfPrescriptionsIssued", + "valueUnsignedInt": 1 + } + ] + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "SLS", + "display": "Selected List Scheme" + } + ] + } + } + ], + "basedOn": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation", + "extension": [ + { + "url": "numberOfRepeatsAllowed", + "valueInteger": 5 + }, + { + "url": "numberOfRepeatsIssued", + "valueInteger": 0 + } + ] + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab5" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "authoredOn": "2021-05-07T14:47:29+00:00", + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "5f3b444b-9378-4597-ab49-194ebfd05439" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "540F91-A99968-4B9EBV" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + ], + "status": "unknown", + "statusReasonCodeableConcept": { + "coding": [ + { + "code": "0001", + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-status-reason", + "display": "Not required as instructed by the patient" + } + ] + }, + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:44ec4183-028c-480a-aa61-86861afef355", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + }, + "performer": [ + { + "actor": { + "reference": "#performer" + } + } + ], + "authorizingPrescription": [ + { + "reference": "#m1" + } + ], + "type": { + "coding": [ + { + "code": "0002", + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "display": "Item not dispensed" + } + ] + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "whenHandedOver": "2023-02-07T11:46:05.004Z", + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:4c963cd2-05e4-4c25-8acb-5c30ac1981ef", + "resource": { + "resourceType": "MedicationDispense", + "id": "4c963cd2-05e4-4c25-8acb-5c30ac1981ef", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "code": "0006", + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "display": "Dispensed" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", + "value": "a677894f-efd1-46a1-a808-282ce2ae5729" + } + ], + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Mr Peter Potion" + }, + "organization": { + "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0532567890" + } + ] + }, + { + "resourceType": "MedicationRequest", + "id": "m1", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + }, + { + "url": "numberOfPrescriptionsIssued", + "valueUnsignedInt": 1 + } + ] + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "SLS", + "display": "Selected List Scheme" + } + ] + } + } + ], + "basedOn": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation", + "extension": [ + { + "url": "numberOfRepeatsAllowed", + "valueInteger": 5 + }, + { + "url": "numberOfRepeatsIssued", + "valueInteger": 0 + } + ] + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab4" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "authoredOn": "2021-05-07T14:47:29+00:00", + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "5f3b444b-9378-4597-ab49-194ebfd05439" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "540F91-A99968-4B9EBV" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + ], + "status": "unknown", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:44ec4183-028c-480a-aa61-86861afef355", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + }, + "performer": [ + { + "actor": { + "reference": "#performer" + } + } + ], + "authorizingPrescription": [ + { + "reference": "#m1" + } + ], + "type": { + "coding": [ + { + "code": "0001", + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "display": "Item fully dispensed" + } + ] + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "whenHandedOver": "2023-02-07T11:46:05.004Z", + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:da9a7674-7dd5-438c-8efb-fd42aa497eb9", + "resource": { + "resourceType": "MedicationDispense", + "id": "da9a7674-7dd5-438c-8efb-fd42aa497eb9", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "code": "0006", + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "display": "Dispensed" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", + "value": "da9a7674-7dd5-438c-8efb-fd42aa497eb9" + } + ], + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Mr Peter Potion" + }, + "organization": { + "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0532567890" + } + ] + }, + { + "resourceType": "MedicationRequest", + "id": "m1", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + }, + { + "url": "numberOfPrescriptionsIssued", + "valueUnsignedInt": 1 + } + ] + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "SLS", + "display": "Selected List Scheme" + } + ] + } + } + ], + "basedOn": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation", + "extension": [ + { + "url": "numberOfRepeatsAllowed", + "valueInteger": 5 + }, + { + "url": "numberOfRepeatsIssued", + "valueInteger": 0 + } + ] + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab3" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "authoredOn": "2021-05-07T14:47:29+00:00", + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "5f3b444b-9378-4597-ab49-194ebfd05439" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "540F91-A99968-4B9EBV" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2021-09-03", + "end": "2021-10-03" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + ], + "status": "unknown", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:44ec4183-028c-480a-aa61-86861afef355", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + }, + "performer": [ + { + "actor": { + "reference": "#performer" + } + } + ], + "authorizingPrescription": [ + { + "reference": "#m1" + } + ], + "type": { + "coding": [ + { + "code": "0001", + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "display": "Item fully dispensed" + } + ] + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "whenHandedOver": "2023-02-07T11:46:05.004Z", + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:dc3948d9-5cc5-41ee-8c8d-fd690116762c", + "resource": { + "resourceType": "MedicationDispense", + "id": "dc3948d9-5cc5-41ee-8c8d-fd690116762c", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "code": "0006", + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "display": "Dispensed" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", + "value": "dc3948d9-5cc5-41ee-8c8d-fd690116762c" + } + ], + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Mr Peter Potion" + }, + "organization": { + "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0532567890" + } + ] + }, + { + "resourceType": "MedicationRequest", + "id": "m1", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + }, + { + "url": "numberOfPrescriptionsIssued", + "valueUnsignedInt": 1 + } + ] + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "SLS", + "display": "Selected List Scheme" + } + ] + } + } + ], + "basedOn": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation", + "extension": [ + { + "url": "numberOfRepeatsAllowed", + "valueInteger": 5 + }, + { + "url": "numberOfRepeatsIssued", + "valueInteger": 0 + } + ] + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab2" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "authoredOn": "2021-05-07T14:47:29+00:00", + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "5f3b444b-9378-4597-ab49-194ebfd05439" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "540F91-A99968-4B9EBV" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + ], + "status": "unknown", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:44ec4183-028c-480a-aa61-86861afef355", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + }, + "performer": [ + { + "actor": { + "reference": "#performer" + } + } + ], + "authorizingPrescription": [ + { + "reference": "#m1" + } + ], + "type": { + "coding": [ + { + "code": "0001", + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "display": "Item fully dispensed" + } + ] + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "whenHandedOver": "2023-02-07T11:46:05.004Z", + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:44ec4183-028c-480a-aa61-86861afef355", + "resource": { + "resourceType": "Patient", + "id": "44ec4183-028c-480a-aa61-86861afef355", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "CORY", + "given": ["ETTA"], + "prefix": ["MISS"] + } + ], + "gender": "female", + "birthDate": "1999-01-04", + "address": [ + { + "use": "home", + "line": ["123 Dale Avenue", "Long Eaton", "Nottingham"], + "postalCode": "NG10 1NP" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b", + "resource": { + "resourceType": "Organization", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ODS-OrganisationRelationships", + "extension": [ + { + "url": "reimbursementAuthority", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "id": "2bf9f37c-d88b-4f86-ad5f-373c1416e04b", + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": ["17 Austhorpe Road", "Crossgates", "Leeds"], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/prescriber-endorsed/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/prescriber-endorsed/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..12ec8186 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/prescriber-endorsed/1-Process-Request-Send-200_OK.json @@ -0,0 +1,935 @@ +{ + "resourceType": "Bundle", + "id": "aef77afb-7e3c-427a-8657-2c427f71a271", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "221f6b28-cb58-410b-99bb-9375760ee70a" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:3599c0e9-9292-413e-9270-9a1ef1ead99c", + "resource": { + "resourceType": "MessageHeader", + "id": "3599c0e9-9292-413e-9270-9a1ef1ead99c", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab7", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab7", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "SLS", + "display": "Selected List Scheme" + } + ] + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab5" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "5f3b444b-9378-4597-ab49-194ebfd05439" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "540F91-A99968-4B9EBV" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "SLS", + "display": "Selected List Scheme" + } + ] + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab4" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "5f3b444b-9378-4597-ab49-194ebfd05439" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "540F91-A99968-4B9EBV" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab5", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab5", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "SLS", + "display": "Selected List Scheme" + } + ] + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab3" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "5f3b444b-9378-4597-ab49-194ebfd05439" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "540F91-A99968-4B9EBV" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab4", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab4", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement", + "valueCodeableConcept": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement", + "code": "SLS", + "display": "Selected List Scheme" + } + ] + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab2" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "5f3b444b-9378-4597-ab49-194ebfd05439" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "540F91-A99968-4B9EBV" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2021-05-07", + "end": "2021-06-04" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "CORY", + "given": ["ETTA"], + "prefix": ["MISS"] + } + ], + "gender": "female", + "birthDate": "1999-01-04", + "address": [ + { + "use": "home", + "line": ["123 Dale Avenue", "Long Eaton", "Nottingham"], + "postalCode": "NG10 1NP" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "612345" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "4428981" + } + ], + "name": [ + { + "family": "Edwards", + "given": ["Thomas"], + "prefix": ["DR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:33+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPkRaU1NaRzVPZHpoUUpVNHZoY2VUWng1UXRIRT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+UUhFYmZXTXhFcUQzWUVIOFh1WFQ4VUdxY0MyQ3k3MVJrNGNjUTgyNTJPanhLanNCeEV5azQ3aG1Fci9oYkxvTEo1WnU3dy82cEs3blZEblNpUjVrSXhCL053VWF6TGdUaC8zWWJFQUQrZFUyb0J4TGJseEltVVAxNE5INlVMNEdTU2VCRFRPT0lFZkhiWFI0Vitsd2JiN0dadXV2Smp5TENVbjJsM0FENzVzPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/prescriber-endorsed/1-Task-Request-Release-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/prescriber-endorsed/1-Task-Request-Release-200_OK.json new file mode 100644 index 00000000..54dce09e --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/multiple-medication-requests/prescriber-endorsed/1-Task-Request-Release-200_OK.json @@ -0,0 +1,96 @@ +{ + "resourceType": "Parameters", + "id": "07de6aba-e4dd-4bb6-b96e-a2c9a44b12fd", + "parameter": [ + { + "name": "owner", + "resource": { + "resourceType": "Organization", + "id": "organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": ["17 Austhorpe Road", "Crossgates", "Leeds"], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + }, + { + "name": "status", + "valueCode": "accepted" + }, + { + "name": "agent", + "resource": { + "resourceType": "PractitionerRole", + "id": "0933efe6-ada4-41e7-b1d1-3e4d2f47efe1", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "02380798431", + "use": "work" + } + ] + } + }, + { + "name": "group-identifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "540F91-A99968-4B9EBV" + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Claim-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Claim-Request-200_OK.json new file mode 100644 index 00000000..48ecf5ca --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Claim-Request-200_OK.json @@ -0,0 +1,354 @@ +{ + "resourceType": "Claim", + "id": "a76599c5-bbdd-4581-bb4d-377b348dd1e4", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-Provenance-agent", + "valueReference": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "7654321" + }, + "display": "Mr Peter Potion" + } + } + ], + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "provider", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "454567759542" + } + ], + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "7654321" + }, + "display": "Mr Peter Potion" + }, + "organization": { + "reference": "#organisation" + }, + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "01234567890" + } + ] + }, + { + "resourceType": "Organization", + "id": "organisation", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + ], + "created": "2022-11-30T13:30:00.000Z", + "identifier": [ + { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "737dcf8d-fc7a-436d-b692-7d3c4f258083" + } + ], + "status": "active", + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/claim-type", + "code": "pharmacy", + "display": "Pharmacy" + } + ] + }, + "use": "claim", + "patient": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304130" + } + }, + "provider": { + "reference": "#provider" + }, + "priority": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/processpriority", + "code": "normal" + } + ] + }, + "insurance": [ + { + "sequence": 1, + "focal": true, + "coverage": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + }, + "display": "NHS BUSINESS SERVICES AUTHORITY" + } + } + ], + "payee": { + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/payeetype", + "code": "provider", + "display": "Provider" + } + ] + }, + "party": { + "reference": "#organisation" + } + }, + "prescription": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-GroupIdentifier", + "extension": [ + { + "url": "shortForm", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "B407F7-A99968-4DB2AU" + } + }, + { + "url": "UUID", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "10d37820-dda2-4810-94d7-c79e5fdb4b46" + } + } + ] + } + ], + "display": "A prescription order" + }, + "item": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "code": "0006", + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "display": "Dispensed" + } + } + ], + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "16076005", + "display": "Prescription" + } + ] + }, + "programCode": [ + { + "coding": [ + { + "code": "0001", + "system": "https://fhir.nhs.uk/CodeSystem/prescription-charge-exemption", + "display": "Patient has paid appropriate charges" + } + ] + }, + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/DM-exemption-evidence", + "code": "no-evidence-seen", + "display": "No Evidence Seen" + } + ] + } + ], + "detail": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimSequenceIdentifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/claim-sequence-identifier", + "value": "be948cf8-5db1-4c39-8f9b-c7e049d55acb" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimMedicationRequestReference", + "valueReference": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation", + "extension": [ + { + "url": "numberOfRepeatsAllowed", + "valueInteger": 5 + }, + { + "url": "numberOfRepeatsIssued", + "valueInteger": 0 + } + ] + } + ], + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "modifier": [ + { + "coding": [ + { + "code": "0001", + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "display": "Item fully dispensed" + } + ] + } + ], + "programCode": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/DM-prescription-charge", + "code": "paid-once", + "display": "Paid Once" + } + ] + }, + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-endorsement", + "code": "NDEC", + "display": "No Dispenser Endorsement Code" + } + ] + } + ], + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "subDetail": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimMedicationDispenseReference", + "valueReference": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", + "value": "fd833d33-f128-4fa2-a807-1fc8a7db2658" + } + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation", + "extension": [ + { + "url": "numberOfRepeatsAllowed", + "valueInteger": 5 + }, + { + "url": "numberOfRepeatsIssued", + "valueInteger": 0 + } + ] + } + ], + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "39732311000001104", + "display": "Amoxicillin 250mg capsules" + } + ] + }, + "quantity": { + "value": 20, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + } + ] + } + ] + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..cd62f382 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Prepare-Request-200_OK.json @@ -0,0 +1,357 @@ +{ + "resourceType": "Bundle", + "id": "aef77afb-7e3c-427a-8657-2c427f71a271", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "8de3221e-54b7-4994-a55b-e7038abd36ad" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:aef77afb-7e3c-427a-8657-2c427f71a271", + "resource": { + "resourceType": "MessageHeader", + "id": "3599c0e9-9292-413e-9270-9a1ef1ead99c", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "10d37820-dda2-4810-94d7-c79e5fdb4b46" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "B407F7-A99968-4DB2AU" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2021-09-03", + "end": "2021-10-03" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FER21" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "CORY", + "given": ["ETTA"], + "prefix": ["MISS"] + } + ], + "gender": "female", + "birthDate": "1999-01-04", + "address": [ + { + "use": "home", + "line": ["123 Dale Avenue", "Long Eaton", "Nottingham"], + "postalCode": "NG10 1NP" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "612345" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "4428981" + } + ], + "name": [ + { + "family": "Edwards", + "given": ["Thomas"], + "prefix": ["DR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..40ea8f29 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+ZFdTNjJDalJCeVpsSnN6bENrdGJ5TkdtUWlJPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Process-Request-Dispense-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Process-Request-Dispense-200_OK.json new file mode 100644 index 00000000..51531a8b --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Process-Request-Dispense-200_OK.json @@ -0,0 +1,423 @@ +{ + "resourceType": "Bundle", + "id": "aef77afb-7e3c-427a-8657-2c427f71a271", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "76d1cc0b-bd64-4fad-a513-4de0f2ae7014" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:aef77afb-7e3c-427a-8657-2c427f71a271", + "resource": { + "resourceType": "MessageHeader", + "id": "3599c0e9-9292-413e-9270-9a1ef1ead99c", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "dispense-notification", + "display": "Dispense Notification" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "response": { + "identifier": "999f9999-9999-9999-9ff9-f9fff9999999", + "code": "ok" + } + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationDispense", + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "organization": { + "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "02380798431" + } + ] + }, + { + "resourceType": "MedicationRequest", + "id": "m1", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2020-12-07" + }, + { + "url": "numberOfPrescriptionsIssued", + "valueUnsignedInt": 1 + } + ] + } + ], + "basedOn": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation", + "extension": [ + { + "url": "numberOfRepeatsAllowed", + "valueInteger": 5 + }, + { + "url": "numberOfRepeatsIssued", + "valueInteger": 0 + } + ] + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "authoredOn": "2021-05-07T14:47:29+00:00", + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "10d37820-dda2-4810-94d7-c79e5fdb4b46" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "B407F7-A99968-4DB2AU" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "10 milligram, Inject, Subcutaneous route, once weekly", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2021-09-03", + "end": "2021-10-03" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FER21" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + ], + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "code": "0006", + "display": "Dispensed" + } + }, + { + "extension": [ + { + "url": "numberOfRepeatsAllowed", + "valueInteger": 5 + }, + { + "url": "numberOfRepeatsIssued", + "valueInteger": 1 + } + ], + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation" + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + }, + "authorizingPrescription": [ + { + "reference": "#m1" + } + ], + "performer": [ + { + "actor": { + "reference": "#performer" + } + } + ], + "whenHandedOver": "2021-07-07T15:43:00+00:00", + "dosageInstruction": [ + { + "text": "4 times a day for 7 days" + } + ], + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "status": "completed", + "type": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "code": "0001", + "display": "Item fully dispensed" + } + ] + } + } + }, + { + "fullUrl": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b", + "resource": { + "resourceType": "Organization", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ODS-OrganisationRelationships", + "extension": [ + { + "url": "reimbursementAuthority", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..724ee093 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Process-Request-Send-200_OK.json @@ -0,0 +1,392 @@ +{ + "resourceType": "Bundle", + "id": "aef77afb-7e3c-427a-8657-2c427f71a271", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "8de3221e-54b7-4994-a55b-e7038abd36ad" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:aef77afb-7e3c-427a-8657-2c427f71a271", + "resource": { + "resourceType": "MessageHeader", + "id": "3599c0e9-9292-413e-9270-9a1ef1ead99c", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FH542" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + }, + { + "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation", + "extension": [ + { + "url": "authorisationExpiryDate", + "valueDateTime": "2024-11-30" + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "original-order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "10d37820-dda2-4810-94d7-c79e5fdb4b46" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "B407F7-A99968-4DB2AU" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-course-of-therapy", + "code": "continuous-repeat-dispensing", + "display": "Continuous long term (repeat dispensing)" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 5, + "validityPeriod": { + "start": "2021-09-03", + "end": "2021-10-03" + }, + "quantity": { + "value": 63, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "expectedSupplyDuration": { + "value": 28, + "unit": "days", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FER21" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "id": "78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449305552" + } + ], + "name": [ + { + "use": "usual", + "family": "CORY", + "given": ["ETTA"], + "prefix": ["MISS"] + } + ], + "gender": "female", + "birthDate": "1999-01-04", + "address": [ + { + "use": "home", + "line": ["123 Dale Avenue", "Long Eaton", "Nottingham"], + "postalCode": "NG10 1NP" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "612345" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "4428981" + } + ], + "name": [ + { + "family": "Edwards", + "given": ["Thomas"], + "prefix": ["DR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-09-03T13:31:02+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+PFNpZ25lZEluZm8+PENhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiPjwvQ2Fub25pY2FsaXphdGlvbk1ldGhvZD48U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3JzYS1zaGExIj48L1NpZ25hdHVyZU1ldGhvZD48UmVmZXJlbmNlPjxUcmFuc2Zvcm1zPjxUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiPjwvVHJhbnNmb3JtPjwvVHJhbnNmb3Jtcz48RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3NoYTEiPjwvRGlnZXN0TWV0aG9kPjxEaWdlc3RWYWx1ZT5QbEdkVmYzeE5TNVFOdWdyelZHc0h3UW9Yc1E9PC9EaWdlc3RWYWx1ZT48L1JlZmVyZW5jZT48L1NpZ25lZEluZm8+PFNpZ25hdHVyZVZhbHVlPkl3enBUY1U1RjRnaklGY1RScHp2bGF3dkJoWVhBc1A3TXJUaG5FVm1UdWNxUFkxYVluTzB2VlY0d2RQeDFZK2FjYlBleGZCQmttbmFHUmNiUml6eDJ5YWdDMCtwUlhFSXZaa0tScHRkamVTbzFoODdnMUJIV1F4SG9MVjRQRzUvZm1ycy9LMEF0ZDRlMGNuWkwyRlpneFZXUkNkdEs1djQ5YU5qV1BqY1lCRHE3RC9rdTN0M0UrTVYvZ1VsenZVZnVqcWdrZnRxRHZBRUdCTmViZ2UzblRMdXJodmlYRUJuVjFxR1FZWVBJWjhaME9LUENUZHVDQ3dXZ0x2WmY3bU1vQjN0Nnh1UVNDL3Jybmo1dE5FekZVWDg4N3ZZa0ZGUzg4d2ZiNm8yd2dhdzRYZURhTitpU09sdUtObkhsNXRtaHNla3dTa081aE5wSWk3UDRSRGVTZz09PC9TaWduYXR1cmVWYWx1ZT48S2V5SW5mbz48WDUwOURhdGE+PFg1MDlDZXJ0aWZpY2F0ZT5NSUlFWlRDQ0EwMmdBd0lCQWdJRVlCcno3akFOQmdrcWhraUc5dzBCQVFzRkFEQTJNUXd3Q2dZRFZRUUtFd051YUhNeEN6QUpCZ05WQkFzVEFrTkJNUmt3RndZRFZRUURFeEJPU0ZNZ1NVNVVJRXhsZG1Wc0lESkVNQjRYRFRJeE1EZ3dOVEE1TWpNeE1Gb1hEVEl5TURnd05UQTVOVE14TUZvd1J6RU1NQW9HQTFVRUNoTURibWh6TVE4d0RRWURWUVFMRXdad1pXOXdiR1V4SmpBa0JnTlZCQU1NSFRVMU5UQXpOalkwTkRFd04xOVRiV2wwYUY5S2IyaHVJRk50YVhSb01JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbkYwblhjdnZsYlV4ejRKVFdVQWZWaXBXQ0VMN0RiclpBRDJvMktsWTVoNGRkc1F6N1Q5RWxrSE5ZbEQxZCtFZmhmU2xHZ21VS2Z2WlFBNGVFbWVCbDVPV085VTdzVnVlOGJuNW91ZjQrOGtublYyd05qNWhydWVWY0lKQlZyQ1ZoWkN0S3hyYm1jSFozOUlRSnJZaVozcXp4L1prREhuUTNhQ21UZFNHMG5hMHVZU2d5Q3JxVUVaNElnc0VrN2dNdGd4eGNWY28raStYc20wcHFIazIzaGtpMmRhclF4Tng2SXJ5UkFYZHVEWW9xSVl0T3lqVEVPVVZIN1JqUXI3TWlBVGYvSUZHWEx3bldqd0lGTWlpT2p0TkxKWHNETW5oVjVST3hCQmp0S1FMY0w1VUl4VXNOKzVWUVRLTUpsS0tNbjBmUThLdnF3SDkxQTZIbGRrTTJRSURBUUFCbzRJQmFEQ0NBV1F3RGdZRFZSMFBBUUgvQkFRREFnWkFNR1VHQTFVZElBRUIvd1JiTUZrd1Z3WUxLb1k2QUlsN1pnQURBZ0F3U0RCR0JnZ3JCZ0VGQlFjQ0FSWTZhSFIwY0hNNkx5OXdhMmt1Ym1oekxuVnJMMk5sY25ScFptbGpZWFJsWDNCdmJHbGphV1Z6TDJOdmJuUmxiblJmWTI5dGJXbDBiV1Z1ZERCWUJnTlZIUjhFVVRCUE1FMmdTNkJKcEVjd1JURU1NQW9HQTFVRUNoTURibWh6TVFzd0NRWURWUVFMRXdKRFFURVpNQmNHQTFVRUF4TVFUa2hUSUVsT1ZDQk1aWFpsYkNBeVJERU5NQXNHQTFVRUF4TUVRMUpNTVRBckJnTlZIUkFFSkRBaWdBOHlNREl4TURnd05UQTVNak14TUZxQkR6SXdNakl3TkRFM01qRTFNekV3V2pBZkJnTlZIU01FR0RBV2dCUjIwQk1LN2pNRGd2WFdQeFpWTE9RaHJDNnJ6akFkQmdOVkhRNEVGZ1FVdTZYc29LTEVrcVp6RWlPdlN6K1RDYytDeGxZd0NRWURWUjBUQkFJd0FEQVpCZ2txaGtpRzluMEhRUUFFRERBS0d3UldPQzR6QXdJRXNEQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUFzUENpQ29jRzZqVEVxK0VqQlZXb0NTR05NR1NUU3JXdUREdWdWUXJmTkRnQkRJeitTdE9TanVYN1RwZFhCamNWTEJsYzU4a1dtVitDN1pZWDhsSDRpV1dudG1lVE40T3h4VmRXNWlvV1ljbkYzRkRCYmNXU1BUNzExNXlvWmtpbGF6Z0c1akpWRDNhdU5mMUpqMVZ5Szl3TStoRm54K3hLMUgyVnB6TG5ScUpIMW9OeDJJS1FxY04wekZNSEJKa1VMT0RobDR6TjBKbmR3Z21vRkNTc3RjUUgxRFdwU0RTWFFhOTVtalR5aTNTaGFpV2plVndJaisrQkJmMjdRaUdaRk5pOVI0alhPWUxHc0FXZzRzTGZWMXZmZXhTcVMzeFF2ZnFSbmkyME5Mc1VaRTZPM2pQYkY3dG5hRlFTd0dxVWVNbHZJcDVWcXUzaUVMN1hPSFkyd1E9PTwvWDUwOUNlcnRpZmljYXRlPjwvWDUwOURhdGE+PC9LZXlJbmZvPjwvU2lnbmF0dXJlPg==" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Task-Request-Release-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Task-Request-Release-200_OK.json new file mode 100644 index 00000000..88c8f053 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/community/repeat-dispensing/nominated-pharmacy/clinical-practitioner/single-medication-request/1-Task-Request-Release-200_OK.json @@ -0,0 +1,100 @@ +{ + "resourceType": "Parameters", + "id": "d773b78f-0802-47d2-8364-19990a4f051e", + "parameter": [ + { + "name": "owner", + "resource": { + "resourceType": "Organization", + "id": "organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + }, + { + "name": "status", + "valueCode": "accepted" + }, + { + "name": "agent", + "resource": { + "resourceType": "PractitionerRole", + "id": "16708936-6397-4e03-b84f-4aaa790633e0", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "02380798431", + "use": "work" + } + ] + } + }, + { + "name": "group-identifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "B407F7-A99968-4DB2AU" + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Claim-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Claim-Request-200_OK.json new file mode 100644 index 00000000..5ee08915 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Claim-Request-200_OK.json @@ -0,0 +1,412 @@ +{ + "resourceType": "Claim", + "id": "e8e75676-9d30-45f8-8b09-696818e7f4ca", + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Mr Peter Potion" + }, + "organization": { + "reference": "#organization" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0532567890" + } + ] + }, + { + "resourceType": "Organization", + "id": "organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + ], + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-Provenance-agent", + "valueReference": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555253518103" + }, + "display": "Mr User Chris T" + } + } + ], + "identifier": [ + { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "a2c05ec6-4292-4568-8200-bfac8439da04" + } + ], + "status": "active", + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/claim-type", + "code": "pharmacy", + "display": "Pharmacy" + } + ] + }, + "use": "claim", + "patient": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304106" + } + }, + "created": "2021-09-23T13:09:56+00:00", + "provider": { + "reference": "#performer" + }, + "priority": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/processpriority", + "code": "normal" + } + ] + }, + "prescription": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-GroupIdentifier", + "extension": [ + { + "url": "shortForm", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "A0548B-A99968-451485" + } + }, + { + "url": "UUID", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a5b9dc81-ccf4-4dab-b887-3d88e557febb" + } + } + ] + } + ] + }, + "payee": { + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/payeetype", + "code": "provider", + "display": "Provider" + } + ] + }, + "party": { + "reference": "#organization" + } + }, + "insurance": [ + { + "sequence": 1, + "focal": true, + "coverage": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + }, + "display": "NHS BUSINESS SERVICES AUTHORITY" + } + } + ], + "item": [ + { + "sequence": 1, + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "code": "0006", + "display": "Dispensed" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-SuppliedItemIdentifier", + "valueIdentifier": { + "value": "This extension shouldn't be here - ask Kevin to remove from the profile" + } + } + ], + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "16076005", + "display": "Prescription" + } + ] + }, + "modifier": [ + { + "text": "This modifier shouldn't be here - ask Kevin to remove from the profile", + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "code": "0001", + "display": "Item fully dispensed" + } + ] + } + ], + "programCode": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-charge-exemption", + "code": "0001", + "display": "Patient has paid appropriate charges" + } + ] + } + ], + "detail": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimSequenceIdentifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/claim-sequence-identifier", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimMedicationRequestReference", + "valueReference": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + } + } + ], + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "13892511000001100", + "display": "Amlodipine 5mg/5ml oral solution" + } + ] + }, + "modifier": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "code": "0001", + "display": "Item fully dispensed" + } + ] + } + ], + "quantity": { + "value": 5, + "unit": "ml", + "system": "http://snomed.info/sct", + "code": "385024007" + }, + "programCode": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-endorsement", + "code": "NDEC", + "display": "No Dispenser Endorsement Code" + } + ] + }, + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/DM-prescription-charge", + "code": "not-paid", + "display": "Not Paid" + } + ] + } + ], + "subDetail": [ + { + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "13892511000001100", + "display": "Amlodipine 5mg/5ml oral solution" + } + ] + }, + "quantity": { + "value": 5, + "unit": "ml", + "system": "http://snomed.info/sct", + "code": "385024007" + } + } + ] + }, + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimSequenceIdentifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/claim-sequence-identifier", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab7" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimMedicationRequestReference", + "valueReference": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab7" + } + } + } + ], + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "317972000", + "display": "Furosemide 40mg tablets" + } + ] + }, + "modifier": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "code": "0001", + "display": "Item fully dispensed" + } + ] + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "programCode": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-endorsement", + "code": "NDEC", + "display": "No Dispenser Endorsement Code" + } + ] + }, + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/DM-prescription-charge", + "code": "not-paid", + "display": "Not Paid" + } + ] + } + ], + "subDetail": [ + { + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "317972000", + "display": "Furosemide 40mg tablets" + } + ] + }, + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + } + ] + } + ] + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..6f415b24 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Prepare-Request-200_OK.json @@ -0,0 +1,527 @@ +{ + "resourceType": "Bundle", + "id": "aef77afb-7e3c-427a-8657-2c427f71a272", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "ea66ee9d-a981-432f-8c27-6907cbd99219" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:aef77afb-7e3c-427a-8657-2c427f71a272", + "resource": { + "resourceType": "MessageHeader", + "id": "3599c0e9-9292-413e-9270-9a1ef1ead99c", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "X26" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1201", + "display": "Outpatient Homecare Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "13892511000001100", + "display": "Amlodipine 5mg/5ml oral solution" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a5b9dc81-ccf4-4dab-b887-3d88e557febb" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "A0548B-A99968-451485" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 milligram - 5 times a day - Oral - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNCEL" + } + }, + "quantity": { + "value": 5, + "unit": "ml", + "system": "http://snomed.info/sct", + "code": "385024007" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab7", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab7", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1201", + "display": "Outpatient Homecare Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab7" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "317972000", + "display": "Furosemide 40mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a5b9dc81-ccf4-4dab-b887-3d88e557febb" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "A0548B-A99968-451485" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 times a day - Oral - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNCEL" + } + }, + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304106" + } + ], + "name": [ + { + "use": "usual", + "family": "LEGASSICK", + "given": ["NICODEMUS", "ZACKERY"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1994-03-19", + "address": [ + { + "use": "home", + "line": ["11 LITTLEHEATH LANE", "COBHAM", "SURREY"], + "postalCode": "KT11 2QG" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "7020134158" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "G9999999" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "70201123456" + } + ], + "name": [ + { + "family": "Edwards", + "given": ["Thomas"], + "prefix": ["DR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e", + "resource": { + "resourceType": "CommunicationRequest", + "status": "unknown", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "payload": [ + { + "contentReference": { + "reference": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "display": "List of Repeat Medications for re-ordering" + } + } + ], + "requester": { + "type": "Organization", + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + }, + "recipient": [ + { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9453740519" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "resource": { + "resourceType": "List", + "status": "current", + "mode": "snapshot", + "code": { + "text": "Repeat Medications" + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "entry": [ + { + "item": { + "display": "Metformin 500mg tablets" + } + }, + { + "item": { + "display": "Aspirin 75mg dispersible tablets" + } + }, + { + "item": { + "display": "Simvastatin 40mg tablets" + } + }, + { + "item": { + "display": "Chloramphenicol 0.5% eye drops" + } + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..430e9bcb --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+SFkrMTNqZUt6Sm1nMlpHMjA2VDhteG1DMk1ZPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Process-Request-Dispense-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Process-Request-Dispense-200_OK.json new file mode 100644 index 00000000..a54cf0c9 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Process-Request-Dispense-200_OK.json @@ -0,0 +1,842 @@ +{ + "resourceType": "Bundle", + "id": "166f1103-3r67-73dw-7364-s395c4itv284", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "a22ad970-417c-4b0d-9c18-19a54761b478" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:be807dac-9dcf-45cf-91d6-70d9d58dcf34", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "dispense-notification", + "display": "Dispense Notification" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + }, + "display": "NHS BUSINESS SERVICES AUTHORITY" + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNCEL" + }, + "display": "YORKSHIRE HOMECARE LIMITED" + }, + "source": { + "name": "YORKSHIRE HOMECARE LIMITED", + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/VNCEL" + }, + "reason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/message-reason-prescription", + "code": "notification", + "display": "Notification" + } + ] + }, + "response": { + "identifier": "999f9999-9999-9999-9ff9-f9fff9999999", + "code": "ok" + }, + "focus": [ + { + "reference": "urn:uuid:4509b70d-d8b8-ea03-1105-64557cb54a29" + } + ] + } + }, + { + "fullUrl": "urn:uuid:4509b70d-d8b8-ea03-1105-64557cb54a29", + "resource": { + "resourceType": "MedicationDispense", + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "organization": { + "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "02380798431" + } + ] + }, + { + "resourceType": "MedicationRequest", + "id": "m1", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1201", + "display": "Outpatient Homecare Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "13892511000001100", + "display": "Amlodipine 5mg/5ml oral solution" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "authoredOn": "2021-05-07T14:47:29+00:00", + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a5b9dc81-ccf4-4dab-b887-3d88e557febb" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "A0548B-A99968-451485" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Once daily", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNCEL" + } + }, + "quantity": { + "value": 5, + "unit": "ml", + "system": "http://snomed.info/sct", + "code": "385024007" + } + }, + "substitution": { + "allowedBoolean": false + } + } + ], + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "code": "0006", + "display": "Dispensed" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "completed", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "13892511000001100", + "display": "Amlodipine 5mg/5ml oral solution" + } + ] + }, + "subject": { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304106" + }, + "display": "MR ZACKERY NICODEMUS LEGASSICK" + }, + "performer": [ + { + "actor": { + "reference": "#performer" + } + } + ], + "authorizingPrescription": [ + { + "reference": "#m1" + } + ], + "type": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "code": "0001", + "display": "Item fully dispensed" + } + ] + }, + "quantity": { + "value": 5, + "unit": "ml", + "system": "http://snomed.info/sct", + "code": "385024007" + }, + "whenHandedOver": "2021-05-07T14:47:29+00:00", + "dosageInstruction": [ + { + "text": "80mg at 8am and 40mg at 2pm for 5 days. Then 40mg tablet - oral- daily at 8am" + } + ] + } + }, + { + "fullUrl": "urn:uuid:4509b70d-d8b8-ea03-1105-64557cb54a28", + "resource": { + "resourceType": "MedicationDispense", + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "organization": { + "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "02380798431" + } + ] + }, + { + "resourceType": "MedicationRequest", + "id": "m1", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1201", + "display": "Outpatient Homecare Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab7" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "317972000", + "display": "Furosemide 40mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "authoredOn": "2021-05-07T14:47:29+00:00", + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a5b9dc81-ccf4-4dab-b887-3d88e557febb" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "A0548B-A99968-451485" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "80mg at 8am and 40mg at 2pm for 5 days. Then 40mg tablet - oral- daily at 8am", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNCEL" + } + }, + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + ], + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "code": "0006", + "display": "Dispensed" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab7" + } + ], + "status": "completed", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "317972000", + "display": "Furosemide 40mg tablets (Manufacturer A)" + } + ] + }, + "subject": { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304106" + }, + "display": "MR ZACKERY NICODEMUS LEGASSICK" + }, + "performer": [ + { + "actor": { + "reference": "#performer" + } + } + ], + "authorizingPrescription": [ + { + "reference": "#m1" + } + ], + "type": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "code": "0001", + "display": "Item fully dispensed" + } + ] + }, + "quantity": { + "value": 13, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "whenHandedOver": "2021-05-07T14:47:29+00:00", + "dosageInstruction": [ + { + "text": "80mg at 8am and 40mg at 2pm for 5 days. Then 40mg tablet - oral- daily at 8am" + } + ] + } + }, + { + "fullUrl": "urn:uuid:322b989d-3334-485b-9966-d59350cee160", + "resource": { + "resourceType": "MedicationDispense", + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "organization": { + "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "02380798431" + } + ] + }, + { + "resourceType": "MedicationRequest", + "id": "m1", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1201", + "display": "Outpatient Homecare Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab7" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "317972000", + "display": "Furosemide 40mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "authoredOn": "2021-05-07T14:47:29+00:00", + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a5b9dc81-ccf4-4dab-b887-3d88e557febb" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "A0548B-A99968-451485" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "80mg at 8am and 40mg at 2pm for 5 days. Then 40mg tablet - oral- daily at 8am", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNCEL" + } + }, + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + ], + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "code": "0006", + "display": "Dispensed" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab7" + } + ], + "status": "completed", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "317972000", + "display": "Furosemide 40mg tablets (Manufacturer B)" + } + ] + }, + "subject": { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304106" + }, + "display": "MR ZACKERY NICODEMUS LEGASSICK" + }, + "performer": [ + { + "actor": { + "reference": "#performer" + } + } + ], + "authorizingPrescription": [ + { + "reference": "#m1" + } + ], + "type": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "code": "0001", + "display": "Item fully dispensed" + } + ] + }, + "quantity": { + "value": 15, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "whenHandedOver": "2021-05-07T14:47:29+00:00", + "dosageInstruction": [ + { + "text": "80mg at 8am and 40mg at 2pm for 5 days. Then 40mg tablet - oral- daily at 8am" + } + ] + } + }, + { + "fullUrl": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b", + "resource": { + "resourceType": "Organization", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ODS-OrganisationRelationships", + "extension": [ + { + "url": "reimbursementAuthority", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..92218b43 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Process-Request-Send-200_OK.json @@ -0,0 +1,562 @@ +{ + "resourceType": "Bundle", + "id": "aef77afb-7e3c-427a-8657-2c427f71a272", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "4bbc97c0-f16d-4d82-85c8-c3cc62f8bd78" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:aef77afb-7e3c-427a-8657-2c427f71a272", + "resource": { + "resourceType": "MessageHeader", + "id": "3599c0e9-9292-413e-9270-9a1ef1ead99c", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "X26" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1201", + "display": "Outpatient Homecare Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "13892511000001100", + "display": "Amlodipine 5mg/5ml oral solution" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a5b9dc81-ccf4-4dab-b887-3d88e557febb" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "A0548B-A99968-451485" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 milligram - 5 times a day - Oral - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNCEL" + } + }, + "quantity": { + "value": 5, + "unit": "ml", + "system": "http://snomed.info/sct", + "code": "385024007" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab7", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab7", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1201", + "display": "Outpatient Homecare Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab7" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "317972000", + "display": "Furosemide 40mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a5b9dc81-ccf4-4dab-b887-3d88e557febb" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "A0548B-A99968-451485" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 times a day - Oral - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNCEL" + } + }, + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304106" + } + ], + "name": [ + { + "use": "usual", + "family": "LEGASSICK", + "given": ["NICODEMUS", "ZACKERY"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1994-03-19", + "address": [ + { + "use": "home", + "line": ["11 LITTLEHEATH LANE", "COBHAM", "SURREY"], + "postalCode": "KT11 2QG" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "7020134158" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "G9999999" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "70201123456" + } + ], + "name": [ + { + "family": "Edwards", + "given": ["Thomas"], + "prefix": ["DR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e", + "resource": { + "resourceType": "CommunicationRequest", + "status": "unknown", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "payload": [ + { + "contentReference": { + "reference": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "display": "List of Repeat Medications for re-ordering" + } + } + ], + "requester": { + "type": "Organization", + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + }, + "recipient": [ + { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9453740519" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "resource": { + "resourceType": "List", + "status": "current", + "mode": "snapshot", + "code": { + "text": "Repeat Medications" + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "entry": [ + { + "item": { + "display": "Metformin 500mg tablets" + } + }, + { + "item": { + "display": "Aspirin 75mg dispersible tablets" + } + }, + { + "item": { + "display": "Simvastatin 40mg tablets" + } + }, + { + "item": { + "display": "Chloramphenicol 0.5% eye drops" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:30+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjhIeUJwQnhPN1U3M2QrVlBUTHFSNnBrK2xRbz08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+cUhQcnVBbnpYUlRGNzB1NU9Xd2xOaVhmN3JaYUlUMjdCTTNZaEZJRkRZUFFydUtOTzhEakxrbWpUbENpRWxXTU1HWXFUT1U0S2REcE1rS2JrOU51TnFvTTNBWitCcVo4OGhOTUxlTlQ1ZktpK0dMK1RUWU9hclVVZEpGMEUxZmtERS9nbDJob1lXK29OM29VUEtJVU9mZkNSVXYycEVHaEg3Y0drT0Jvc3ZjPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Task-Request-Release-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Task-Request-Release-200_OK.json new file mode 100644 index 00000000..d4e18963 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/1-Task-Request-Release-200_OK.json @@ -0,0 +1,100 @@ +{ + "resourceType": "Parameters", + "id": "854b706a-c6e5-11ec-9d64-0242ac120002", + "parameter": [ + { + "name": "owner", + "resource": { + "resourceType": "Organization", + "id": "organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + }, + { + "name": "status", + "valueCode": "accepted" + }, + { + "name": "agent", + "resource": { + "resourceType": "PractitionerRole", + "id": "16708936-6397-4e03-b84f-4aaa790633e0", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "02380798431", + "use": "work" + } + ] + } + }, + { + "name": "group-identifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "A0548B-A99968-451485" + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/2-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/2-Prepare-Request-200_OK.json new file mode 100644 index 00000000..211ec179 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/2-Prepare-Request-200_OK.json @@ -0,0 +1,341 @@ +{ + "resourceType": "Bundle", + "id": "0A1FD9EF-A3D5-4E95-84CD-352070A03086", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "67c585f6-f4b5-4f53-861a-50c07ecff5d4" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "resource": { + "resourceType": "MessageHeader", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNFKT" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "80c5279c-0c78-4ef5-a0a1-a6aeb32c7298" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "18B064-A99968-4BCAA3" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNFKT" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304289" + } + ], + "name": [ + { + "use": "usual", + "family": "OHIKHUARE", + "given": ["COURTNEY"], + "prefix": ["MS"] + } + ], + "gender": "female", + "birthDate": "1987-05-01", + "address": [ + { + "use": "home", + "line": [ + "151 TILT ROAD", + "STOKE D'ABERNON", + "COBHAM", + "West Yorkshire" + ], + "postalCode": "KT11 3HT" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "683458" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role " + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/2-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/2-Prepare-Response-200_OK.json new file mode 100644 index 00000000..25f81e63 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/2-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+YkNOaUpMVlVpUzBDbUNpS2s2dXdTTDNOTE1RPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/2-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/2-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..3356020d --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/2-Process-Request-Send-200_OK.json @@ -0,0 +1,379 @@ +{ + "resourceType": "Bundle", + "id": "0A1FD9EF-A3D5-4E95-84CD-352070A03086", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "67c585f6-f4b5-4f53-861a-50c07ecff5d4" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "resource": { + "resourceType": "MessageHeader", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03086", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNFKT" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "80c5279c-0c78-4ef5-a0a1-a6aeb32c7298" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "18B064-A99968-4BCAA3" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNFKT" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304289" + } + ], + "name": [ + { + "use": "usual", + "family": "OHIKHUARE", + "given": ["COURTNEY"], + "prefix": ["MS"] + } + ], + "gender": "female", + "birthDate": "1987-05-01", + "address": [ + { + "use": "home", + "line": [ + "151 TILT ROAD", + "STOKE D'ABERNON", + "COBHAM", + "West Yorkshire" + ], + "postalCode": "KT11 3HT" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "683458" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role " + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:29+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPmlscE5XeW05Wk1Pbk5jV1VzWk9TditmbFJwQT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+S1Yzc0RsY1UzbUhZcmcwYjBhbnBtTjJ4djRpVXJGRmVzVTl1TVZQL2UycHp0aUduT0pKcGFoanBtbGRGTFRIVE1pdXFpbHlwZTVMZDAvdWNlWnR5Q2gzMHUvOW50aEVpLyszOFljcVNNRlNTeWpuN1FPUXl2VFNqTkVqT3Fhb2FTaEhnSmNaR3hUei9GcG5iYktCUUI0NCt0MXVZSjlZbFFJdWNKSkRZWjFZPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/2-Task-Request-Release-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/2-Task-Request-Release-200_OK.json new file mode 100644 index 00000000..2248bc6e --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/2-Task-Request-Release-200_OK.json @@ -0,0 +1,100 @@ +{ + "resourceType": "Parameters", + "id": "nominatedPharmacyReleaseRequest", + "parameter": [ + { + "name": "owner", + "resource": { + "resourceType": "Organization", + "id": "organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + }, + { + "name": "status", + "valueCode": "accepted" + }, + { + "name": "agent", + "resource": { + "resourceType": "PractitionerRole", + "id": "16708936-6397-4e03-b84f-4aaa790633e0", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "02380798431", + "use": "work" + } + ] + } + }, + { + "name": "group-identifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "18B064-A99968-4BCAA3" + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/2-Task-Request-Return-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/2-Task-Request-Return-200_OK.json new file mode 100644 index 00000000..3c15c394 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/2-Task-Request-Return-200_OK.json @@ -0,0 +1,139 @@ +{ + "resourceType": "Task", + "id": "ee1b55f8-113c-4725-99a3-25fbad366dd6", + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "16708936-6397-4e03-b84f-4aaa790633e0", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "organization": { + "reference": "#organisation" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "02380798431" + } + ] + }, + { + "resourceType": "Organization", + "id": "organisation", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + ], + "identifier": [ + { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "add2e9dd-da0a-c266-a4e3-447c68239525" + } + ], + "status": "rejected", + "intent": "order", + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "18B064-A99968-4BCAA3" + }, + "code": { + "coding": [ + { + "system": "http://hl7.org/fhir/CodeSystem/task-code", + "code": "change", + "display": "Change the focal resource" + } + ] + }, + "focus": { + "type": "Bundle", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "67c585f6-f4b5-4f53-861a-50c07ecff5d4" + } + }, + "for": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304289" + } + }, + "authoredOn": "2016-03-10T22:39:32-04:00", + "owner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNFKT" + } + }, + "statusReason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-dispense-return-status-reason", + "code": "0002", + "display": "Unable to dispense medication on prescriptions" + } + ] + }, + "requester": { + "reference": "#16708936-6397-4e03-b84f-4aaa790633e0" + } +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Prepare-Request-200_OK.json new file mode 100644 index 00000000..baff1874 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Prepare-Request-200_OK.json @@ -0,0 +1,341 @@ +{ + "resourceType": "Bundle", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "b1137e40-8d6c-4ba6-9823-36eec3ac7cbe" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "resource": { + "resourceType": "MessageHeader", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VN6XW" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "2cbe1f0b-a05f-4697-9948-031f9bf9dd97" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "C2782B-A99968-4E4E9Z" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VN6XW" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": ["DONOTUSE"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "683458" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role " + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Prepare-Response-200_OK.json new file mode 100644 index 00000000..2da5c7f3 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+ek1kTEFGZCswSmpPV29TWkt4UWZxTUhpNWlZPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Process-Request-Dispense-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Process-Request-Dispense-200_OK.json new file mode 100644 index 00000000..ee62c770 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Process-Request-Dispense-200_OK.json @@ -0,0 +1,383 @@ +{ + "resourceType": "Bundle", + "id": "prescription-dispense-notification", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "602159ee-1678-41ec-a100-7b3dd04c1d84" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:be807dac-9dcf-45cf-91d6-70d9d58dcf34", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "dispense-notification", + "display": "Dispense Notification" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VN6XW" + }, + "display": "GRACE HOMECARE LTD" + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VN6XW" + }, + "display": "GRACE HOMECARE LTD" + }, + "source": { + "name": "GRACE HOMECARE LTD", + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/VN6XW" + }, + "reason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/message-reason-prescription", + "code": "notification", + "display": "Notification" + } + ] + }, + "response": { + "identifier": "999f9999-9999-9999-9ff9-f9fff9999999", + "code": "ok" + }, + "focus": [ + { + "reference": "urn:uuid:4509b70d-d8b8-ea03-1105-64557cb54a29" + } + ] + } + }, + { + "fullUrl": "urn:uuid:4509b70d-d8b8-ea03-1105-64557cb54a29", + "resource": { + "resourceType": "MedicationDispense", + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "organization": { + "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "02380798431" + } + ] + }, + { + "resourceType": "MedicationRequest", + "id": "m1", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "authoredOn": "2021-05-07T14:47:29+00:00", + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "2cbe1f0b-a05f-4697-9948-031f9bf9dd97" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "C2782B-A99968-4E4E9Z" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "10 milligram, Inject, Subcutaneous route, once weekly", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VN6XW" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + ], + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "code": "0003", + "display": "With Dispenser - Active" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "completed", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + }, + "display": "MR DONOTUSE XXTESTPATIENT-TGNP" + }, + "performer": [ + { + "actor": { + "reference": "#performer" + } + } + ], + "authorizingPrescription": [ + { + "reference": "#m1" + } + ], + "type": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "code": "0001", + "display": "Item fully dispensed" + } + ] + }, + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "daysSupply": { + "value": 10, + "unit": "Day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "whenHandedOver": "2021-05-07T14:47:29+00:00", + "dosageInstruction": [ + { + "text": "10 milligram, Inject, Subcutaneous route, once weekly" + } + ] + } + }, + { + "fullUrl": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b", + "resource": { + "resourceType": "Organization", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ODS-OrganisationRelationships", + "extension": [ + { + "url": "reimbursementAuthority", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..07962f0b --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Process-Request-Send-200_OK.json @@ -0,0 +1,376 @@ +{ + "resourceType": "Bundle", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "b1137e40-8d6c-4ba6-9823-36eec3ac7cbe" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "resource": { + "resourceType": "MessageHeader", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VN6XW" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "2cbe1f0b-a05f-4697-9948-031f9bf9dd97" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "C2782B-A99968-4E4E9Z" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VN6XW" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": ["DONOTUSE"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "683458" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role " + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:32+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPmlscE5XeW05Wk1Pbk5jV1VzWk9TditmbFJwQT08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+S1Yzc0RsY1UzbUhZcmcwYjBhbnBtTjJ4djRpVXJGRmVzVTl1TVZQL2UycHp0aUduT0pKcGFoanBtbGRGTFRIVE1pdXFpbHlwZTVMZDAvdWNlWnR5Q2gzMHUvOW50aEVpLyszOFljcVNNRlNTeWpuN1FPUXl2VFNqTkVqT3Fhb2FTaEhnSmNaR3hUei9GcG5iYktCUUI0NCt0MXVZSjlZbFFJdWNKSkRZWjFZPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Task-Request-Release-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Task-Request-Release-200_OK.json new file mode 100644 index 00000000..e6d7b71b --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Task-Request-Release-200_OK.json @@ -0,0 +1,100 @@ +{ + "resourceType": "Parameters", + "id": "nominatedPharmacyReleaseRequest", + "parameter": [ + { + "name": "owner", + "resource": { + "resourceType": "Organization", + "id": "organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + }, + { + "name": "status", + "valueCode": "accepted" + }, + { + "name": "agent", + "resource": { + "resourceType": "PractitionerRole", + "id": "16708936-6397-4e03-b84f-4aaa790633e0", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "02380798431", + "use": "work" + } + ] + } + }, + { + "name": "group-identifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "C2782B-A99968-4E4E9Z" + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Task-Request-Withdraw-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Task-Request-Withdraw-200_OK.json new file mode 100644 index 00000000..fa9c84a1 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/3-Task-Request-Withdraw-200_OK.json @@ -0,0 +1,139 @@ +{ + "resourceType": "Task", + "id": "6a2624a2-321b-470e-91a6-8ae7a065e2f0", + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "16708936-6397-4e03-b84f-4aaa790633e0", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "organization": { + "reference": "#2bf9f37c-d88b-4f86-ad5f-373c1416e04b" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "02380798431" + } + ] + }, + { + "resourceType": "Organization", + "id": "2bf9f37c-d88b-4f86-ad5f-373c1416e04b", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + ], + "identifier": [ + { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "5ac84c11-db8b-44da-8fcf-8980b3d13596" + } + ], + "status": "in-progress", + "intent": "order", + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "C2782B-A99968-4E4E9Z" + }, + "code": { + "coding": [ + { + "system": "http://hl7.org/fhir/CodeSystem/task-code", + "code": "abort", + "display": "Mark the focal resource as no longer active" + } + ] + }, + "focus": { + "type": "Bundle", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "602159ee-1678-41ec-a100-7b3dd04c1d84" + } + }, + "for": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + }, + "authoredOn": "2020-12-21T17:03:20-00:00", + "owner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VN6XW" + } + }, + "statusReason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-dispense-withdraw-reason", + "code": "DA", + "display": "Dosage Amendments" + } + ] + }, + "requester": { + "reference": "#16708936-6397-4e03-b84f-4aaa790633e0" + } +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Claim-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Claim-Request-200_OK.json new file mode 100644 index 00000000..274bd27c --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Claim-Request-200_OK.json @@ -0,0 +1,307 @@ +{ + "resourceType": "Claim", + "id": "e8e75676-9d30-45f8-8b09-696818e7f4ca", + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Mr Peter Potion" + }, + "organization": { + "reference": "#organization" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0532567890" + } + ] + }, + { + "resourceType": "Organization", + "id": "organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + ], + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-Provenance-agent", + "valueReference": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555253518103" + }, + "display": "Mr User Chris T" + } + } + ], + "identifier": [ + { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "a2c05ec6-4292-4568-8200-bfac8439da04" + } + ], + "status": "active", + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/claim-type", + "code": "pharmacy", + "display": "Pharmacy" + } + ] + }, + "use": "claim", + "patient": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + }, + "created": "2021-09-23T13:09:56+00:00", + "provider": { + "reference": "#performer" + }, + "priority": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/processpriority", + "code": "normal" + } + ] + }, + "prescription": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-GroupIdentifier", + "extension": [ + { + "url": "shortForm", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "0EB38D-A99968-424EAR" + } + }, + { + "url": "UUID", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "57a5aa32-7148-47c1-8efc-65ac5f625e61" + } + } + ] + } + ] + }, + "payee": { + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/payeetype", + "code": "provider", + "display": "Provider" + } + ] + }, + "party": { + "reference": "#organization" + } + }, + "insurance": [ + { + "sequence": 1, + "focal": true, + "coverage": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + }, + "display": "NHS BUSINESS SERVICES AUTHORITY" + } + } + ], + "item": [ + { + "sequence": 1, + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "code": "0006", + "display": "Dispensed" + } + } + ], + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "16076005", + "display": "Prescription" + } + ] + }, + "programCode": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-charge-exemption", + "code": "0001", + "display": "Patient has paid appropriate charges" + } + ] + } + ], + "detail": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimSequenceIdentifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/claim-sequence-identifier", + "value": "598bf5df-3086-4cd5-99ed-7cb0df0bacf3" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimMedicationRequestReference", + "valueReference": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + } + } + ], + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "modifier": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "code": "0001", + "display": "Item fully dispensed" + } + ] + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "programCode": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-endorsement", + "code": "NDEC", + "display": "No Dispenser Endorsement Code" + } + ] + }, + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/DM-prescription-charge", + "code": "not-paid", + "display": "Not Paid" + } + ] + } + ], + "subDetail": [ + { + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + } + } + ] + } + ] + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Prepare-Request-200_OK.json new file mode 100644 index 00000000..ac088a4c --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Prepare-Request-200_OK.json @@ -0,0 +1,341 @@ +{ + "resourceType": "Bundle", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "96f32611-e838-474e-ad08-4345f61b8ff7" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "resource": { + "resourceType": "MessageHeader", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FL584" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "57a5aa32-7148-47c1-8efc-65ac5f625e61" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "0EB38D-A99968-424EAR" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FL584" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": ["DONOTUSE"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "683458" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role " + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Prepare-Response-200_OK.json new file mode 100644 index 00000000..3a9a3c5e --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+aUlPYWhsVFFrOWFRSlViVU8wa2J6VDJweFlBPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Process-Request-Dispense-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Process-Request-Dispense-200_OK.json new file mode 100644 index 00000000..c8f1e9a6 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Process-Request-Dispense-200_OK.json @@ -0,0 +1,383 @@ +{ + "resourceType": "Bundle", + "id": "prescription-dispense-notification", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "a6af5492-d71e-4773-9bb5-2f13ab85f6b3" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:be807dac-9dcf-45cf-91d6-70d9d58dcf34", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "dispense-notification", + "display": "Dispense Notification" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FL584" + }, + "display": "YOUR LOCAL BOOTS PHARMACY" + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FL584" + }, + "display": "YOUR LOCAL BOOTS PHARMACY" + }, + "source": { + "name": "YOUR LOCAL BOOTS PHARMACY", + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FL584" + }, + "reason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/message-reason-prescription", + "code": "notification", + "display": "Notification" + } + ] + }, + "response": { + "identifier": "999f9999-9999-9999-9ff9-f9fff9999999", + "code": "ok" + }, + "focus": [ + { + "reference": "urn:uuid:4509b70d-d8b8-ea03-1105-64557cb54a29" + } + ] + } + }, + { + "fullUrl": "urn:uuid:4509b70d-d8b8-ea03-1105-64557cb54a29", + "resource": { + "resourceType": "MedicationDispense", + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "organization": { + "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "02380798431" + } + ] + }, + { + "resourceType": "MedicationRequest", + "id": "m1", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "authoredOn": "2021-06-14T18:26:00+00:00", + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "57a5aa32-7148-47c1-8efc-65ac5f625e61" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "0EB38D-A99968-424EAR" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "10 milligram, Inject, Subcutaneous route, once weekly", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FL584" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + ], + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "code": "0006", + "display": "Dispensed" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "completed", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + }, + "display": "MR DONOTUSE XXTESTPATIENT-TGNP" + }, + "performer": [ + { + "actor": { + "reference": "#performer" + } + } + ], + "authorizingPrescription": [ + { + "reference": "#m1" + } + ], + "type": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "code": "0001", + "display": "Item fully dispensed" + } + ] + }, + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "daysSupply": { + "value": 10, + "unit": "Day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "whenHandedOver": "2021-06-14T18:26:00+00:00", + "dosageInstruction": [ + { + "text": "10 milligram, Inject, Subcutaneous route, once weekly" + } + ] + } + }, + { + "fullUrl": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b", + "resource": { + "resourceType": "Organization", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ODS-OrganisationRelationships", + "extension": [ + { + "url": "reimbursementAuthority", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..2bc0693c --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Process-Request-Send-200_OK.json @@ -0,0 +1,376 @@ +{ + "resourceType": "Bundle", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "085099cd-9c1b-43c3-b61c-efc0ec7332aa" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "resource": { + "resourceType": "MessageHeader", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FL584" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "57a5aa32-7148-47c1-8efc-65ac5f625e61" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "0EB38D-A99968-424EAR" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FL584" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": ["DONOTUSE"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "683458" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role " + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-06-14T18:26:36+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPi9tSXk1TmlmT1A5dkFSTkU3NkZIWlZFZ2xCdz08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+UTVkU2h5c2hPcVg0bmNJaHFGa0FGaGRmZlFRbmNsWUIxOVJvNnFvd2U2WlNRSW9YVXFEb0ZiZmZyT1pYbE9jQWZrTVgranBiZmU1NnJQUTlKbXlmWGRKV2dCalNRM1k4Y2hCcWZTdDE1RmFUcGozbmllU3dwTXY3YWxnN2taR3lsRXd3WVZCci9lZ0htNjlKZ2ZnRDU3ZVhJQWVtZDRTMzlsSE5Wb1NGSWpRPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Task-Request-Release-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Task-Request-Release-200_OK.json new file mode 100644 index 00000000..3eaf8ba7 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/4-Task-Request-Release-200_OK.json @@ -0,0 +1,100 @@ +{ + "resourceType": "Parameters", + "id": "nominatedPharmacyReleaseRequest", + "parameter": [ + { + "name": "owner", + "resource": { + "resourceType": "Organization", + "id": "organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + }, + { + "name": "status", + "valueCode": "accepted" + }, + { + "name": "agent", + "resource": { + "resourceType": "PractitionerRole", + "id": "16708936-6397-4e03-b84f-4aaa790633e0", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "02380798431", + "use": "work" + } + ] + } + }, + { + "name": "group-identifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "0EB38D-A99968-424EAR" + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Prepare-Request-200_OK.json new file mode 100644 index 00000000..f6023839 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Prepare-Request-200_OK.json @@ -0,0 +1,341 @@ +{ + "resourceType": "Bundle", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "597fc63c-d86d-4c10-bfd2-88b16570dd07" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "resource": { + "resourceType": "MessageHeader", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VN6XW" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5ad41934-d5c8-4f74-b4da-4f3609acaa1f" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "ae143c69-35ec-4be1-b38a-685459f3bfb2" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "5EA56C-Z6EA5E-710A1O" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VN6XW" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": ["DONOTUSE"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "683458" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role " + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Prepare-Response-200_OK.json new file mode 100644 index 00000000..b824ca98 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+ZXZQUk9MUmRvZEFpdHg4Z3gzMktsS1hEOFNjPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Process-Request-Dispense-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Process-Request-Dispense-200_OK.json new file mode 100644 index 00000000..8016e642 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Process-Request-Dispense-200_OK.json @@ -0,0 +1,382 @@ +{ + "resourceType": "Bundle", + "id": "b757abaa-4d06-4467-bc20-3205812e3ede", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "50101420-789b-4a3d-a4fb-4d3d0af76a64" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:b5680e02-a014-4164-8489-7c7925fdfbc0", + "resource": { + "resourceType": "MessageHeader", + "id": "b5680e02-a014-4164-8489-7c7925fdfbc0", + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/VN6XW", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VN6XW" + } + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "X2601" + }, + "display": "NHS Digital Spine" + }, + "source": { + "name": "NHS Spine", + "endpoint": "https://internal-dev.api.service.nhs.uk/electronic-prescriptions/$process-message" + }, + "response": { + "code": "ok", + "identifier": "ffffffff-ffff-4fff-bfff-ffffffffffff" + }, + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "dispense-notification", + "display": "Dispense Notification" + }, + "focus": [ + { + "reference": "urn:uuid:2f44e6d0-5530-4582-b971-0cbcf21165d9" + }, + { + "reference": "urn:uuid:0256a42a-5f31-4938-9d09-e79e904e1968" + } + ] + } + }, + { + "fullUrl": "urn:uuid:0256a42a-5f31-4938-9d09-e79e904e1968", + "resource": { + "resourceType": "MedicationDispense", + "id": "0256a42a-5f31-4938-9d09-e79e904e1968", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "code": "0006", + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "display": "Dispensed" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", + "value": "37ea97af-5539-42e0-9135-7832480f99db" + } + ], + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "organization": { + "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "02380798431" + } + ] + }, + { + "resourceType": "MedicationRequest", + "id": "m1", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:aa4015b3-acb6-4f19-ad67-8537dacfb0e3" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5ad41934-d5c8-4f74-b4da-4f3609acaa1f" + } + ], + "status": "active", + "intent": "order", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:27c4494d-b8bf-417f-9877-4c54e87aaa24" + }, + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "requester": { + "reference": "urn:uuid:aa4015b3-acb6-4f19-ad67-8537dacfb0e3" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "5EA56C-Z6EA5E-710A1O", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "ae143c69-35ec-4be1-b38a-685459f3bfb2" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "10 milligram, Inject, Subcutaneous route, once weekly" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 0, + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VN6XW" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + ], + "status": "unknown", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:2f44e6d0-5530-4582-b971-0cbcf21165d9", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + }, + "performer": [ + { + "actor": { + "reference": "#performer" + } + } + ], + "authorizingPrescription": [ + { + "reference": "#m1" + } + ], + "type": { + "coding": [ + { + "code": "0001", + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "display": "Item fully dispensed" + } + ] + }, + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "whenHandedOver": "2022-03-17T12:01:18.354Z", + "dosageInstruction": [ + { + "text": "10 milligram, Inject, Subcutaneous route, once weekly" + } + ] + } + }, + { + "fullUrl": "urn:uuid:2f44e6d0-5530-4582-b971-0cbcf21165d9", + "resource": { + "resourceType": "Patient", + "id": "2f44e6d0-5530-4582-b971-0cbcf21165d9", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b", + "resource": { + "resourceType": "Organization", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ODS-OrganisationRelationships", + "extension": [ + { + "url": "reimbursementAuthority", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Process-Request-DispenseAmend-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Process-Request-DispenseAmend-200_OK.json new file mode 100644 index 00000000..83bb74b4 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Process-Request-DispenseAmend-200_OK.json @@ -0,0 +1,391 @@ +{ + "resourceType": "Bundle", + "id": "b757abaa-4d06-4467-bc20-3205812e3ede", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "08a95f44-5869-4dbb-93ec-22d12ece1748" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:b5680e02-a014-4164-8489-7c7925fdfbc0", + "resource": { + "resourceType": "MessageHeader", + "id": "b5680e02-a014-4164-8489-7c7925fdfbc0", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-replacementOf", + "valueIdentifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "50101420-789b-4a3d-a4fb-4d3d0af76a64" + } + } + ], + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/VN6XW", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VN6XW" + } + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "X2601" + }, + "display": "NHS Digital Spine" + }, + "source": { + "name": "NHS Spine", + "endpoint": "https://internal-dev.api.service.nhs.uk/electronic-prescriptions/$process-message" + }, + "response": { + "code": "ok", + "identifier": "ffffffff-ffff-4fff-bfff-ffffffffffff" + }, + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "dispense-notification", + "display": "Dispense Notification" + }, + "focus": [ + { + "reference": "urn:uuid:2f44e6d0-5530-4582-b971-0cbcf21165d9" + }, + { + "reference": "urn:uuid:0256a42a-5f31-4938-9d09-e79e904e1968" + } + ] + } + }, + { + "fullUrl": "urn:uuid:0256a42a-5f31-4938-9d09-e79e904e1968", + "resource": { + "resourceType": "MedicationDispense", + "id": "0256a42a-5f31-4938-9d09-e79e904e1968", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "code": "0006", + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "display": "Dispensed" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", + "value": "37ea97af-5539-42e0-9135-7832480f99db" + } + ], + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "organization": { + "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "02380798431" + } + ] + }, + { + "resourceType": "MedicationRequest", + "id": "m1", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:aa4015b3-acb6-4f19-ad67-8537dacfb0e3" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5ad41934-d5c8-4f74-b4da-4f3609acaa1f" + } + ], + "status": "active", + "intent": "order", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:27c4494d-b8bf-417f-9877-4c54e87aaa24" + }, + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "requester": { + "reference": "urn:uuid:aa4015b3-acb6-4f19-ad67-8537dacfb0e3" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "5EA56C-Z6EA5E-710A1O", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "ae143c69-35ec-4be1-b38a-685459f3bfb2" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "10 milligram, Inject, Subcutaneous route, once weekly" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 0, + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VN6XW" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + ], + "status": "unknown", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "37571311000001104", + "display": "Methofill 10mg/0.2ml solution for injection pre-filled syringes (Accord Healthcare Ltd) (product)" + } + ] + }, + "subject": { + "reference": "urn:uuid:2f44e6d0-5530-4582-b971-0cbcf21165d9", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + }, + "performer": [ + { + "actor": { + "reference": "#performer" + } + } + ], + "authorizingPrescription": [ + { + "reference": "#m1" + } + ], + "type": { + "coding": [ + { + "code": "0001", + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "display": "Item fully dispensed" + } + ] + }, + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "whenHandedOver": "2022-03-17T12:01:18.354Z", + "dosageInstruction": [ + { + "text": "10 milligram, Inject, Subcutaneous route, once weekly" + } + ] + } + }, + { + "fullUrl": "urn:uuid:2f44e6d0-5530-4582-b971-0cbcf21165d9", + "resource": { + "resourceType": "Patient", + "id": "2f44e6d0-5530-4582-b971-0cbcf21165d9", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b", + "resource": { + "resourceType": "Organization", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ODS-OrganisationRelationships", + "extension": [ + { + "url": "reimbursementAuthority", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..7677e759 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Process-Request-Send-200_OK.json @@ -0,0 +1,376 @@ +{ + "resourceType": "Bundle", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "597fc63c-d86d-4c10-bfd2-88b16570dd07" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "resource": { + "resourceType": "MessageHeader", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VN6XW" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5ad41934-d5c8-4f74-b4da-4f3609acaa1f" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "ae143c69-35ec-4be1-b38a-685459f3bfb2" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "5EA56C-Z6EA5E-710A1O" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VN6XW" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": ["DONOTUSE"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "683458" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role " + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2022-03-17T11:59:49+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+CiAgICAgICAgICAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjlLMmRyV3FESjhvMjZRZWZxdXM1UDl5S1QrYz08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4KICAgICAgICAgICAgIDxTaWduYXR1cmVWYWx1ZT48L1NpZ25hdHVyZVZhbHVlPgogICAgICAgICAgICAgPEtleUluZm8+PFg1MDlEYXRhPjxYNTA5Q2VydGlmaWNhdGU+PC9YNTA5Q2VydGlmaWNhdGU+PC9YNTA5RGF0YT48L0tleUluZm8+CiAgICAgICAgICAgPC9TaWduYXR1cmU+" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Task-Request-Release-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Task-Request-Release-200_OK.json new file mode 100644 index 00000000..c2e73d89 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/5-Task-Request-Release-200_OK.json @@ -0,0 +1,99 @@ +{ + "resourceType": "Parameters", + "id": "816111e9-1f4b-4590-b3ea-84c375d89aa5", + "parameter": [ + { + "name": "owner", + "resource": { + "resourceType": "Organization", + "id": "organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + }, + { + "name": "status", + "valueCode": "accepted" + }, + { + "name": "agent", + "resource": { + "resourceType": "PractitionerRole", + "telecom": [ + { + "system": "phone", + "value": "02380798431", + "use": "work" + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ] + } + }, + { + "name": "group-identifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "5EA56C-Z6EA5E-710A1O" + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Claim-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Claim-Request-200_OK.json new file mode 100644 index 00000000..dbff1ead --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Claim-Request-200_OK.json @@ -0,0 +1,315 @@ +{ + "resourceType": "Claim", + "created": "2022-03-15T13:51:14.477Z", + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Mr Peter Potion" + }, + "organization": { + "reference": "#organization" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0532567890" + } + ] + }, + { + "resourceType": "Organization", + "id": "organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + ], + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-Provenance-agent", + "valueReference": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "884562163557" + }, + "display": "dummy full name" + } + } + ], + "identifier": [ + { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "2eefcd5d-a734-4366-add1-56a82fa2bd5a" + } + ], + "status": "active", + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/claim-type", + "code": "pharmacy", + "display": "Pharmacy" + } + ] + }, + "use": "claim", + "patient": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + }, + "provider": { + "reference": "#performer" + }, + "priority": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/processpriority", + "code": "normal" + } + ] + }, + "insurance": [ + { + "sequence": 1, + "focal": true, + "coverage": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + }, + "display": "NHS BUSINESS SERVICES AUTHORITY" + } + } + ], + "payee": { + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/payeetype", + "code": "provider", + "display": "Provider" + } + ] + }, + "party": { + "reference": "#organization" + } + }, + "prescription": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-GroupIdentifier", + "extension": [ + { + "url": "shortForm", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "40E709-A99968-280C0X" + } + }, + { + "url": "UUID", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "410489a5-5316-426c-98f5-af1502d71b39" + } + } + ] + } + ] + }, + "item": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "code": "0006", + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "display": "Dispensed" + } + } + ], + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "16076005", + "display": "Prescription" + } + ] + }, + "programCode": [ + { + "coding": [ + { + "code": "0001", + "system": "https://fhir.nhs.uk/CodeSystem/prescription-charge-exemption", + "display": "Patient has paid appropriate charges" + } + ] + }, + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/DM-exemption-evidence", + "code": "evidence-seen", + "display": "Evidence Seen" + } + ] + } + ], + "detail": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimSequenceIdentifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/claim-sequence-identifier", + "value": "f1026607-b98a-4ab4-a684-c7b3988aab4e" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimMedicationRequestReference", + "valueReference": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5a82c11e-ea26-4405-aceb-741d8ca68b95" + } + } + } + ], + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "modifier": [ + { + "coding": [ + { + "code": "0001", + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "display": "Item fully dispensed" + } + ] + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "programCode": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-endorsement", + "code": "NDEC", + "display": "No Dispenser Endorsement Code" + } + ] + }, + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/DM-prescription-charge", + "code": "paid-once", + "display": "Paid Once" + } + ] + } + ], + "subDetail": [ + { + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + } + } + ] + } + ] + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Claim-Request-Amend-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Claim-Request-Amend-200_OK.json new file mode 100644 index 00000000..91389a10 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Claim-Request-Amend-200_OK.json @@ -0,0 +1,323 @@ +{ + "resourceType": "Claim", + "created": "2022-03-15T13:51:43.621Z", + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Mr Peter Potion" + }, + "organization": { + "reference": "#organization" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0532567890" + } + ] + }, + { + "resourceType": "Organization", + "id": "organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + ], + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-Provenance-agent", + "valueReference": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "884562163557" + }, + "display": "dummy full name" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-replacementOf", + "valueIdentifier": { + "value": "2eefcd5d-a734-4366-add1-56a82fa2bd5a", + "system": "https://tools.ietf.org/html/rfc4122" + } + } + ], + "identifier": [ + { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "6f660dae-860b-45ee-bc36-9b3d75e7c237" + } + ], + "status": "active", + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/claim-type", + "code": "pharmacy", + "display": "Pharmacy" + } + ] + }, + "use": "claim", + "patient": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + }, + "provider": { + "reference": "#performer" + }, + "priority": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/processpriority", + "code": "normal" + } + ] + }, + "insurance": [ + { + "sequence": 1, + "focal": true, + "coverage": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + }, + "display": "NHS BUSINESS SERVICES AUTHORITY" + } + } + ], + "payee": { + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/payeetype", + "code": "provider", + "display": "Provider" + } + ] + }, + "party": { + "reference": "#organization" + } + }, + "prescription": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-GroupIdentifier", + "extension": [ + { + "url": "shortForm", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "40E709-A99968-280C0X" + } + }, + { + "url": "UUID", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "410489a5-5316-426c-98f5-af1502d71b39" + } + } + ] + } + ] + }, + "item": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "code": "0006", + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "display": "Dispensed" + } + } + ], + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "16076005", + "display": "Prescription" + } + ] + }, + "programCode": [ + { + "coding": [ + { + "code": "0001", + "system": "https://fhir.nhs.uk/CodeSystem/prescription-charge-exemption", + "display": "Patient has paid appropriate charges" + } + ] + }, + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/DM-exemption-evidence", + "code": "evidence-seen", + "display": "Evidence Seen" + } + ] + } + ], + "detail": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimSequenceIdentifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/claim-sequence-identifier", + "value": "dd3e5443-ce58-4e83-b201-a81777487e0a" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimMedicationRequestReference", + "valueReference": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5a82c11e-ea26-4405-aceb-741d8ca68b95" + } + } + } + ], + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "modifier": [ + { + "coding": [ + { + "code": "0001", + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "display": "Item fully dispensed" + } + ] + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "programCode": [ + { + "coding": [ + { + "code": "BB", + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-endorsement", + "display": "Broken Bulk" + } + ], + "text": "Supporting Info for Broken Bulk" + }, + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/DM-prescription-charge", + "code": "paid-once", + "display": "Paid Once" + } + ] + } + ], + "subDetail": [ + { + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + } + } + ] + } + ] + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Prepare-Request-200_OK.json new file mode 100644 index 00000000..45965ca7 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Prepare-Request-200_OK.json @@ -0,0 +1,341 @@ +{ + "resourceType": "Bundle", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "256cb948-c274-436a-8fff-c0f3082ca0e8" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "resource": { + "resourceType": "MessageHeader", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FL584" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5a82c11e-ea26-4405-aceb-741d8ca68b95" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "410489a5-5316-426c-98f5-af1502d71b39" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "40E709-A99968-280C0X" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FL584" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": ["DONOTUSE"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "683458" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role " + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Prepare-Response-200_OK.json new file mode 100644 index 00000000..b9849434 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+M2FnTUdWT2grZnlubmlrSmV1bi9PWk45Ujk0PTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Process-Request-Dispense-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Process-Request-Dispense-200_OK.json new file mode 100644 index 00000000..fce3d21f --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Process-Request-Dispense-200_OK.json @@ -0,0 +1,383 @@ +{ + "resourceType": "Bundle", + "id": "8de88952-f649-4c4f-a556-e54e7f05cc75", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "fe64ecaa-61a2-4879-bf45-657075844dde" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:c529f573-64a4-434c-b8f3-22f925c7f9ab", + "resource": { + "resourceType": "MessageHeader", + "id": "c529f573-64a4-434c-b8f3-22f925c7f9ab", + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FL584", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FL584" + } + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "X2601" + }, + "display": "NHS Digital Spine" + }, + "source": { + "name": "NHS Spine", + "endpoint": "https://internal-dev.api.service.nhs.uk/electronic-prescriptions/$process-message" + }, + "response": { + "code": "ok", + "identifier": "ffffffff-ffff-4fff-bfff-ffffffffffff" + }, + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "dispense-notification", + "display": "Dispense Notification" + }, + "focus": [ + { + "reference": "urn:uuid:0e489d6d-5660-4144-9496-45def8956e16" + }, + { + "reference": "urn:uuid:98ef72de-805f-4cf7-a393-d9be923960bd" + } + ] + } + }, + { + "fullUrl": "urn:uuid:98ef72de-805f-4cf7-a393-d9be923960bd", + "resource": { + "resourceType": "MedicationDispense", + "id": "98ef72de-805f-4cf7-a393-d9be923960bd", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "code": "0006", + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "display": "Dispensed" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", + "value": "93c2c1b9-747b-493d-a198-1fa5798d4c6b" + } + ], + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "organization": { + "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "02380798431" + } + ] + }, + { + "resourceType": "MedicationRequest", + "id": "m1", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner", + "valueReference": { + "reference": "urn:uuid:81fd634d-e9f7-460e-991f-8dc97d18cb8c" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5a82c11e-ea26-4405-aceb-741d8ca68b95" + } + ], + "status": "active", + "intent": "order", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:fd9384b8-5086-4f2e-a41f-fda2f3259447" + }, + "authoredOn": "2022-03-15T13:45:09+00:00", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "requester": { + "reference": "urn:uuid:81fd634d-e9f7-460e-991f-8dc97d18cb8c" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "40E709-A99968-280C0X", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "410489a5-5316-426c-98f5-af1502d71b39" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "10 milligram, Inject, Subcutaneous route, once weekly" + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "numberOfRepeatsAllowed": 0, + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FL584" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + ], + "status": "unknown", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:0e489d6d-5660-4144-9496-45def8956e16", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + }, + "performer": [ + { + "actor": { + "reference": "#performer" + } + } + ], + "authorizingPrescription": [ + { + "reference": "#m1" + } + ], + "type": { + "coding": [ + { + "code": "0001", + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "display": "Item fully dispensed" + } + ] + }, + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "whenHandedOver": "2022-03-15T13:45:47.719Z", + "dosageInstruction": [ + { + "text": "10 milligram, Inject, Subcutaneous route, once weekly" + } + ] + } + }, + { + "fullUrl": "urn:uuid:0e489d6d-5660-4144-9496-45def8956e16", + "resource": { + "resourceType": "Patient", + "id": "0e489d6d-5660-4144-9496-45def8956e16", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": [ + "DONOTUSE" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b", + "resource": { + "resourceType": "Organization", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ODS-OrganisationRelationships", + "extension": [ + { + "url": "reimbursementAuthority", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..2b64f9cb --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Process-Request-Send-200_OK.json @@ -0,0 +1,376 @@ +{ + "resourceType": "Bundle", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "256cb948-c274-436a-8fff-c0f3082ca0e8" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "resource": { + "resourceType": "MessageHeader", + "id": "0a1fd9ef-a3d5-4e95-84cd-552070a03096", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "BOOTH|PHIL" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/FH542", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FL584" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1001", + "display": "Outpatient Community Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "5a82c11e-ea26-4405-aceb-741d8ca68b95" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "15517911000001104", + "display": "Methotrexate 10mg/0.2ml solution for injection pre-filled syringes" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "410489a5-5316-426c-98f5-af1502d71b39" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "40E709-A99968-280C0X" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Inject 10 milligram - 5 times a day - Subcutaneous route - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "method": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "422145002", + "display": "Inject" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "Subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 10, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 1, + "unit": "pre-filled disposable injection", + "system": "http://snomed.info/sct", + "code": "3318611000001103" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FL584" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9990548609" + } + ], + "name": [ + { + "use": "usual", + "family": "XXTESTPATIENT-TGNP", + "given": ["DONOTUSE"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1932-01-06", + "address": [ + { + "use": "home", + "line": [ + "1 Trevelyan Square", + "Boar Lane", + "Leeds", + "West Yorkshire" + ], + "postalCode": "LS1 6AE" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "555086689106" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "6150129" + } + ], + "name": [ + { + "family": "FIFTYSEVEN", + "given": ["RANDOM"], + "prefix": ["MR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "601986680555" + }, + { + "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code", + "value": "683458" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role " + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2021-02-11T16:35:38+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2022-03-15T13:45:09+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+CiAgICAgICAgICAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPldlOGR6dWNucXJUMlA1QVBZWEtOWWRLNHRkdz08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4KICAgICAgICAgICAgIDxTaWduYXR1cmVWYWx1ZT48L1NpZ25hdHVyZVZhbHVlPgogICAgICAgICAgICAgPEtleUluZm8+PFg1MDlEYXRhPjxYNTA5Q2VydGlmaWNhdGU+PC9YNTA5Q2VydGlmaWNhdGU+PC9YNTA5RGF0YT48L0tleUluZm8+CiAgICAgICAgICAgPC9TaWduYXR1cmU+" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Task-Request-Release-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Task-Request-Release-200_OK.json new file mode 100644 index 00000000..0b3af714 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/6-Task-Request-Release-200_OK.json @@ -0,0 +1,99 @@ +{ + "resourceType": "Parameters", + "id": "c7f92f8d-3065-4c8a-91e0-484fedc63e5e", + "parameter": [ + { + "name": "owner", + "resource": { + "resourceType": "Organization", + "id": "organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + }, + { + "name": "status", + "valueCode": "accepted" + }, + { + "name": "agent", + "resource": { + "resourceType": "PractitionerRole", + "telecom": [ + { + "system": "phone", + "value": "02380798431", + "use": "work" + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ] + } + }, + { + "name": "group-identifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "40E709-A99968-280C0X" + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Claim-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Claim-Request-200_OK.json new file mode 100644 index 00000000..7b1ca4b1 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Claim-Request-200_OK.json @@ -0,0 +1,412 @@ +{ + "resourceType": "Claim", + "id": "e8e75676-9d30-45f8-8b09-696818e7f4ca", + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Mr Peter Potion" + }, + "organization": { + "reference": "#organization" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0532567890" + } + ] + }, + { + "resourceType": "Organization", + "id": "organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + ], + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-Provenance-agent", + "valueReference": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555253518103" + }, + "display": "Mr User Chris T" + } + } + ], + "identifier": [ + { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "a2c05ec6-4292-4568-8200-bfac8439da04" + } + ], + "status": "active", + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/claim-type", + "code": "pharmacy", + "display": "Pharmacy" + } + ] + }, + "use": "claim", + "patient": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304106" + } + }, + "created": "2021-09-23T13:09:56+00:00", + "provider": { + "reference": "#performer" + }, + "priority": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/processpriority", + "code": "normal" + } + ] + }, + "prescription": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-GroupIdentifier", + "extension": [ + { + "url": "shortForm", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "D7A21F-A83008-F1762A" + } + }, + { + "url": "UUID", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a5b9dc81-ccf4-4dab-b887-3d88e557febb" + } + } + ] + } + ] + }, + "payee": { + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/payeetype", + "code": "provider", + "display": "Provider" + } + ] + }, + "party": { + "reference": "#organization" + } + }, + "insurance": [ + { + "sequence": 1, + "focal": true, + "coverage": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + }, + "display": "NHS BUSINESS SERVICES AUTHORITY" + } + } + ], + "item": [ + { + "sequence": 1, + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "code": "0006", + "display": "Dispensed" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-SuppliedItemIdentifier", + "valueIdentifier": { + "value": "This extension shouldn't be here - ask Kevin to remove from the profile" + } + } + ], + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "16076005", + "display": "Prescription" + } + ] + }, + "modifier": [ + { + "text": "This modifier shouldn't be here - ask Kevin to remove from the profile", + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "code": "0001", + "display": "Item fully dispensed" + } + ] + } + ], + "programCode": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-charge-exemption", + "code": "9182", + "display": "Medical exemption certificate" + } + ] + } + ], + "detail": [ + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimSequenceIdentifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/claim-sequence-identifier", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimMedicationRequestReference", + "valueReference": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + } + } + ], + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "13892511000001100", + "display": "Amlodipine 5mg/5ml oral solution" + } + ] + }, + "modifier": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "code": "0001", + "display": "Item fully dispensed" + } + ] + } + ], + "quantity": { + "value": 5, + "unit": "ml", + "system": "http://snomed.info/sct", + "code": "385024007" + }, + "programCode": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-endorsement", + "code": "NDEC", + "display": "No Dispenser Endorsement Code" + } + ] + }, + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/DM-prescription-charge", + "code": "not-paid", + "display": "Not Paid" + } + ] + } + ], + "subDetail": [ + { + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "13892511000001100", + "display": "Amlodipine 5mg/5ml oral solution" + } + ] + }, + "quantity": { + "value": 5, + "unit": "ml", + "system": "http://snomed.info/sct", + "code": "385024007" + } + } + ] + }, + { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimSequenceIdentifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/claim-sequence-identifier", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab7" + } + }, + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimMedicationRequestReference", + "valueReference": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab7" + } + } + } + ], + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "317972000", + "display": "Furosemide 40mg tablets" + } + ] + }, + "modifier": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "code": "0001", + "display": "Item fully dispensed" + } + ] + } + ], + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "programCode": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-endorsement", + "code": "NDEC", + "display": "No Dispenser Endorsement Code" + } + ] + }, + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/DM-prescription-charge", + "code": "not-paid", + "display": "Not Paid" + } + ] + } + ], + "subDetail": [ + { + "sequence": 1, + "productOrService": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "317972000", + "display": "Furosemide 40mg tablets" + } + ] + }, + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + } + ] + } + ] + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Prepare-Request-200_OK.json new file mode 100644 index 00000000..74cb19fa --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Prepare-Request-200_OK.json @@ -0,0 +1,527 @@ +{ + "resourceType": "Bundle", + "id": "aef77afb-7e3c-427a-8657-2c427f71a272", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "ea66ee9d-a981-432f-8c27-6907cbd99219" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:aef77afb-7e3c-427a-8657-2c427f71a272", + "resource": { + "resourceType": "MessageHeader", + "id": "3599c0e9-9292-413e-9270-9a1ef1ead99c", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "X26" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1201", + "display": "Outpatient Homecare Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "13892511000001100", + "display": "Amlodipine 5mg/5ml oral solution" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a5b9dc81-ccf4-4dab-b887-3d88e557febb" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "D7A21F-A83008-F1762A" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 milligram - 5 times a day - Oral - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNCEL" + } + }, + "quantity": { + "value": 5, + "unit": "ml", + "system": "http://snomed.info/sct", + "code": "385024007" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab7", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab7", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1201", + "display": "Outpatient Homecare Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab7" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "317972000", + "display": "Furosemide 40mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a5b9dc81-ccf4-4dab-b887-3d88e557febb" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "D7A21F-A83008-F1762A" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 times a day - Oral - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNCEL" + } + }, + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304106" + } + ], + "name": [ + { + "use": "usual", + "family": "LEGASSICK", + "given": ["NICODEMUS", "ZACKERY"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1994-03-19", + "address": [ + { + "use": "home", + "line": ["11 LITTLEHEATH LANE", "COBHAM", "SURREY"], + "postalCode": "KT11 2QG" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "7020134158" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "G9999999" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "70201123456" + } + ], + "name": [ + { + "family": "Edwards", + "given": ["Thomas"], + "prefix": ["DR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e", + "resource": { + "resourceType": "CommunicationRequest", + "status": "unknown", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "payload": [ + { + "contentReference": { + "reference": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "display": "List of Repeat Medications for re-ordering" + } + } + ], + "requester": { + "type": "Organization", + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + }, + "recipient": [ + { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9453740519" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "resource": { + "resourceType": "List", + "status": "current", + "mode": "snapshot", + "code": { + "text": "Repeat Medications" + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "entry": [ + { + "item": { + "display": "Metformin 500mg tablets" + } + }, + { + "item": { + "display": "Aspirin 75mg dispersible tablets" + } + }, + { + "item": { + "display": "Simvastatin 40mg tablets" + } + }, + { + "item": { + "display": "Chloramphenicol 0.5% eye drops" + } + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Prepare-Response-200_OK.json new file mode 100644 index 00000000..430e9bcb --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+SFkrMTNqZUt6Sm1nMlpHMjA2VDhteG1DMk1ZPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2022-10-25T10:24:34+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Process-Request-Dispense-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Process-Request-Dispense-200_OK.json new file mode 100644 index 00000000..307ce77c --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Process-Request-Dispense-200_OK.json @@ -0,0 +1,842 @@ +{ + "resourceType": "Bundle", + "id": "166f1103-3r67-73dw-7364-s395c4itv284", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "a22ad970-417c-4b0d-9c18-19a54761b478" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:be807dac-9dcf-45cf-91d6-70d9d58dcf34", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "dispense-notification", + "display": "Dispense Notification" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + }, + "display": "NHS BUSINESS SERVICES AUTHORITY" + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNCEL" + }, + "display": "YORKSHIRE HOMECARE LIMITED" + }, + "source": { + "name": "YORKSHIRE HOMECARE LIMITED", + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/VNCEL" + }, + "reason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/message-reason-prescription", + "code": "notification", + "display": "Notification" + } + ] + }, + "response": { + "identifier": "999f9999-9999-9999-9ff9-f9fff9999999", + "code": "ok" + }, + "focus": [ + { + "reference": "urn:uuid:4509b70d-d8b8-ea03-1105-64557cb54a29" + } + ] + } + }, + { + "fullUrl": "urn:uuid:4509b70d-d8b8-ea03-1105-64557cb54a29", + "resource": { + "resourceType": "MedicationDispense", + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "organization": { + "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "02380798431" + } + ] + }, + { + "resourceType": "MedicationRequest", + "id": "m1", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1201", + "display": "Outpatient Homecare Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "13892511000001100", + "display": "Amlodipine 5mg/5ml oral solution" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "authoredOn": "2021-05-07T14:47:29+00:00", + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a5b9dc81-ccf4-4dab-b887-3d88e557febb" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "D7A21F-A83008-F1762A" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "Once daily", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNCEL" + } + }, + "quantity": { + "value": 5, + "unit": "ml", + "system": "http://snomed.info/sct", + "code": "385024007" + } + }, + "substitution": { + "allowedBoolean": false + } + } + ], + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "code": "0006", + "display": "Dispensed" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "completed", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "13892511000001100", + "display": "Amlodipine 5mg/5ml oral solution" + } + ] + }, + "subject": { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304106" + }, + "display": "MR ZACKERY NICODEMUS LEGASSICK" + }, + "performer": [ + { + "actor": { + "reference": "#performer" + } + } + ], + "authorizingPrescription": [ + { + "reference": "#m1" + } + ], + "type": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "code": "0001", + "display": "Item fully dispensed" + } + ] + }, + "quantity": { + "value": 5, + "unit": "ml", + "system": "http://snomed.info/sct", + "code": "385024007" + }, + "whenHandedOver": "2021-05-07T14:47:29+00:00", + "dosageInstruction": [ + { + "text": "80mg at 8am and 40mg at 2pm for 5 days. Then 40mg tablet - oral- daily at 8am" + } + ] + } + }, + { + "fullUrl": "urn:uuid:4509b70d-d8b8-ea03-1105-64557cb54a28", + "resource": { + "resourceType": "MedicationDispense", + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "organization": { + "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "02380798431" + } + ] + }, + { + "resourceType": "MedicationRequest", + "id": "m1", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1201", + "display": "Outpatient Homecare Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab7" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "317972000", + "display": "Furosemide 40mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "authoredOn": "2021-05-07T14:47:29+00:00", + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a5b9dc81-ccf4-4dab-b887-3d88e557febb" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "D7A21F-A83008-F1762A" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "80mg at 8am and 40mg at 2pm for 5 days. Then 40mg tablet - oral- daily at 8am", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNCEL" + } + }, + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + ], + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "code": "0006", + "display": "Dispensed" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab7" + } + ], + "status": "completed", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "317972000", + "display": "Furosemide 40mg tablets (Manufacturer A)" + } + ] + }, + "subject": { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304106" + }, + "display": "MR ZACKERY NICODEMUS LEGASSICK" + }, + "performer": [ + { + "actor": { + "reference": "#performer" + } + } + ], + "authorizingPrescription": [ + { + "reference": "#m1" + } + ], + "type": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "code": "0001", + "display": "Item fully dispensed" + } + ] + }, + "quantity": { + "value": 13, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "whenHandedOver": "2021-05-07T14:47:29+00:00", + "dosageInstruction": [ + { + "text": "80mg at 8am and 40mg at 2pm for 5 days. Then 40mg tablet - oral- daily at 8am" + } + ] + } + }, + { + "fullUrl": "urn:uuid:322b989d-3334-485b-9966-d59350cee160", + "resource": { + "resourceType": "MedicationDispense", + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "organization": { + "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "02380798431" + } + ] + }, + { + "resourceType": "MedicationRequest", + "id": "m1", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1201", + "display": "Outpatient Homecare Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab7" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "317972000", + "display": "Furosemide 40mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "authoredOn": "2021-05-07T14:47:29+00:00", + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a5b9dc81-ccf4-4dab-b887-3d88e557febb" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "D7A21F-A83008-F1762A" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "80mg at 8am and 40mg at 2pm for 5 days. Then 40mg tablet - oral- daily at 8am", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNCEL" + } + }, + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + ], + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "code": "0006", + "display": "Dispensed" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab7" + } + ], + "status": "completed", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "317972000", + "display": "Furosemide 40mg tablets (Manufacturer B)" + } + ] + }, + "subject": { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304106" + }, + "display": "MR ZACKERY NICODEMUS LEGASSICK" + }, + "performer": [ + { + "actor": { + "reference": "#performer" + } + } + ], + "authorizingPrescription": [ + { + "reference": "#m1" + } + ], + "type": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "code": "0001", + "display": "Item fully dispensed" + } + ] + }, + "quantity": { + "value": 15, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "whenHandedOver": "2021-05-07T14:47:29+00:00", + "dosageInstruction": [ + { + "text": "80mg at 8am and 40mg at 2pm for 5 days. Then 40mg tablet - oral- daily at 8am" + } + ] + } + }, + { + "fullUrl": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b", + "resource": { + "resourceType": "Organization", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ODS-OrganisationRelationships", + "extension": [ + { + "url": "reimbursementAuthority", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..ac9ed90b --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Process-Request-Send-200_OK.json @@ -0,0 +1,562 @@ +{ + "resourceType": "Bundle", + "id": "aef77afb-7e3c-427a-8657-2c427f71a272", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "4bbc97c0-f16d-4d82-85c8-c3cc62f8bd78" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:aef77afb-7e3c-427a-8657-2c427f71a272", + "resource": { + "resourceType": "MessageHeader", + "id": "3599c0e9-9292-413e-9270-9a1ef1ead99c", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "X26" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + }, + { + "reference": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab6", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1201", + "display": "Outpatient Homecare Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "13892511000001100", + "display": "Amlodipine 5mg/5ml oral solution" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a5b9dc81-ccf4-4dab-b887-3d88e557febb" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "D7A21F-A83008-F1762A" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 milligram - 5 times a day - Oral - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNCEL" + } + }, + "quantity": { + "value": 5, + "unit": "ml", + "system": "http://snomed.info/sct", + "code": "385024007" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab7", + "resource": { + "resourceType": "MedicationRequest", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab7", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "1201", + "display": "Outpatient Homecare Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab7" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "outpatient", + "display": "Outpatient" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "317972000", + "display": "Furosemide 40mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "a5b9dc81-ccf4-4dab-b887-3d88e557febb" + } + } + ], + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "D7A21F-A83008-F1762A" + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "text": "5 times a day - Oral - for 10 days", + "timing": { + "repeat": { + "frequency": 5, + "period": 1, + "periodUnit": "d", + "boundsDuration": { + "value": 10, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + } + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral" + } + ] + } + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNCEL" + } + }, + "quantity": { + "value": 28, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304106" + } + ], + "name": [ + { + "use": "usual", + "family": "LEGASSICK", + "given": ["NICODEMUS", "ZACKERY"], + "prefix": ["MR"] + } + ], + "gender": "male", + "birthDate": "1994-03-19", + "address": [ + { + "use": "home", + "line": ["11 LITTLEHEATH LANE", "COBHAM", "SURREY"], + "postalCode": "KT11 2QG" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "7020134158" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "G9999999" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "70201123456" + } + ], + "name": [ + { + "family": "Edwards", + "given": ["Thomas"], + "prefix": ["DR"] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "address": [ + { + "use": "work", + "line": ["MUSGROVE PARK HOSPITAL"], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e", + "resource": { + "resourceType": "CommunicationRequest", + "status": "unknown", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "payload": [ + { + "contentReference": { + "reference": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "display": "List of Repeat Medications for re-ordering" + } + } + ], + "requester": { + "type": "Organization", + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + }, + "recipient": [ + { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9453740519" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "resource": { + "resourceType": "List", + "status": "current", + "mode": "snapshot", + "code": { + "text": "Repeat Medications" + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "entry": [ + { + "item": { + "display": "Metformin 500mg tablets" + } + }, + { + "item": { + "display": "Aspirin 75mg dispersible tablets" + } + }, + { + "item": { + "display": "Simvastatin 40mg tablets" + } + }, + { + "item": { + "display": "Chloramphenicol 0.5% eye drops" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:30+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "DQo8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICA8U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9DYW5vbmljYWxpemF0aW9uTWV0aG9kPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPjxSZWZlcmVuY2U+PFRyYW5zZm9ybXM+PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9EaWdlc3RNZXRob2Q+PERpZ2VzdFZhbHVlPjhIeUJwQnhPN1U3M2QrVlBUTHFSNnBrK2xRbz08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz4NCiAgICA8U2lnbmF0dXJlVmFsdWU+cUhQcnVBbnpYUlRGNzB1NU9Xd2xOaVhmN3JaYUlUMjdCTTNZaEZJRkRZUFFydUtOTzhEakxrbWpUbENpRWxXTU1HWXFUT1U0S2REcE1rS2JrOU51TnFvTTNBWitCcVo4OGhOTUxlTlQ1ZktpK0dMK1RUWU9hclVVZEpGMEUxZmtERS9nbDJob1lXK29OM29VUEtJVU9mZkNSVXYycEVHaEg3Y0drT0Jvc3ZjPTwvU2lnbmF0dXJlVmFsdWU+DQogICAgPEtleUluZm8+DQogICAgICAgIDxYNTA5RGF0YT4NCiAgICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+TUlJRHVEQ0NBcUNnQXdJQkFnSUVYY210SHpBTkJna3Foa2lHOXcwQkFRc0ZBREEyTVF3d0NnWURWUVFLRXdOdWFITXhDekFKQmdOVkJBc1RBa05CTVJrd0Z3WURWUVFERXhCT1NGTWdTVTVVSUV4bGRtVnNJREZFTUI0WERUSXdNVEF5TWpFd01qRTFOVm9YRFRJeU1UQXlNakV3TlRFMU5Wb3dRekVNTUFvR0ExVUVDaE1EYm1oek1ROHdEUVlEVlFRTEV3WlFaVzl3YkdVeElqQWdCZ05WQkFNTUdUVTFOVEkxTXpVeU1URXdPRjlTUVU1RVQwMWZWVk5GVWxFd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLdDRzek53N09BSDdBUVJyRGUveEJJbXNNbU1pUzlFc3JUM2EzcC9MaDNicmR6STlhYWpUVVoyYi9jdmJPYTdQZVlkN3UrSzRhMlpkMFhrKzBHRm1ZR3pTVlg2aVlqYmx3cjB2YWkzMXpWN0crbEd2SHhINnBTb0xDd0lDYVpBRndhYmVENU96OTQreUEzYVdOV3RHVjBEZmg5cXdIM1pGQ0lNUnN2ZXJOMXBBZ01CQUFHamdnRkRNSUlCUHpBT0JnTlZIUThCQWY4RUJBTUNCa0F3WlFZRFZSMGdBUUgvQkZzd1dUQlhCZ3NxaGpvQWlYdG1BQU1DQURCSU1FWUdDQ3NHQVFVRkJ3SUJGanBvZEhSd2N6b3ZMM0JyYVM1dWFITXVkV3N2WTJWeWRHbG1hV05oZEdWZmNHOXNhV05wWlhNdlkyOXVkR1Z1ZEY5amIyMXRhWFJ0Wlc1ME1ETUdBMVVkSHdRc01Db3dLS0Ftb0NTR0ltaDBkSEE2THk5amNtd3VibWh6TG5WckwybHVkQzh4WkM5amNteGpNeTVqY213d0t3WURWUjBRQkNRd0lvQVBNakF5TURFd01qSXhNREl4TlRWYWdROHlNREl5TURNeE56RXdOVEUxTlZvd0h3WURWUjBqQkJnd0ZvQVVvSllmZ1lUTlBkNkVVS0w2UUxJekh4WTVQRkl3SFFZRFZSME9CQllFRkx0eXZZU3lhcWc2MEFFVVpneGswd3JqUkpjK01Ba0dBMVVkRXdRQ01BQXdHUVlKS29aSWh2WjlCMEVBQkF3d0Noc0VWamd1TXdNQ0JMQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmN6eThCOGp1UHBJZmFUTkZjeHJDMjJhQ1gveFlabWhyTC9OdklCQWFYMUc1aGppd21rR0tFMmhSVElyNjdQeFp4bVhzSnhpZ1JCTUhQbEkrbFkvK29rekgwR2k3YjVicWx3N3B4R0lnSk8wMDB3OHBGc3ZvOXc0MklZaEhvZHN2bkRWU3hoTVQwSjQ2UWhrOXNvRTBMam9FVUxLUVBQbFlHa2UvR2wzbTE3SXRGWXdPYlFIMGZNRXdtaXFCeWVJZno3Z1NjY096TDVjSXA2UGNaVE9qbzJJcVFwZ0VtaGpPY1JJbkVxQU5pdFNkam9pSkFKenBhYVpqWVRSZEhVWDdpN2FqRWlING05MW5GVys0QXFrTnR0bGI0V2NHS3NTbVdnZktLaGVGNElvWktNRTgweGVyU2dNeTh2dGpMT0JKQ0dYejB3TEdtUXVSbXhNVHE4OHE0PTwvWDUwOUNlcnRpZmljYXRlPg0KICAgICAgICA8L1g1MDlEYXRhPg0KICAgIDwvS2V5SW5mbz4NCjwvU2lnbmF0dXJlPg0K" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Task-Request-Release-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Task-Request-Release-200_OK.json new file mode 100644 index 00000000..6ac7e2b6 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/clinical-practitioner/7-Task-Request-Release-200_OK.json @@ -0,0 +1,100 @@ +{ + "resourceType": "Parameters", + "id": "nominatedPharmacyReleaseRequest", + "parameter": [ + { + "name": "owner", + "resource": { + "resourceType": "Organization", + "id": "organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + }, + { + "name": "status", + "valueCode": "accepted" + }, + { + "name": "agent", + "resource": { + "resourceType": "PractitionerRole", + "id": "16708936-6397-4e03-b84f-4aaa790633e0", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "02380798431", + "use": "work" + } + ] + } + }, + { + "name": "group-identifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "D7A21F-A83008-F1762A" + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/concurrent-dosage-instructions/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/concurrent-dosage-instructions/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..ef5db111 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/concurrent-dosage-instructions/1-Prepare-Request-200_OK.json @@ -0,0 +1,547 @@ +{ + "resourceType": "Bundle", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab5", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "ea66ee9d-a981-432f-8c27-6907cbd99219" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab5", + "resource": { + "resourceType": "MessageHeader", + "id": "3599c0e9-9292-413e-9270-9a1ef1ead99c", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "X26" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:fa3037a0-1862-4d4b-8564-2472b5e398f2" + }, + { + "reference": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e" + } + ] + } + }, + { + "fullUrl": "urn:uuid:fa3037a0-1862-4d4b-8564-2472b5e398f2", + "resource": { + "resourceType": "MedicationRequest", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "325427002", + "display": "Prednisolone 5mg tablets" + } + ] + }, + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "04f9fde8-c218-4e7f-a97c-079187038485" + } + ], + "status": "active", + "intent": "order", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "561479-395879-521272", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "9ee331b3-7f67-4120-9421-49369424fc6a" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "sequence": 1, + "text": "2 tablets to be taken at 08:00 for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d", + "timeOfDay": [ + "08:00:00" + ] + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 1, + "text": "1 tablet to be taken at 17:00 for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d", + "timeOfDay": [ + "17:00:00" + ] + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 1, + "text": "1 tablet to be taken at 20:00 for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d", + "timeOfDay": [ + "20:00:00" + ] + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 8, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "validityPeriod": { + "start": "2022-10-20", + "end": "2023-03-20" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FK994" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304106" + } + ], + "name": [ + { + "use": "usual", + "family": "LEGASSICK", + "given": [ + "NICODEMUS", + "ZACKERY" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1994-03-19", + "address": [ + { + "use": "home", + "line": [ + "11 LITTLEHEATH LANE", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QG" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "7020134158" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "G9999999" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "70201123456" + } + ], + "name": [ + { + "family": "Edwards", + "given": [ + "Thomas" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "197", + "display": "NHS TRUST" + } + ] + } + ], + "name": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST", + "address": [ + { + "line": [ + "MUSGROVE PARK HOSPITAL", + "PARKFIELD DRIVE", + "TAUNTON" + ], + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:54b0506d-49af-4245-9d40-d7d64902055e", + "resource": { + "resourceType": "HealthcareService", + "id": "54b0506d-49af-4245-9d40-d7d64902055e", + "identifier": [ + { + "use": "usual", + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "active": true, + "providedBy": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + } + }, + "location": [ + { + "reference": "urn:uuid:8a5d7d67-64fb-44ec-9802-2dc214bb3dcb" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:8a5d7d67-64fb-44ec-9802-2dc214bb3dcb", + "resource": { + "resourceType": "Location", + "id": "8a5d7d67-64fb-44ec-9802-2dc214bb3dcb", + "identifier": [ + { + "value": "10008800708" + } + ], + "status": "active", + "mode": "instance", + "address": { + "use": "work", + "line": [ + "MUSGROVE PARK HOSPITAL" + ], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + } + }, + { + "fullUrl": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e", + "resource": { + "resourceType": "CommunicationRequest", + "status": "unknown", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "payload": [ + { + "contentReference": { + "reference": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "display": "List of Repeat Medications for re-ordering" + } + } + ], + "requester": { + "type": "Organization", + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + }, + "recipient": [ + { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9453740519" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "resource": { + "resourceType": "List", + "status": "current", + "mode": "snapshot", + "code": { + "text": "Repeat Medications" + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "entry": [ + { + "item": { + "display": "Metformin 500mg tablets" + } + }, + { + "item": { + "display": "Aspirin 75mg dispersible tablets" + } + }, + { + "item": { + "display": "Simvastatin 40mg tablets" + } + }, + { + "item": { + "display": "Chloramphenicol 0.5% eye drops" + } + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/concurrent-dosage-instructions/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/concurrent-dosage-instructions/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..a3863e23 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/concurrent-dosage-instructions/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+SG1OSlJIOGhPbFhNNDU0MmtOVzF3M1pnQUtFPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2023-04-12T15:52:10+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/concurrent-dosage-instructions/1-Process-Request-Dispense-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/concurrent-dosage-instructions/1-Process-Request-Dispense-200_OK.json new file mode 100644 index 00000000..151ee3b9 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/concurrent-dosage-instructions/1-Process-Request-Dispense-200_OK.json @@ -0,0 +1,520 @@ +{ + "resourceType": "Bundle", + "id": "166f1103-3r67-73dw-7364-s395c4itv284", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "a22ad970-417c-4b0d-9c18-19a54761b478" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:be807dac-9dcf-45cf-91d6-70d9d58dcf34", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "dispense-notification", + "display": "Dispense Notification" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + }, + "display": "NHS BUSINESS SERVICES AUTHORITY" + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNCEL" + }, + "display": "YORKSHIRE HOMECARE LIMITED" + }, + "source": { + "name": "YORKSHIRE HOMECARE LIMITED", + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/VNCEL" + }, + "reason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/message-reason-prescription", + "code": "notification", + "display": "Notification" + } + ] + }, + "response": { + "identifier": "999f9999-9999-9999-9ff9-f9fff9999999", + "code": "ok" + }, + "focus": [ + { + "reference": "urn:uuid:4509b70d-d8b8-ea03-1105-64557cb54a29" + } + ] + } + }, + { + "fullUrl": "urn:uuid:4509b70d-d8b8-ea03-1105-64557cb54a29", + "resource": { + "resourceType": "MedicationDispense", + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "organization": { + "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "02380798431" + } + ] + }, + { + "resourceType": "MedicationRequest", + "id": "m1", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "04f9fde8-c218-4e7f-a97c-079187038485" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "325427002", + "display": "Prednisolone 5mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "authoredOn": "2022-11-21T11:37:15.572Z", + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "561479-395879-521272", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "9ee331b3-7f67-4120-9421-49369424fc6a" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "sequence": 1, + "text": "2 tablets to be taken at 08:00 for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d", + "timeOfDay": [ + "08:00:00" + ] + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 1, + "text": "1 tablet to be taken at 17:00 for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d", + "timeOfDay": [ + "17:00:00" + ] + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 1, + "text": "1 tablet to be taken at 20:00 for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d", + "timeOfDay": [ + "20:00:00" + ] + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 8, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "validityPeriod": { + "start": "2022-10-20", + "end": "2023-03-20" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FK994" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + ], + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "code": "0006", + "display": "Dispensed" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", + "value": "04f9fde8-c218-4e7f-a97c-079187038485" + } + ], + "status": "completed", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "325427002", + "display": "Prednisolone 5mg tablets" + } + ] + }, + "subject": { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304106" + }, + "display": "MR ZACKERY NICODEMUS LEGASSICK" + }, + "performer": [ + { + "actor": { + "reference": "#performer" + } + } + ], + "authorizingPrescription": [ + { + "reference": "#m1" + } + ], + "type": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "code": "0001", + "display": "Item fully dispensed" + } + ] + }, + "quantity": { + "value": 8, + "unit": "tablets", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "whenHandedOver": "2021-05-07T14:47:29+00:00", + "dosageInstruction": [ + { + "sequence": 1, + "text": "2 tablets to be taken at 08:00 for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d", + "timeOfDay": [ + "08:00:00" + ] + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 1, + "text": "1 tablet to be taken at 17:00 for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d", + "timeOfDay": [ + "17:00:00" + ] + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 1, + "text": "1 tablet to be taken at 20:00 for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d", + "timeOfDay": [ + "20:00:00" + ] + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b", + "resource": { + "resourceType": "Organization", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ODS-OrganisationRelationships", + "extension": [ + { + "url": "reimbursementAuthority", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/concurrent-dosage-instructions/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/concurrent-dosage-instructions/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..0ae5ddd5 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/concurrent-dosage-instructions/1-Process-Request-Send-200_OK.json @@ -0,0 +1,582 @@ +{ + "resourceType": "Bundle", + "id": "a54219b8-f741-4c47-b662-e4f8dfa49ab5", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "ea66ee9d-a981-432f-8c27-6907cbd99219" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab5", + "resource": { + "resourceType": "MessageHeader", + "id": "3599c0e9-9292-413e-9270-9a1ef1ead99c", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "X26" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:fa3037a0-1862-4d4b-8564-2472b5e398f2" + }, + { + "reference": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e" + } + ] + } + }, + { + "fullUrl": "urn:uuid:fa3037a0-1862-4d4b-8564-2472b5e398f2", + "resource": { + "resourceType": "MedicationRequest", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "325427002", + "display": "Prednisolone 5mg tablets" + } + ] + }, + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "04f9fde8-c218-4e7f-a97c-079187038485" + } + ], + "status": "active", + "intent": "order", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "561479-395879-521272", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "9ee331b3-7f67-4120-9421-49369424fc6a" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "sequence": 1, + "text": "2 tablets to be taken at 08:00 for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d", + "timeOfDay": [ + "08:00:00" + ] + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 1, + "text": "1 tablet to be taken at 17:00 for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d", + "timeOfDay": [ + "17:00:00" + ] + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 1, + "text": "1 tablet to be taken at 20:00 for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d", + "timeOfDay": [ + "20:00:00" + ] + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 8, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "validityPeriod": { + "start": "2022-10-20", + "end": "2023-03-20" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FK994" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304106" + } + ], + "name": [ + { + "use": "usual", + "family": "LEGASSICK", + "given": [ + "NICODEMUS", + "ZACKERY" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1994-03-19", + "address": [ + { + "use": "home", + "line": [ + "11 LITTLEHEATH LANE", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QG" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "7020134158" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "G9999999" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "70201123456" + } + ], + "name": [ + { + "family": "Edwards", + "given": [ + "Thomas" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "197", + "display": "NHS TRUST" + } + ] + } + ], + "name": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST", + "address": [ + { + "line": [ + "MUSGROVE PARK HOSPITAL", + "PARKFIELD DRIVE", + "TAUNTON" + ], + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:54b0506d-49af-4245-9d40-d7d64902055e", + "resource": { + "resourceType": "HealthcareService", + "id": "54b0506d-49af-4245-9d40-d7d64902055e", + "identifier": [ + { + "use": "usual", + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "active": true, + "providedBy": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + } + }, + "location": [ + { + "reference": "urn:uuid:8a5d7d67-64fb-44ec-9802-2dc214bb3dcb" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:8a5d7d67-64fb-44ec-9802-2dc214bb3dcb", + "resource": { + "resourceType": "Location", + "id": "8a5d7d67-64fb-44ec-9802-2dc214bb3dcb", + "identifier": [ + { + "value": "10008800708" + } + ], + "status": "active", + "mode": "instance", + "address": { + "use": "work", + "line": [ + "MUSGROVE PARK HOSPITAL" + ], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + } + }, + { + "fullUrl": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e", + "resource": { + "resourceType": "CommunicationRequest", + "status": "unknown", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "payload": [ + { + "contentReference": { + "reference": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "display": "List of Repeat Medications for re-ordering" + } + } + ], + "requester": { + "type": "Organization", + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + }, + "recipient": [ + { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9453740519" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "resource": { + "resourceType": "List", + "status": "current", + "mode": "snapshot", + "code": { + "text": "Repeat Medications" + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "entry": [ + { + "item": { + "display": "Metformin 500mg tablets" + } + }, + { + "item": { + "display": "Aspirin 75mg dispersible tablets" + } + }, + { + "item": { + "display": "Simvastatin 40mg tablets" + } + }, + { + "item": { + "display": "Chloramphenicol 0.5% eye drops" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:fa3037a0-1862-4d4b-8564-2472b5e398f2" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:30+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+cVluQlRMSC8zWTFqbk04K2tmcEdrT1l5WUJvPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/concurrent-dosage-instructions/1-Task-Request-Release-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/concurrent-dosage-instructions/1-Task-Request-Release-200_OK.json new file mode 100644 index 00000000..f7db4a56 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/concurrent-dosage-instructions/1-Task-Request-Release-200_OK.json @@ -0,0 +1,100 @@ +{ + "resourceType": "Parameters", + "id": "626f5d75-4f56-438a-b13d-656f1030bcd7", + "parameter": [ + { + "name": "owner", + "resource": { + "resourceType": "Organization", + "id": "organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + }, + { + "name": "status", + "valueCode": "accepted" + }, + { + "name": "agent", + "resource": { + "resourceType": "PractitionerRole", + "id": "16708936-6397-4e03-b84f-4aaa790633e0", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "02380798431", + "use": "work" + } + ] + } + }, + { + "name": "group-identifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "561479-395879-521272" + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-and-concurrent-dosage-instructions/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-and-concurrent-dosage-instructions/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..ae16391b --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-and-concurrent-dosage-instructions/1-Prepare-Request-200_OK.json @@ -0,0 +1,545 @@ +{ + "resourceType": "Bundle", + "id": "ecb29fe1-d2bc-40e3-9279-702c210c3c51", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "28efc4e6-73e7-4f91-bc9f-ac587dbd3ec5" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:ecb29fe1-d2bc-40e3-9279-702c210c3c51", + "resource": { + "resourceType": "MessageHeader", + "id": "98a36144-f781-4ed0-bae7-34ef58ccce15", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "X26" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:b3edb17a-1fb6-4c47-af0d-459d6d6d3896" + }, + { + "reference": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e" + } + ] + } + }, + { + "fullUrl": "urn:uuid:b3edb17a-1fb6-4c47-af0d-459d6d6d3896", + "resource": { + "resourceType": "MedicationRequest", + "id": "b3edb17a-1fb6-4c47-af0d-459d6d6d3896", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "325427002", + "display": "Prednisolone 5mg tablets" + } + ] + }, + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "b3edb17a-1fb6-4c47-af0d-459d6d6d3896" + } + ], + "status": "active", + "intent": "order", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "887228-510420-124913", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "40A4D7A0-1FC1-4004-97E5-A0985F8E8F4C" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "sequence": 1, + "text": "2 tablets to be taken at 08:00 for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d", + "timeOfDay": [ + "08:00:00" + ] + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 1, + "text": "1 tablet to be taken at 17:00 for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d", + "timeOfDay": [ + "17:00:00" + ] + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 2, + "text": "1 tablet to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 8, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "validityPeriod": { + "start": "2022-10-20", + "end": "2023-03-20" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FK994" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304106" + } + ], + "name": [ + { + "use": "usual", + "family": "LEGASSICK", + "given": [ + "NICODEMUS", + "ZACKERY" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1994-03-19", + "address": [ + { + "use": "home", + "line": [ + "11 LITTLEHEATH LANE", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QG" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "7020134158" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "G9999999" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "70201123456" + } + ], + "name": [ + { + "family": "Edwards", + "given": [ + "Thomas" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "197", + "display": "NHS TRUST" + } + ] + } + ], + "name": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST", + "address": [ + { + "line": [ + "MUSGROVE PARK HOSPITAL", + "PARKFIELD DRIVE", + "TAUNTON" + ], + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:54b0506d-49af-4245-9d40-d7d64902055e", + "resource": { + "resourceType": "HealthcareService", + "id": "54b0506d-49af-4245-9d40-d7d64902055e", + "identifier": [ + { + "use": "usual", + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "active": true, + "providedBy": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + } + }, + "location": [ + { + "reference": "urn:uuid:8a5d7d67-64fb-44ec-9802-2dc214bb3dcb" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:8a5d7d67-64fb-44ec-9802-2dc214bb3dcb", + "resource": { + "resourceType": "Location", + "id": "8a5d7d67-64fb-44ec-9802-2dc214bb3dcb", + "identifier": [ + { + "value": "10008800708" + } + ], + "status": "active", + "mode": "instance", + "address": { + "use": "work", + "line": [ + "MUSGROVE PARK HOSPITAL" + ], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + } + }, + { + "fullUrl": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e", + "resource": { + "resourceType": "CommunicationRequest", + "status": "unknown", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "payload": [ + { + "contentReference": { + "reference": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "display": "List of Repeat Medications for re-ordering" + } + } + ], + "requester": { + "type": "Organization", + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + }, + "recipient": [ + { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9453740519" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "resource": { + "resourceType": "List", + "status": "current", + "mode": "snapshot", + "code": { + "text": "Repeat Medications" + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "entry": [ + { + "item": { + "display": "Metformin 500mg tablets" + } + }, + { + "item": { + "display": "Aspirin 75mg dispersible tablets" + } + }, + { + "item": { + "display": "Simvastatin 40mg tablets" + } + }, + { + "item": { + "display": "Chloramphenicol 0.5% eye drops" + } + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-and-concurrent-dosage-instructions/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-and-concurrent-dosage-instructions/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..8a322579 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-and-concurrent-dosage-instructions/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+YzZGdXdhaEJKVGVsUkhzSEZiVVl2YS90WXpVPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2023-04-12T15:52:10+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-and-concurrent-dosage-instructions/1-Process-Request-Dispense-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-and-concurrent-dosage-instructions/1-Process-Request-Dispense-200_OK.json new file mode 100644 index 00000000..30f3455c --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-and-concurrent-dosage-instructions/1-Process-Request-Dispense-200_OK.json @@ -0,0 +1,514 @@ +{ + "resourceType": "Bundle", + "id": "166f1103-3r67-73dw-7364-s395c4itv284", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "a22ad970-417c-4b0d-9c18-19a54761b478" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:be807dac-9dcf-45cf-91d6-70d9d58dcf34", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "dispense-notification", + "display": "Dispense Notification" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + }, + "display": "NHS BUSINESS SERVICES AUTHORITY" + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNCEL" + }, + "display": "YORKSHIRE HOMECARE LIMITED" + }, + "source": { + "name": "YORKSHIRE HOMECARE LIMITED", + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/VNCEL" + }, + "reason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/message-reason-prescription", + "code": "notification", + "display": "Notification" + } + ] + }, + "response": { + "identifier": "999f9999-9999-9999-9ff9-f9fff9999999", + "code": "ok" + }, + "focus": [ + { + "reference": "urn:uuid:4509b70d-d8b8-ea03-1105-64557cb54a29" + } + ] + } + }, + { + "fullUrl": "urn:uuid:4509b70d-d8b8-ea03-1105-64557cb54a29", + "resource": { + "resourceType": "MedicationDispense", + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "organization": { + "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "02380798431" + } + ] + }, + { + "resourceType": "MedicationRequest", + "id": "m1", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "b3edb17a-1fb6-4c47-af0d-459d6d6d3896" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "325427002", + "display": "Prednisolone 5mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "authoredOn": "2022-11-21T11:37:15.572Z", + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "887228-510420-124913", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "40A4D7A0-1FC1-4004-97E5-A0985F8E8F4C" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "sequence": 1, + "text": "2 tablets to be taken at 08:00 for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d", + "timeOfDay": [ + "08:00:00" + ] + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 1, + "text": "1 tablet to be taken at 17:00 for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d", + "timeOfDay": [ + "17:00:00" + ] + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 2, + "text": "1 tablet to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 8, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "validityPeriod": { + "start": "2022-10-20", + "end": "2023-03-20" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FK994" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + ], + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "code": "0006", + "display": "Dispensed" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", + "value": "b3edb17a-1fb6-4c47-af0d-459d6d6d3896" + } + ], + "status": "completed", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "325427002", + "display": "Prednisolone 5mg tablets" + } + ] + }, + "subject": { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304106" + }, + "display": "MR ZACKERY NICODEMUS LEGASSICK" + }, + "performer": [ + { + "actor": { + "reference": "#performer" + } + } + ], + "authorizingPrescription": [ + { + "reference": "#m1" + } + ], + "type": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "code": "0001", + "display": "Item fully dispensed" + } + ] + }, + "quantity": { + "value": 8, + "unit": "tablets", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "whenHandedOver": "2021-05-07T14:47:29+00:00", + "dosageInstruction": [ + { + "sequence": 1, + "text": "2 tablets to be taken at 08:00 for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d", + "timeOfDay": [ + "08:00:00" + ] + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 1, + "text": "1 tablet to be taken at 17:00 for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d", + "timeOfDay": [ + "17:00:00" + ] + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 2, + "text": "1 tablet to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b", + "resource": { + "resourceType": "Organization", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ODS-OrganisationRelationships", + "extension": [ + { + "url": "reimbursementAuthority", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-and-concurrent-dosage-instructions/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-and-concurrent-dosage-instructions/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..46c7d8ac --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-and-concurrent-dosage-instructions/1-Process-Request-Send-200_OK.json @@ -0,0 +1,580 @@ +{ + "resourceType": "Bundle", + "id": "ecb29fe1-d2bc-40e3-9279-702c210c3c51", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "28efc4e6-73e7-4f91-bc9f-ac587dbd3ec5" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:ecb29fe1-d2bc-40e3-9279-702c210c3c51", + "resource": { + "resourceType": "MessageHeader", + "id": "98a36144-f781-4ed0-bae7-34ef58ccce15", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "X26" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:b3edb17a-1fb6-4c47-af0d-459d6d6d3896" + }, + { + "reference": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e" + } + ] + } + }, + { + "fullUrl": "urn:uuid:b3edb17a-1fb6-4c47-af0d-459d6d6d3896", + "resource": { + "resourceType": "MedicationRequest", + "id": "b3edb17a-1fb6-4c47-af0d-459d6d6d3896", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "325427002", + "display": "Prednisolone 5mg tablets" + } + ] + }, + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "b3edb17a-1fb6-4c47-af0d-459d6d6d3896" + } + ], + "status": "active", + "intent": "order", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "887228-510420-124913", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "40A4D7A0-1FC1-4004-97E5-A0985F8E8F4C" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "sequence": 1, + "text": "2 tablets to be taken at 08:00 for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d", + "timeOfDay": [ + "08:00:00" + ] + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 1, + "text": "1 tablet to be taken at 17:00 for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d", + "timeOfDay": [ + "17:00:00" + ] + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 2, + "text": "1 tablet to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 8, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "validityPeriod": { + "start": "2022-10-20", + "end": "2023-03-20" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FK994" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304106" + } + ], + "name": [ + { + "use": "usual", + "family": "LEGASSICK", + "given": [ + "NICODEMUS", + "ZACKERY" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1994-03-19", + "address": [ + { + "use": "home", + "line": [ + "11 LITTLEHEATH LANE", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QG" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "7020134158" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "G9999999" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "70201123456" + } + ], + "name": [ + { + "family": "Edwards", + "given": [ + "Thomas" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "197", + "display": "NHS TRUST" + } + ] + } + ], + "name": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST", + "address": [ + { + "line": [ + "MUSGROVE PARK HOSPITAL", + "PARKFIELD DRIVE", + "TAUNTON" + ], + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:54b0506d-49af-4245-9d40-d7d64902055e", + "resource": { + "resourceType": "HealthcareService", + "id": "54b0506d-49af-4245-9d40-d7d64902055e", + "identifier": [ + { + "use": "usual", + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "active": true, + "providedBy": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + } + }, + "location": [ + { + "reference": "urn:uuid:8a5d7d67-64fb-44ec-9802-2dc214bb3dcb" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:8a5d7d67-64fb-44ec-9802-2dc214bb3dcb", + "resource": { + "resourceType": "Location", + "id": "8a5d7d67-64fb-44ec-9802-2dc214bb3dcb", + "identifier": [ + { + "value": "10008800708" + } + ], + "status": "active", + "mode": "instance", + "address": { + "use": "work", + "line": [ + "MUSGROVE PARK HOSPITAL" + ], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + } + }, + { + "fullUrl": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e", + "resource": { + "resourceType": "CommunicationRequest", + "status": "unknown", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "payload": [ + { + "contentReference": { + "reference": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "display": "List of Repeat Medications for re-ordering" + } + } + ], + "requester": { + "type": "Organization", + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + }, + "recipient": [ + { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9453740519" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "resource": { + "resourceType": "List", + "status": "current", + "mode": "snapshot", + "code": { + "text": "Repeat Medications" + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "entry": [ + { + "item": { + "display": "Metformin 500mg tablets" + } + }, + { + "item": { + "display": "Aspirin 75mg dispersible tablets" + } + }, + { + "item": { + "display": "Simvastatin 40mg tablets" + } + }, + { + "item": { + "display": "Chloramphenicol 0.5% eye drops" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:30+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+cTltTE1HMkFER1pGc2cxT0wzR0lKeWVYbTRVPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-and-concurrent-dosage-instructions/1-Task-Request-Release-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-and-concurrent-dosage-instructions/1-Task-Request-Release-200_OK.json new file mode 100644 index 00000000..88b05ff2 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-and-concurrent-dosage-instructions/1-Task-Request-Release-200_OK.json @@ -0,0 +1,100 @@ +{ + "resourceType": "Parameters", + "id": "d362a2c5-d982-4de0-84a2-2eaf9ea20d00", + "parameter": [ + { + "name": "owner", + "resource": { + "resourceType": "Organization", + "id": "organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + }, + { + "name": "status", + "valueCode": "accepted" + }, + { + "name": "agent", + "resource": { + "resourceType": "PractitionerRole", + "id": "16708936-6397-4e03-b84f-4aaa790633e0", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "02380798431", + "use": "work" + } + ] + } + }, + { + "name": "group-identifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "887228-510420-124913" + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-dosage-instructions/1-Prepare-Request-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-dosage-instructions/1-Prepare-Request-200_OK.json new file mode 100644 index 00000000..384649a0 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-dosage-instructions/1-Prepare-Request-200_OK.json @@ -0,0 +1,647 @@ +{ + "resourceType": "Bundle", + "id": "aef77afb-7e3c-427a-8657-2c427f71a272", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "4bbc97c0-f16d-4d82-85c8-c3cc62f8bd78" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:aef77afb-7e3c-427a-8657-2c427f71a272", + "resource": { + "resourceType": "MessageHeader", + "id": "0fca2887-7235-4ea2-a82e-4c3007357a3f", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "X26" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:f0521c5e-c946-4db4-bf80-dd82fc1fc90d" + }, + { + "reference": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e" + } + ] + } + }, + { + "fullUrl": "urn:uuid:f0521c5e-c946-4db4-bf80-dd82fc1fc90d", + "resource": { + "resourceType": "MedicationRequest", + "id": "f0521c5e-c946-4db4-bf80-dd82fc1fc90d", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "f0521c5e-c946-4db4-bf80-dd82fc1fc90d" + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "325427002", + "display": "Prednisolone 5mg tablets" + } + ] + }, + "status": "active", + "intent": "order", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "628738-A83008-7EFE6P", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "5b6a427a-c24c-4b16-9d3f-59a794280dc3" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "sequence": 1, + "text": "EIGHT (8) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 8, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 2, + "text": "SEVEN (7) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 7, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 3, + "text": "SIX (6) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 6, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 4, + "text": "FIVE (5) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 5, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 5, + "text": "FOUR (4) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 6, + "text": "THREE (3) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 7, + "text": "TWO (2) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 72, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "validityPeriod": { + "start": "2022-10-20", + "end": "2023-03-20" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FK994" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304106" + } + ], + "name": [ + { + "use": "usual", + "family": "LEGASSICK", + "given": [ + "NICODEMUS", + "ZACKERY" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1994-03-19", + "address": [ + { + "use": "home", + "line": [ + "11 LITTLEHEATH LANE", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QG" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "7020134158" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "G9999999" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "70201123456" + } + ], + "name": [ + { + "family": "Edwards", + "given": [ + "Thomas" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "197", + "display": "NHS TRUST" + } + ] + } + ], + "name": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST", + "address": [ + { + "line": [ + "MUSGROVE PARK HOSPITAL", + "PARKFIELD DRIVE", + "TAUNTON" + ], + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:54b0506d-49af-4245-9d40-d7d64902055e", + "resource": { + "resourceType": "HealthcareService", + "id": "54b0506d-49af-4245-9d40-d7d64902055e", + "identifier": [ + { + "use": "usual", + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "active": true, + "providedBy": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + } + }, + "location": [ + { + "reference": "urn:uuid:8a5d7d67-64fb-44ec-9802-2dc214bb3dcb" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:8a5d7d67-64fb-44ec-9802-2dc214bb3dcb", + "resource": { + "resourceType": "Location", + "id": "8a5d7d67-64fb-44ec-9802-2dc214bb3dcb", + "identifier": [ + { + "value": "10008800708" + } + ], + "status": "active", + "mode": "instance", + "address": { + "use": "work", + "line": [ + "MUSGROVE PARK HOSPITAL" + ], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + } + }, + { + "fullUrl": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e", + "resource": { + "resourceType": "CommunicationRequest", + "status": "unknown", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "payload": [ + { + "contentReference": { + "reference": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "display": "List of Repeat Medications for re-ordering" + } + } + ], + "requester": { + "type": "Organization", + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + }, + "recipient": [ + { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9453740519" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "resource": { + "resourceType": "List", + "status": "current", + "mode": "snapshot", + "code": { + "text": "Repeat Medications" + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "entry": [ + { + "item": { + "display": "Metformin 500mg tablets" + } + }, + { + "item": { + "display": "Aspirin 75mg dispersible tablets" + } + }, + { + "item": { + "display": "Simvastatin 40mg tablets" + } + }, + { + "item": { + "display": "Chloramphenicol 0.5% eye drops" + } + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-dosage-instructions/1-Prepare-Response-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-dosage-instructions/1-Prepare-Response-200_OK.json new file mode 100644 index 00000000..496c0360 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-dosage-instructions/1-Prepare-Response-200_OK.json @@ -0,0 +1,17 @@ +{ + "resourceType": "Parameters", + "parameter": [ + { + "name": "digest", + "valueString": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+M3dYMFd6dXhxK3pPMkFtZ2R4Mk1tSDRKeVRBPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + }, + { + "name": "timestamp", + "valueString": "2023-04-12T15:52:10+00:00" + }, + { + "name": "algorithm", + "valueString": "RS1" + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-dosage-instructions/1-Process-Request-Dispense-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-dosage-instructions/1-Process-Request-Dispense-200_OK.json new file mode 100644 index 00000000..898a0898 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-dosage-instructions/1-Process-Request-Dispense-200_OK.json @@ -0,0 +1,745 @@ +{ + "resourceType": "Bundle", + "id": "166f1103-3r67-73dw-7364-s395c4itv284", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "a22ad970-417c-4b0d-9c18-19a54761b478" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:be807dac-9dcf-45cf-91d6-70d9d58dcf34", + "resource": { + "resourceType": "MessageHeader", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "dispense-notification", + "display": "Dispense Notification" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + }, + "display": "NHS BUSINESS SERVICES AUTHORITY" + } + } + ], + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNCEL" + }, + "display": "YORKSHIRE HOMECARE LIMITED" + }, + "source": { + "name": "YORKSHIRE HOMECARE LIMITED", + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/VNCEL" + }, + "reason": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/message-reason-prescription", + "code": "notification", + "display": "Notification" + } + ] + }, + "response": { + "identifier": "999f9999-9999-9999-9ff9-f9fff9999999", + "code": "ok" + }, + "focus": [ + { + "reference": "urn:uuid:4509b70d-d8b8-ea03-1105-64557cb54a29" + } + ] + } + }, + { + "fullUrl": "urn:uuid:4509b70d-d8b8-ea03-1105-64557cb54a29", + "resource": { + "resourceType": "MedicationDispense", + "contained": [ + { + "resourceType": "PractitionerRole", + "id": "performer", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "organization": { + "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "02380798431" + } + ] + }, + { + "resourceType": "MedicationRequest", + "id": "m1", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "f0521c5e-c946-4db4-bf80-dd82fc1fc90d" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "325427002", + "display": "Prednisolone 5mg tablets" + } + ] + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "authoredOn": "2022-11-21T11:37:15.572Z", + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "628738-A83008-7EFE6P", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "5b6a427a-c24c-4b16-9d3f-59a794280dc3" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "sequence": 1, + "text": "EIGHT (8) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 8, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 2, + "text": "SEVEN (7) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 7, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 3, + "text": "SIX (6) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 6, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 4, + "text": "FIVE (5) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 5, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 5, + "text": "FOUR (4) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 6, + "text": "THREE (3) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 7, + "text": "TWO (2) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 72, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "validityPeriod": { + "start": "2022-10-20", + "end": "2023-03-20" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FK994" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + ], + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status", + "code": "0006", + "display": "Dispensed" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", + "value": "f0521c5e-c946-4db4-bf80-dd82fc1fc90d" + } + ], + "status": "completed", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "325427002", + "display": "Prednisolone 5mg tablets" + } + ] + }, + "subject": { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304106" + }, + "display": "MR ZACKERY NICODEMUS LEGASSICK" + }, + "performer": [ + { + "actor": { + "reference": "#performer" + } + } + ], + "authorizingPrescription": [ + { + "reference": "#m1" + } + ], + "type": { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", + "code": "0001", + "display": "Item fully dispensed" + } + ] + }, + "quantity": { + "value": 72, + "unit": "tablets", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "whenHandedOver": "2021-05-07T14:47:29+00:00", + "dosageInstruction": [ + { + "sequence": 1, + "text": "EIGHT (8) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 8, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 2, + "text": "SEVEN (7) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 7, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 3, + "text": "SIX (6) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 6, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 4, + "text": "FIVE (5) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 5, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 5, + "text": "FOUR (4) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 6, + "text": "THREE (3) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 7, + "text": "TWO (2) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 8, + "text": "ONE (1) tablet to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b", + "resource": { + "resourceType": "Organization", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ODS-OrganisationRelationships", + "extension": [ + { + "url": "reimbursementAuthority", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "T1450" + } + } + ] + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-dosage-instructions/1-Process-Request-Send-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-dosage-instructions/1-Process-Request-Send-200_OK.json new file mode 100644 index 00000000..f02b25b3 --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-dosage-instructions/1-Process-Request-Send-200_OK.json @@ -0,0 +1,682 @@ +{ + "resourceType": "Bundle", + "id": "aef77afb-7e3c-427a-8657-2c427f71a272", + "identifier": { + "system": "https://tools.ietf.org/html/rfc4122", + "value": "4bbc97c0-f16d-4d82-85c8-c3cc62f8bd78" + }, + "type": "message", + "entry": [ + { + "fullUrl": "urn:uuid:aef77afb-7e3c-427a-8657-2c427f71a272", + "resource": { + "resourceType": "MessageHeader", + "id": "0fca2887-7235-4ea2-a82e-4c3007357a3f", + "eventCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/message-event", + "code": "prescription-order", + "display": "Prescription Order" + }, + "sender": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "display": "RAZIA|ALI" + }, + "source": { + "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA" + }, + "destination": [ + { + "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message", + "receiver": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "X26" + } + } + } + ], + "focus": [ + { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + { + "reference": "urn:uuid:f0521c5e-c946-4db4-bf80-dd82fc1fc90d" + }, + { + "reference": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e" + } + ] + } + }, + { + "fullUrl": "urn:uuid:f0521c5e-c946-4db4-bf80-dd82fc1fc90d", + "resource": { + "resourceType": "MedicationRequest", + "id": "f0521c5e-c946-4db4-bf80-dd82fc1fc90d", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "code": "0101", + "display": "Primary Care Prescriber - Medical Prescriber" + } + } + ], + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", + "value": "f0521c5e-c946-4db4-bf80-dd82fc1fc90d" + } + ], + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "325427002", + "display": "Prednisolone 5mg tablets" + } + ] + }, + "status": "active", + "intent": "order", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", + "code": "community", + "display": "Community" + } + ] + } + ], + "requester": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "groupIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "628738-A83008-7EFE6P", + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription", + "value": "5b6a427a-c24c-4b16-9d3f-59a794280dc3" + } + } + ] + }, + "courseOfTherapyType": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", + "code": "acute", + "display": "Short course (acute) therapy" + } + ] + }, + "dosageInstruction": [ + { + "sequence": 1, + "text": "EIGHT (8) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 8, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 2, + "text": "SEVEN (7) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 7, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 3, + "text": "SIX (6) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 6, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 4, + "text": "FIVE (5) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 5, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 5, + "text": "FOUR (4) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 4, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 6, + "text": "THREE (3) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + }, + { + "sequence": 7, + "text": "TWO (2) tablets to be taken DAILY for two days. Take these tablets with or after food.", + "timing": { + "repeat": { + "boundsDuration": { + "value": 2, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 5, + "unit": "milligram", + "system": "http://unitsofmeasure.org", + "code": "mg" + } + } + ] + } + ], + "dispenseRequest": { + "extension": [ + { + "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", + "valueCoding": { + "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", + "code": "P1" + } + } + ], + "quantity": { + "value": 72, + "unit": "tablet", + "system": "http://snomed.info/sct", + "code": "428673006" + }, + "validityPeriod": { + "start": "2022-10-20", + "end": "2023-03-20" + }, + "expectedSupplyDuration": { + "value": 30, + "unit": "day", + "system": "http://unitsofmeasure.org", + "code": "d" + }, + "performer": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "FK994" + } + } + }, + "substitution": { + "allowedBoolean": false + } + } + }, + { + "fullUrl": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2", + "resource": { + "resourceType": "Patient", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9449304106" + } + ], + "name": [ + { + "use": "usual", + "family": "LEGASSICK", + "given": [ + "NICODEMUS", + "ZACKERY" + ], + "prefix": [ + "MR" + ] + } + ], + "gender": "male", + "birthDate": "1994-03-19", + "address": [ + { + "use": "home", + "line": [ + "11 LITTLEHEATH LANE", + "COBHAM", + "SURREY" + ], + "postalCode": "KT11 2QG" + } + ], + "generalPractitioner": [ + { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B81001" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666", + "resource": { + "resourceType": "PractitionerRole", + "id": "56166769-c1c4-4d07-afa8-132b5dfca666", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "100102238986" + } + ], + "practitioner": { + "reference": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a" + }, + "organization": { + "reference": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "01234567890", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "resource": { + "resourceType": "Practitioner", + "id": "a8c85454-f8cb-498d-9629-78e2cb5fa47a", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "7020134158" + }, + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "G9999999" + }, + { + "system": "https://fhir.hl7.org.uk/Id/din-number", + "value": "70201123456" + } + ], + "name": [ + { + "family": "Edwards", + "given": [ + "Thomas" + ], + "prefix": [ + "DR" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "resource": { + "resourceType": "Organization", + "id": "3b4b03a5-52ba-4ba6-9b82-70350aa109d8", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + } + ], + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "197", + "display": "NHS TRUST" + } + ] + } + ], + "name": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST", + "address": [ + { + "line": [ + "MUSGROVE PARK HOSPITAL", + "PARKFIELD DRIVE", + "TAUNTON" + ], + "postalCode": "TA1 5DA" + } + ], + "telecom": [ + { + "system": "phone", + "value": "01823333444", + "use": "work" + } + ], + "partOf": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + } + } + }, + { + "fullUrl": "urn:uuid:54b0506d-49af-4245-9d40-d7d64902055e", + "resource": { + "resourceType": "HealthcareService", + "id": "54b0506d-49af-4245-9d40-d7d64902055e", + "identifier": [ + { + "use": "usual", + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "A99968" + } + ], + "active": true, + "providedBy": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + } + }, + "location": [ + { + "reference": "urn:uuid:8a5d7d67-64fb-44ec-9802-2dc214bb3dcb" + } + ], + "name": "SOMERSET BOWEL CANCER SCREENING CENTRE", + "telecom": [ + { + "system": "phone", + "value": "01823 333444", + "use": "work" + } + ] + } + }, + { + "fullUrl": "urn:uuid:8a5d7d67-64fb-44ec-9802-2dc214bb3dcb", + "resource": { + "resourceType": "Location", + "id": "8a5d7d67-64fb-44ec-9802-2dc214bb3dcb", + "identifier": [ + { + "value": "10008800708" + } + ], + "status": "active", + "mode": "instance", + "address": { + "use": "work", + "line": [ + "MUSGROVE PARK HOSPITAL" + ], + "city": "TAUNTON", + "postalCode": "TA1 5DA" + } + } + }, + { + "fullUrl": "urn:uuid:51793ac0-112f-46c7-a891-9af8cefb206e", + "resource": { + "resourceType": "CommunicationRequest", + "status": "unknown", + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "payload": [ + { + "contentReference": { + "reference": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "display": "List of Repeat Medications for re-ordering" + } + } + ], + "requester": { + "type": "Organization", + "identifier": { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "RBA" + }, + "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST" + }, + "recipient": [ + { + "type": "Patient", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9453740519" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9", + "resource": { + "resourceType": "List", + "status": "current", + "mode": "snapshot", + "code": { + "text": "Repeat Medications" + }, + "subject": { + "reference": "urn:uuid:78d3c2eb-009e-4ec8-a358-b042954aa9b2" + }, + "entry": [ + { + "item": { + "display": "Metformin 500mg tablets" + } + }, + { + "item": { + "display": "Aspirin 75mg dispersible tablets" + } + }, + { + "item": { + "display": "Simvastatin 40mg tablets" + } + }, + { + "item": { + "display": "Chloramphenicol 0.5% eye drops" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:28828c55-8fa7-42d7-916f-fcf076e0c10e", + "resource": { + "resourceType": "Provenance", + "id": "28828c55-8fa7-42d7-916f-fcf076e0c10e", + "target": [ + { + "reference": "urn:uuid:a54219b8-f741-4c47-b662-e4f8dfa49ab6" + } + ], + "recorded": "2008-02-27T11:38:00+00:00", + "agent": [ + { + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + } + } + ], + "signature": [ + { + "type": [ + { + "system": "urn:iso-astm:E1762-95:2013", + "code": "1.2.840.10065.1.12.1.1" + } + ], + "when": "2021-05-07T14:47:30+00:00", + "who": { + "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666" + }, + "data": "PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+cTltTE1HMkFER1pGc2cxT0wzR0lKeWVYbTRVPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPg==" + } + ] + } + } + ] +} diff --git a/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-dosage-instructions/1-Task-Request-Release-200_OK.json b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-dosage-instructions/1-Task-Request-Release-200_OK.json new file mode 100644 index 00000000..d8b5695b --- /dev/null +++ b/src/test/resources/examples/full_examples/secondary-care/homecare/acute/nominated-pharmacy/consecutive-dosage-instructions/1-Task-Request-Release-200_OK.json @@ -0,0 +1,100 @@ +{ + "resourceType": "Parameters", + "id": "fe8bb8a3-9989-45d5-8764-2bac1f1ad409", + "parameter": [ + { + "name": "owner", + "resource": { + "resourceType": "Organization", + "id": "organization", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "VNE51" + } + ], + "address": [ + { + "city": "West Yorkshire", + "use": "work", + "line": [ + "17 Austhorpe Road", + "Crossgates", + "Leeds" + ], + "postalCode": "LS15 8BA" + } + ], + "active": true, + "type": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/organisation-role", + "code": "182", + "display": "PHARMACY" + } + ] + } + ], + "name": "The Simple Pharmacy", + "telecom": [ + { + "system": "phone", + "use": "work", + "value": "0113 3180277" + } + ] + } + }, + { + "name": "status", + "valueCode": "accepted" + }, + { + "name": "agent", + "resource": { + "resourceType": "PractitionerRole", + "id": "16708936-6397-4e03-b84f-4aaa790633e0", + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", + "value": "555086415105" + } + ], + "practitioner": { + "identifier": { + "system": "https://fhir.nhs.uk/Id/sds-user-id", + "value": "3415870201" + }, + "display": "Jackie Clark" + }, + "code": [ + { + "coding": [ + { + "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", + "code": "S8000:G8000:R8000", + "display": "Clinical Practitioner Access Role" + } + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "02380798431", + "use": "work" + } + ] + } + }, + { + "name": "group-identifier", + "valueIdentifier": { + "system": "https://fhir.nhs.uk/Id/prescription-order-number", + "value": "628738-A83008-7EFE6P" + } + } + ] +} From 554cd7804c2d5e6b530ed7952d0ec3e70e4e3e9f Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Wed, 28 May 2025 14:36:00 +0000 Subject: [PATCH 32/35] deploy to ref --- .github/workflows/pull_request.yml | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 97472e00..aac4fce7 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -59,7 +59,7 @@ jobs: needs: get_issue_number uses: ./.github/workflows/sam_package_code.yml - release_code: + release_dev: needs: [get_issue_number, package_code, get_commit_id] uses: ./.github/workflows/sam_release_code.yml with: @@ -74,3 +74,18 @@ jobs: ENABLE_ALERTS: false secrets: CLOUD_FORMATION_DEPLOY_ROLE: ${{ secrets.DEV_CLOUD_FORMATION_DEPLOY_ROLE }} + release_ref: + needs: [release_dev, package_code, get_commit_id] + uses: ./.github/workflows/sam_release_code.yml + with: + ARTIFACT_BUCKET_PREFIX: fhir-validator-PR-${{needs.get_issue_number.outputs.issue_number}} + STACK_NAME: fhir-validator + TARGET_ENVIRONMENT: ref + BUILD_ARTIFACT: packaged_code + VERSION_NUMBER: fhir-validator-PR-${{ needs.get_issue_number.outputs.issue_number }} + COMMIT_ID: ${{needs.get_commit_id.outputs.commit_id}} + LOG_LEVEL: INFO + LOG_RETENTION_DAYS: 30 + ENABLE_ALERTS: true + secrets: + CLOUD_FORMATION_DEPLOY_ROLE: ${{ secrets.REF_CLOUD_FORMATION_DEPLOY_ROLE }} From d7c7691f3f49a392aa5c02ae3ccd328023e130a9 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Wed, 28 May 2025 14:43:19 +0000 Subject: [PATCH 33/35] fix it --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index aac4fce7..042b3087 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -75,7 +75,7 @@ jobs: secrets: CLOUD_FORMATION_DEPLOY_ROLE: ${{ secrets.DEV_CLOUD_FORMATION_DEPLOY_ROLE }} release_ref: - needs: [release_dev, package_code, get_commit_id] + needs: [release_dev, get_issue_number, package_code, get_commit_id] uses: ./.github/workflows/sam_release_code.yml with: ARTIFACT_BUCKET_PREFIX: fhir-validator-PR-${{needs.get_issue_number.outputs.issue_number}} From 5e7b8a0891a8a6432877e3da538780b54da88ef3 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 1 Jul 2025 13:59:25 +0000 Subject: [PATCH 34/35] fix stack name --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 042b3087..8a3205e2 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -79,7 +79,7 @@ jobs: uses: ./.github/workflows/sam_release_code.yml with: ARTIFACT_BUCKET_PREFIX: fhir-validator-PR-${{needs.get_issue_number.outputs.issue_number}} - STACK_NAME: fhir-validator + STACK_NAME: fhir-validator-pr-${{needs.get_issue_number.outputs.issue_number}} TARGET_ENVIRONMENT: ref BUILD_ARTIFACT: packaged_code VERSION_NUMBER: fhir-validator-PR-${{ needs.get_issue_number.outputs.issue_number }} From 71bad543211671c6a72a5840ebf100aacef82f96 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 1 Jul 2025 19:12:41 +0000 Subject: [PATCH 35/35] allow egress to get insights working? --- SAMtemplates/main_template.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SAMtemplates/main_template.yaml b/SAMtemplates/main_template.yaml index d1fda5b0..fcc9144b 100644 --- a/SAMtemplates/main_template.yaml +++ b/SAMtemplates/main_template.yaml @@ -93,8 +93,9 @@ Resources: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Limits security group egress traffic + # fix this to allow egress to service endpoints? SecurityGroupEgress: - - CidrIp: 127.0.0.1/32 + - CidrIp: 0.0.0.0/0 IpProtocol: "-1" SecurityGroupIngress: - CidrIp: 0.0.0.0/0

        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 C*4h97 diff --git a/latest/src/main/resources/package/uk.nhsdigital.r4.test-2.8.17-prerelease.tgz b/latest/src/main/resources/package/uk.nhsdigital.r4.test-2.8.17-prerelease.tgz deleted file mode 100644 index a9ce96475e63b85ab4910b64df57c30800497344..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 373290 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 |Jm;7;1>i0Q=Z;# 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%0AIsM}#BIwr9JvH3vdx{CO;gk|xZmLtOA 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 z`*crsvlakE$d4Ill`j&}e6000000000000000000000Q@&k S0R#|0fB^v4D!x|$I41zvkqg2A diff --git a/scripts/download_dependencies.py b/scripts/download_dependencies.py index eef3eb30..7d6dd048 100755 --- a/scripts/download_dependencies.py +++ b/scripts/download_dependencies.py @@ -4,17 +4,18 @@ import requests -def download_dependencies(manifest_file): - with open(f"src/main/resources/{manifest_file}", "r") as manifestFile: +def download_dependencies(manifest_file, path): + with open(f"{path}/src/main/resources/{manifest_file}", "r") as manifestFile: manifestStr = manifestFile.read() manifest = json.loads(manifestStr) for entry in manifest: packageName = entry["packageName"] version = entry["version"] packageData = requests.get(f"https://packages.simplifier.net/{packageName}/{version}").content - with open(f"src/main/resources/{packageName}-{version}.tgz", "wb") as packageFile: + with open(f"{path}/src/main/resources/{packageName}-{version}.tgz", "wb") as packageFile: packageFile.write(packageData) -download_dependencies("nhs_digital.manifest.json") -download_dependencies("uk_core.manifest.json") +download_dependencies("nhs_digital.manifest.json", "latest") +download_dependencies("uk_core.manifest.json", "latest") +download_dependencies("nhs_digital.manifest.json", "legacy") From e6f3876b3dbe6ab719a930f8b6b850e977ae490d Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Sat, 3 May 2025 12:55:02 +0000 Subject: [PATCH 06/35] remove unused files --- legacy/src/main/resources/package/.gitkeep | 0 ...ore.stu3.currentbuild-0.0.9-pre-release.tgz | Bin 226203 -> 0 bytes ...tal.medicines.r4.test-2.8.16-prerelease.tgz | Bin 127233 -> 0 bytes ...uk.nhsdigital.r4.test-2.8.17-prerelease.tgz | Bin 373290 -> 0 bytes 4 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 legacy/src/main/resources/package/.gitkeep delete mode 100644 legacy/src/main/resources/package/fhir.r4.ukcore.stu3.currentbuild-0.0.9-pre-release.tgz delete mode 100644 legacy/src/main/resources/package/uk.nhsdigital.medicines.r4.test-2.8.16-prerelease.tgz delete mode 100644 legacy/src/main/resources/package/uk.nhsdigital.r4.test-2.8.17-prerelease.tgz diff --git a/legacy/src/main/resources/package/.gitkeep b/legacy/src/main/resources/package/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/legacy/src/main/resources/package/fhir.r4.ukcore.stu3.currentbuild-0.0.9-pre-release.tgz b/legacy/src/main/resources/package/fhir.r4.ukcore.stu3.currentbuild-0.0.9-pre-release.tgz deleted file mode 100644 index dfa8424b8402bad7b9baa30e3dc2f8383ab559da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226203 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 OL^khh->&oXNDoq-Zg5y9Z(lr&SpCU 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 UfhJ85AH8zkF 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 C*4h97 literal 0 HcmV?d00001 diff --git a/latest/src/main/resources/package/uk.nhsdigital.r4.test-2.8.17-prerelease.tgz b/latest/src/main/resources/package/uk.nhsdigital.r4.test-2.8.17-prerelease.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a9ce96475e63b85ab4910b64df57c30800497344 GIT binary patch literal 373290 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 |Jm;7;1>i0Q=Z;# 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%0AIsM}#BIwr9JvH3vdx{CO;gk|xZmLtOA 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 z`*crsvlakE$d4Ill`j&}e6000000000000000000000Q@&k S0R#|0fB^v4D!x|$I41zvkqg2A literal 0 HcmV?d00001 diff --git a/src/main/resources/primerPayload.json b/latest/src/main/resources/primerPayload.json similarity index 99% rename from src/main/resources/primerPayload.json rename to latest/src/main/resources/primerPayload.json index e3db6e19..648561e3 100644 --- a/src/main/resources/primerPayload.json +++ b/latest/src/main/resources/primerPayload.json @@ -464,4 +464,4 @@ } } ] -} \ No newline at end of file +} diff --git a/src/main/resources/uk_core.manifest.json b/latest/src/main/resources/uk_core.manifest.json similarity index 100% rename from src/main/resources/uk_core.manifest.json rename to latest/src/main/resources/uk_core.manifest.json diff --git a/src/test/java/software/nhs/fhirvalidator/HandlerTest.java b/latest/src/test/java/software/nhs/fhirvalidator/HandlerTest.java similarity index 100% rename from src/test/java/software/nhs/fhirvalidator/HandlerTest.java rename to latest/src/test/java/software/nhs/fhirvalidator/HandlerTest.java diff --git a/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java b/latest/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java similarity index 100% rename from src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java rename to latest/src/test/java/software/nhs/fhirvalidator/Validator_nhs_digital_Test.java diff --git a/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java b/latest/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java similarity index 100% rename from src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java rename to latest/src/test/java/software/nhs/fhirvalidator/Validator_uk_core_Test.java diff --git a/src/test/resources/examples/invalidBundle.json b/latest/src/test/resources/examples/invalidBundle.json similarity index 99% rename from src/test/resources/examples/invalidBundle.json rename to latest/src/test/resources/examples/invalidBundle.json index 5dad6349..0d8d7427 100644 --- a/src/test/resources/examples/invalidBundle.json +++ b/latest/src/test/resources/examples/invalidBundle.json @@ -373,4 +373,4 @@ } } ] -} \ No newline at end of file +} diff --git a/src/test/resources/examples/invalidOperationOutcome.json b/latest/src/test/resources/examples/invalidOperationOutcome.json similarity index 98% rename from src/test/resources/examples/invalidOperationOutcome.json rename to latest/src/test/resources/examples/invalidOperationOutcome.json index 417929f4..26800155 100644 --- a/src/test/resources/examples/invalidOperationOutcome.json +++ b/latest/src/test/resources/examples/invalidOperationOutcome.json @@ -3,4 +3,4 @@ "meta": { "lastUpdated": "2022-10-21T13:47:00+00:00" } -} \ No newline at end of file +} diff --git a/src/test/resources/examples/invalidParameters.json b/latest/src/test/resources/examples/invalidParameters.json similarity index 98% rename from src/test/resources/examples/invalidParameters.json rename to latest/src/test/resources/examples/invalidParameters.json index 752d9d30..a7a447b2 100644 --- a/src/test/resources/examples/invalidParameters.json +++ b/latest/src/test/resources/examples/invalidParameters.json @@ -5,4 +5,4 @@ "name": "timestamp" } ] -} \ No newline at end of file +} diff --git a/src/test/resources/examples/missingHeader.json b/latest/src/test/resources/examples/missingHeader.json similarity index 100% rename from src/test/resources/examples/missingHeader.json rename to latest/src/test/resources/examples/missingHeader.json diff --git a/src/test/resources/examples/psu_update.json b/latest/src/test/resources/examples/psu_update.json similarity index 100% rename from src/test/resources/examples/psu_update.json rename to latest/src/test/resources/examples/psu_update.json diff --git a/src/test/resources/examples/searchSet.json b/latest/src/test/resources/examples/searchSet.json similarity index 100% rename from src/test/resources/examples/searchSet.json rename to latest/src/test/resources/examples/searchSet.json diff --git a/src/test/resources/examples/stepFunctionEvent.json b/latest/src/test/resources/examples/stepFunctionEvent.json similarity index 100% rename from src/test/resources/examples/stepFunctionEvent.json rename to latest/src/test/resources/examples/stepFunctionEvent.json diff --git a/src/test/resources/examples/validBundle.json b/latest/src/test/resources/examples/validBundle.json similarity index 100% rename from src/test/resources/examples/validBundle.json rename to latest/src/test/resources/examples/validBundle.json diff --git a/src/test/resources/examples/validOperationOutcome.json b/latest/src/test/resources/examples/validOperationOutcome.json similarity index 99% rename from src/test/resources/examples/validOperationOutcome.json rename to latest/src/test/resources/examples/validOperationOutcome.json index 1384ac80..4d90c94d 100644 --- a/src/test/resources/examples/validOperationOutcome.json +++ b/latest/src/test/resources/examples/validOperationOutcome.json @@ -9,4 +9,4 @@ "code": "informational" } ] -} \ No newline at end of file +} diff --git a/src/test/resources/examples/validParameters.json b/latest/src/test/resources/examples/validParameters.json similarity index 98% rename from src/test/resources/examples/validParameters.json rename to latest/src/test/resources/examples/validParameters.json index f03f3803..4e86b816 100644 --- a/src/test/resources/examples/validParameters.json +++ b/latest/src/test/resources/examples/validParameters.json @@ -6,4 +6,4 @@ "valueString": "2022-10-25T10:24:34+00:00" } ] -} \ No newline at end of file +} diff --git a/src/test/resources/logback-test.xml b/latest/src/test/resources/logback-test.xml similarity index 100% rename from src/test/resources/logback-test.xml rename to latest/src/test/resources/logback-test.xml diff --git a/src/test/resources/results/array.json b/latest/src/test/resources/results/array.json similarity index 100% rename from src/test/resources/results/array.json rename to latest/src/test/resources/results/array.json diff --git a/src/test/resources/results/bad_json.json b/latest/src/test/resources/results/bad_json.json similarity index 100% rename from src/test/resources/results/bad_json.json rename to latest/src/test/resources/results/bad_json.json diff --git a/src/test/resources/results/boolean_json.json b/latest/src/test/resources/results/boolean_json.json similarity index 100% rename from src/test/resources/results/boolean_json.json rename to latest/src/test/resources/results/boolean_json.json diff --git a/src/test/resources/results/empty.json b/latest/src/test/resources/results/empty.json similarity index 100% rename from src/test/resources/results/empty.json rename to latest/src/test/resources/results/empty.json diff --git a/src/test/resources/results/invalidBundle.json b/latest/src/test/resources/results/invalidBundle.json similarity index 100% rename from src/test/resources/results/invalidBundle.json rename to latest/src/test/resources/results/invalidBundle.json diff --git a/src/test/resources/results/invalidOperationOutcome.json b/latest/src/test/resources/results/invalidOperationOutcome.json similarity index 100% rename from src/test/resources/results/invalidOperationOutcome.json rename to latest/src/test/resources/results/invalidOperationOutcome.json diff --git a/src/test/resources/results/invalidParameters.json b/latest/src/test/resources/results/invalidParameters.json similarity index 100% rename from src/test/resources/results/invalidParameters.json rename to latest/src/test/resources/results/invalidParameters.json diff --git a/src/test/resources/results/missingHeader.json b/latest/src/test/resources/results/missingHeader.json similarity index 100% rename from src/test/resources/results/missingHeader.json rename to latest/src/test/resources/results/missingHeader.json diff --git a/src/test/resources/results/null_java.json b/latest/src/test/resources/results/null_java.json similarity index 100% rename from src/test/resources/results/null_java.json rename to latest/src/test/resources/results/null_java.json diff --git a/src/test/resources/results/null_json.json b/latest/src/test/resources/results/null_json.json similarity index 100% rename from src/test/resources/results/null_json.json rename to latest/src/test/resources/results/null_json.json diff --git a/src/test/resources/results/number_json.json b/latest/src/test/resources/results/number_json.json similarity index 100% rename from src/test/resources/results/number_json.json rename to latest/src/test/resources/results/number_json.json diff --git a/src/test/resources/results/psu_nhs_digital.json b/latest/src/test/resources/results/psu_nhs_digital.json similarity index 100% rename from src/test/resources/results/psu_nhs_digital.json rename to latest/src/test/resources/results/psu_nhs_digital.json diff --git a/src/test/resources/results/psu_update.json b/latest/src/test/resources/results/psu_update.json similarity index 100% rename from src/test/resources/results/psu_update.json rename to latest/src/test/resources/results/psu_update.json diff --git a/src/test/resources/results/searchSet.json b/latest/src/test/resources/results/searchSet.json similarity index 100% rename from src/test/resources/results/searchSet.json rename to latest/src/test/resources/results/searchSet.json diff --git a/src/test/resources/results/stepFunctionResult.json b/latest/src/test/resources/results/stepFunctionResult.json similarity index 100% rename from src/test/resources/results/stepFunctionResult.json rename to latest/src/test/resources/results/stepFunctionResult.json diff --git a/src/test/resources/results/successfulOperationOutcome.json b/latest/src/test/resources/results/successfulOperationOutcome.json similarity index 100% rename from src/test/resources/results/successfulOperationOutcome.json rename to latest/src/test/resources/results/successfulOperationOutcome.json diff --git a/src/test/resources/results/validBundle.json b/latest/src/test/resources/results/validBundle.json similarity index 100% rename from src/test/resources/results/validBundle.json rename to latest/src/test/resources/results/validBundle.json diff --git a/src/test/resources/results/validParameters.json b/latest/src/test/resources/results/validParameters.json similarity index 100% rename from src/test/resources/results/validParameters.json rename to latest/src/test/resources/results/validParameters.json diff --git a/src/test/resources/results/validSimpleBundle.json b/latest/src/test/resources/results/validSimpleBundle.json similarity index 100% rename from src/test/resources/results/validSimpleBundle.json rename to latest/src/test/resources/results/validSimpleBundle.json diff --git a/legacy/licenses/allowedMissingLicense.xml b/legacy/licenses/allowedMissingLicense.xml new file mode 100644 index 00000000..568b7bf9 --- /dev/null +++ b/legacy/licenses/allowedMissingLicense.xml @@ -0,0 +1,8 @@ + + + + jakarta-regexp + jakarta-regexp + 1.4 + + diff --git a/legacy/licenses/licenses.xml b/legacy/licenses/licenses.xml new file mode 100644 index 00000000..c3cb5e76 --- /dev/null +++ b/legacy/licenses/licenses.xml @@ -0,0 +1,166 @@ + + + + + The Apache Software License, Version 2.0 + + The Apache Software License, Version 2.0 + Apache License, Version 2.0 + Apache Software License 2.0 + Apache License 2.0 + + + http://www.apache.org/licenses/LICENSE-2.0.txt + https://www.apache.org/licenses/LICENSE-2.0 + https://www.apache.org/licenses/LICENSE-2.0.txt + https://www.apache.org/licenses/LICENSE-2.0 + + + + Eclipse Public License 1.0 + + Eclipse Public License 1.0 + Eclipse Public License - v 1.0 + Eclipse Distribution License - v 1.0 + + + http://www.eclipse.org/legal/epl-v10.html + http://www.eclipse.org/legal/epl-v10.html + http://www.eclipse.org/org/documents/edl-v10.php + + + + Eclipse Public License v2.0 + + Eclipse Public License v2.0 + EPL 2.0 + Eclipse Public License - v 2.0 + + + https://www.eclipse.org/legal/epl-v20.html + http://www.eclipse.org/legal/epl-2.0 + + + + + The MIT License + + The MIT License + MIT License + MIT + + + http://code.google.com/p/mockito/wiki/License + http://www.opensource.org/licenses/mit-license + https://opensource.org/licenses/MIT + + + + BSD + + BSD + + + http://asm.objectweb.org/license.html + + + + BSD License 3 + + BSD License 3 + + + http://opensource.org/licenses/BSD-3-Clause + + + + BSD-2-Clause + + BSD-2-Clause + + + https://opensource.org/licenses/BSD-2-Clause + + + + LGPL 2.1 + + LGPL 2.1 + GNU Lesser General Public License + http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + + http://www.gnu.org/licenses/lgpl-2.1.html + + + + MPL 1.1 + + MPL 1.1 + + + http://www.mozilla.org/MPL/MPL-1.1.html + + + + Mozilla Public License Version 2.0 + + Mozilla Public License Version 2.0 + + + http://www.mozilla.org/MPL/2.0/ + + + + Unicode/ICU License + + Unicode/ICU License + + + https://raw.githubusercontent.com/unicode-org/icu/main/icu4c/LICENSE + + + + GPL2 w/ CPE + + GPL2 w/ CPE + + + https://www.gnu.org/software/classpath/license.html + + + + Public Domain, per Creative Commons CC0 + + Public Domain, per Creative Commons CC0 + + + http://creativecommons.org/publicdomain/zero/1.0 + + + + Indiana University Extreme! Lab Software License, vesion 1.1.1 + + Indiana University Extreme! Lab Software License, vesion 1.1.1 + Public Domain + Apache Software License, version 1.1 + + + http://www.extreme.indiana.edu/viewcvs/~checkout~/XPP3/java/LICENSE.txt + http://creativecommons.org/licenses/publicdomain + http://www.apache.org/licenses/LICENSE-1.1 + + + + + + GNU General Public License version 2 + + GNU General Public License version 2 + + + https://opensource.org/licenses/gpl-2.0.php + + + + From 4525974fff7d08b9112f59ec70d7665aa927e94e Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Sat, 3 May 2025 12:53:03 +0000 Subject: [PATCH 05/35] make the build work --- SAMtemplates/main_template.yaml | 2 +- latest/pom.xml | 1 + .../configuration/ValidatorConfiguration.java | 2 +- latest/src/main/resources/package/.gitkeep | 0 ...ore.stu3.currentbuild-0.0.9-pre-release.tgz | Bin 226203 -> 0 bytes ...tal.medicines.r4.test-2.8.16-prerelease.tgz | Bin 127233 -> 0 bytes ...uk.nhsdigital.r4.test-2.8.17-prerelease.tgz | Bin 373290 -> 0 bytes scripts/download_dependencies.py | 11 ++++++----- 8 files changed, 9 insertions(+), 7 deletions(-) delete mode 100644 latest/src/main/resources/package/.gitkeep delete mode 100644 latest/src/main/resources/package/fhir.r4.ukcore.stu3.currentbuild-0.0.9-pre-release.tgz delete mode 100644 latest/src/main/resources/package/uk.nhsdigital.medicines.r4.test-2.8.16-prerelease.tgz delete mode 100644 latest/src/main/resources/package/uk.nhsdigital.r4.test-2.8.17-prerelease.tgz diff --git a/SAMtemplates/main_template.yaml b/SAMtemplates/main_template.yaml index 038f85b4..3411097a 100644 --- a/SAMtemplates/main_template.yaml +++ b/SAMtemplates/main_template.yaml @@ -63,7 +63,7 @@ Resources: Type: AWS::Serverless::Function Properties: FunctionName: !Sub "${AWS::StackName}-FHIRValidatorUKCore" - CodeUri: ../ + CodeUri: ../latest/ Handler: software.nhs.fhirvalidator.handler.HandlerStream::handleRequest Role: !GetAtt FHIRValidatorUKCoreResources.Outputs.LambdaRoleArn SnapStart: diff --git a/latest/pom.xml b/latest/pom.xml index 60f12ec3..a17f3e40 100644 --- a/latest/pom.xml +++ b/latest/pom.xml @@ -168,6 +168,7 @@ log4j2.xml package/* + *.tgz primerPayload.json nhs_digital.manifest.json uk_core.manifest.json diff --git a/latest/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java b/latest/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java index 3b9e39fb..25dac531 100644 --- a/latest/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java +++ b/latest/src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java @@ -64,7 +64,7 @@ public ValidatorConfiguration(String _PROFILE_MANIFEST_FILE) { try { for (SimplifierPackage individualPackage : packages) { - String packagePath = String.format("classpath:package/%s-%s.tgz", individualPackage.packageName, + String packagePath = String.format("classpath:%s-%s.tgz", individualPackage.packageName, individualPackage.version); npmPackageSupport.loadPackageFromClasspath(packagePath); try (InputStream is = ClasspathUtil.loadResourceAsStream(packagePath)) { diff --git a/latest/src/main/resources/package/.gitkeep b/latest/src/main/resources/package/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/latest/src/main/resources/package/fhir.r4.ukcore.stu3.currentbuild-0.0.9-pre-release.tgz b/latest/src/main/resources/package/fhir.r4.ukcore.stu3.currentbuild-0.0.9-pre-release.tgz deleted file mode 100644 index dfa8424b8402bad7b9baa30e3dc2f8383ab559da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226203 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 OL^khh->&oXNDoq-Zg5y9Z(lr&SpCU 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 UfhJ85AH8zkF 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