diff --git a/.github/workflows/firely-validation.yml b/.github/workflows/firely-validation.yml new file mode 100644 index 00000000..5fe1469f --- /dev/null +++ b/.github/workflows/firely-validation.yml @@ -0,0 +1,59 @@ +# This is a basic workflow to help you get started with Actions + +name: Firely Validation + +# Controls when the action will run. +on: + # Triggers the workflow on push or pull request events but only for the master branch + push: + branches: + - '**' + pull_request: + branches: [ master, main ] + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + + # Validate all resources using Firely Terminal + CI_FHIR_VALIDATION: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + - name: Checkout code + uses: actions/checkout@v6 + + # Install .NET runtime + - name: Setup .NET Core SDK + uses: actions/setup-dotnet@v5 + with: + dotnet-version: 8.0.x + + # Install Java runtime (only needed if you want to run the offical HL7 Java validator) + - name: Setup Java JDK + uses: actions/setup-java@v5 + with: + distribution: 'microsoft' + java-version: '21' + + - name: Firely.Terminal (GitHub Actions) + uses: FirelyTeam/firely-terminal-pipeline@v0.7.31 + with: + PATH_TO_CONFORMANCE_RESOURCES: StructureDefinition ValueSet CodeSystem + PATH_TO_EXAMPLES: ActivityDefinition AuditEvent BodyStructure Bundle CapabilityStatement Composition ConceptMap Condition Consent Device DiagnosticReport DocumentReference FamilyMemberHistory GraphDefinition Group Library MessageDefinition MessageHeader NamingSystem Observation OperationDefinition OperationOutcome Organization Parameters Patient PlanDefinition Practitioner PractitionerRole Procedure Provenance Questionnaire QuestionnaireResponse RelatedPerson RequestGroup SearchParameter ServiceRequest Specimen SpecimenDefinition StructureMap Subscription Task + PATH_TO_QUALITY_CONTROL_RULES: custom + DOTNET_VALIDATION_ENABLED: true + JAVA_VALIDATION_ENABLED: false + #EXPECTED_FAILS: VALIDATION_EXAMPLES_JAVA + SIMPLIFIER_USERNAME: ${{ secrets.SIMPLIFIER_USERNAME }} + SIMPLIFIER_PASSWORD: ${{ secrets.SIMPLIFIER_PASSWORD }} + FIRELY_TERMINAL_VERSION: 3.5.0 + SUSHI_ENABLED: false + + # - name: Add & Commit. + # uses: EndBug/add-and-commit@v9 + # with: + # add: 'fsh-generated/resources/' \ No newline at end of file diff --git a/.github/workflows/terminology.yml b/.github/workflows/terminology.yml index eb43eec7..2b54685a 100644 --- a/.github/workflows/terminology.yml +++ b/.github/workflows/terminology.yml @@ -5,7 +5,7 @@ on: # Triggers the workflow on push or pull request events but only for the master branch # Allows you to run this workflow manually from the Actions tab - push: + #push: workflow_dispatch: diff --git a/ConceptMap/ConceptMap-bsa-prescription-type-to-mim-organisation-type.json b/ConceptMap/ConceptMap-bsa-prescription-type-to-mim-organisation-type.json index bb9f609e..9e7c3527 100644 --- a/ConceptMap/ConceptMap-bsa-prescription-type-to-mim-organisation-type.json +++ b/ConceptMap/ConceptMap-bsa-prescription-type-to-mim-organisation-type.json @@ -27,6 +27,7 @@ "group": [ { "source": "https://fhir.nhs.uk/CodeSystem/prescription-type", + "sourceVersion": "1.2.0", "target": "https://fhir.nhs.uk/CodeSystem/mim-organisation-type", "element": [ { diff --git a/ConceptMap/MedicationRequest-course-therapy-type-map.xml b/ConceptMap/MedicationRequest-course-therapy-type-map.xml index bf132719..48d6014f 100644 --- a/ConceptMap/MedicationRequest-course-therapy-type-map.xml +++ b/ConceptMap/MedicationRequest-course-therapy-type-map.xml @@ -21,7 +21,7 @@ - + diff --git a/Examples/SDS-Endpoint-Bundle-Example.xml b/Examples/SDS-Endpoint-Bundle-Example.xml index 20bb1498..8d5ea19b 100644 --- a/Examples/SDS-Endpoint-Bundle-Example.xml +++ b/Examples/SDS-Endpoint-Bundle-Example.xml @@ -4,10 +4,10 @@ - + - + diff --git a/MedicationRequest/MedicationRequest-WithoutGroupID-Example.xml b/MedicationRequest/MedicationRequest-WithoutGroupID-Example.xml new file mode 100644 index 00000000..a59348be --- /dev/null +++ b/MedicationRequest/MedicationRequest-WithoutGroupID-Example.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/MessageDefinition/MessageDefinition-document.xml b/MessageDefinition/MessageDefinition-document.xml index 25ce7e4c..ffb4f462 100644 --- a/MessageDefinition/MessageDefinition-document.xml +++ b/MessageDefinition/MessageDefinition-document.xml @@ -10,12 +10,12 @@ <status value="active" /> <date value="2021-04-23" /> + <description value="Used to exchange a clinical document. One of FHIR Binary or FHIR Bundle (type=document) is required. If a Binary is supplied a DocumentReference MUST also be supplied."/> <eventCoding> <system value="https://fhir.nhs.uk/CodeSystem/message-event" /> <code value="document" /> <display value="Document" /> </eventCoding> - <description value="Used to exchange a clinical document. One of FHIR Binary or FHIR Bundle (type=document) is required. If a Binary is supplied a DocumentReference MUST also be supplied."/> <category value="consequence" /> <focus> <code value="DocumentReference" /> diff --git a/MessageDefinition/MessageDefinition-prescription-order.xml b/MessageDefinition/MessageDefinition-prescription-order.xml index 01a16ccf..b8705a42 100644 --- a/MessageDefinition/MessageDefinition-prescription-order.xml +++ b/MessageDefinition/MessageDefinition-prescription-order.xml @@ -10,8 +10,8 @@ <title value="Pharmacy/Treatment Order" /> <status value="active" /> <date value="2020-05-27" /> + <description value="Ordering of medications"/> <base value="https://fhir.hl7.org.uk/MessageDefinition/prescription-order" /> - <description value="Ordering of medications"/> <eventCoding> <system value="https://fhir.nhs.uk/CodeSystem/message-event" /> <code value="prescription-order" /> diff --git a/NamingSystem/prescription-type-ns.xml b/NamingSystem/prescription-type-ns.xml deleted file mode 100644 index 0f4e48e1..00000000 --- a/NamingSystem/prescription-type-ns.xml +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<NamingSystem xmlns="http://hl7.org/fhir"> - <id value="prescription-type-ns"/> - <name value="Prescriptiontypens"/> - <status value="draft"/> - <kind value="codesystem"/> - <date value="2020-06-01"/> - <publisher value="NHS Digital"/> - <responsible value="NHS Digital"/> - <description value="Describes the type of prescription this is."/> - <usage value="EPS"/> - <uniqueId> - <type value="uri"/> - <value value="https://fhir.nhs.uk/CodeSystem/prescription-type"/> - <preferred value="true"/> - </uniqueId> - <uniqueId> - <type value="oid"/> - <value value="2.16.840.1.113883.2.1.3.2.4.17.25"/> - <preferred value="false"/> - </uniqueId> -</NamingSystem> \ No newline at end of file diff --git a/NamingSystem/ukcore-prescription-type-ns.xml b/NamingSystem/ukcore-prescription-type-ns.xml deleted file mode 100644 index 3906808b..00000000 --- a/NamingSystem/ukcore-prescription-type-ns.xml +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<NamingSystem xmlns="http://hl7.org/fhir"> - <id value="ukcore-prescription-type-ns"/> - <name value="UKcoreprescriptiontypens"/> - <status value="draft"/> - <kind value="codesystem"/> - <date value="2020-06-01"/> - <publisher value="NHS Digital"/> - <responsible value="NHS Digital"/> - <description value="The management reasons for a prescription being issued."/> - <usage value="EPS"/> - <uniqueId> - <type value="uri"/> - <value value="https://fhir.hl7.org.uk/CodeSystem/UKCore-PrescriptionType"/> - <preferred value="true"/> - </uniqueId> - <uniqueId> - <type value="uri"/> - <value value="https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-PrescriptionType-1"/> - <preferred value="false"/> - </uniqueId> -</NamingSystem> \ No newline at end of file diff --git a/OperationDefinition/MessageHeader-prepare-message.xml b/OperationDefinition/MessageHeader-prepare-message.xml index f8ece070..0ba4b79c 100644 --- a/OperationDefinition/MessageHeader-prepare-message.xml +++ b/OperationDefinition/MessageHeader-prepare-message.xml @@ -15,9 +15,9 @@ </contact> <description value="Convert a prescription in FHIR format into the canonicalised HL7 V3 signature fragments which should be signed by the prescriber." /> <code value="prepare" /> + <affectsState value="true" /> <comment value="This operation does not use the parameters resource for input parameters, it does for the response. \n\n A server may return one of several status codes: \n\n * **200 OK**: Indicates that the message has been fully processed." /> <system value="true" /> - <affectsState value="true" /> <type value="false" /> <instance value="false" /> <parameter> diff --git a/OperationDefinition/OperationDefinition-prescription-release.xml b/OperationDefinition/OperationDefinition-prescription-release.xml index 7472e171..327e9c24 100644 --- a/OperationDefinition/OperationDefinition-prescription-release.xml +++ b/OperationDefinition/OperationDefinition-prescription-release.xml @@ -18,8 +18,8 @@ </contact> <description value="Use this operation to download prescriptions from Spine before it is dispensed. You can download a single prescription using the prescription's ID, or download up to 25 prescriptions (per request) nominated to a dispenser using the dispenser's ODS code. The operation will return prescriptions passing signature validation as a collection of Prescription-Order bundles and/or error messages for Prescriptions failing signature validation as a collection of OperationOutcome resources (with the prescription-order messages attached as supportingInfo"></description> <code value="release"></code> - <comment value="Only one of the parameters group-identifier and owner MUST be provided. This operation performs both a query on the message queue and updates the status of returned prescriptions."></comment> <affectsState value="true" /> + <comment value="Only one of the parameters group-identifier and owner MUST be provided. This operation performs both a query on the message queue and updates the status of returned prescriptions."></comment> <resource value="Task"></resource> <system value="false"></system> <type value="true"></type> diff --git a/OperationDefinition/OperationDefinition-release.xml b/OperationDefinition/OperationDefinition-release.xml index d78a5d6e..2b074a27 100644 --- a/OperationDefinition/OperationDefinition-release.xml +++ b/OperationDefinition/OperationDefinition-release.xml @@ -18,8 +18,8 @@ </contact> <description value="Use this endpoint to download prescriptions from Spine before it is dispensed. You can download a single prescription using the prescription's ID, or download up to 25 prescriptions (per request) nominated to a dispenser using the dispenser's ODS code."></description> <code value="release"></code> - <comment value="Only one of the parameters group-identifier and owner MUST be provided. This operation performs both a query on the message queue and updates the status of returned prescriptions."></comment> <affectsState value="true" /> + <comment value="Only one of the parameters group-identifier and owner MUST be provided. This operation performs both a query on the message queue and updates the status of returned prescriptions."></comment> <resource value="Task"></resource> <system value="false"></system> <type value="true"></type> diff --git a/StructureDefinition/Extension-NHSDigital-Provenance-agent.StructureDefinition.xml b/StructureDefinition/Extension-NHSDigital-Provenance-agent.StructureDefinition.xml index bfdadf2e..e6c0cf03 100644 --- a/StructureDefinition/Extension-NHSDigital-Provenance-agent.StructureDefinition.xml +++ b/StructureDefinition/Extension-NHSDigital-Provenance-agent.StructureDefinition.xml @@ -2,8 +2,8 @@ <StructureDefinition xmlns="http://hl7.org/fhir"> <id value="67329733-af3b-40f1-95f8-a83812dc0a43" /> <url value="https://fhir.nhs.uk/StructureDefinition/Extension-Provenance-agent" /> - <name value="ExtensionProvenanceAgent" /> <version value="1.0.1" /> + <name value="ExtensionProvenanceAgent" /> <status value="draft" /> <date value="2024-08-14T13:51:00+00:00" /> <fhirVersion value="4.0.1" /> diff --git a/StructureDefinition/NHSDigital-Logical-Event.StructureDefinition.xml b/StructureDefinition/NHSDigital-Logical-Event.StructureDefinition.xml index da37cb2b..d8aacf17 100644 --- a/StructureDefinition/NHSDigital-Logical-Event.StructureDefinition.xml +++ b/StructureDefinition/NHSDigital-Logical-Event.StructureDefinition.xml @@ -11,16 +11,13 @@ <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Element" /> <derivation value="specialization" /> <differential> - <element id="NHSDigital-Logical-Event"> - <path value="NHSDigital-Logical-Event" /> + <element id="NHSDigitalLogicalEvent"> + <path value="NHSDigitalLogicalEvent" /> <min value="0" /> - <max value="*" /> - <type> - <code value="Element" /> - </type> + <max value="1" /> </element> - <element id="NHSDigital-Logical-Event.identifier"> - <path value="NHSDigital-Logical-Event.identifier" /> + <element id="NHSDigitalLogicalEvent.identifier"> + <path value="NHSDigitalLogicalEvent.identifier" /> <short value="Business Identifier for {{title}}" /> <min value="1" /> <max value="*" /> @@ -29,8 +26,8 @@ <profile value="http://hl7.org/fhir/StructureDefinition/Identifier" /> </type> </element> - <element id="NHSDigital-Logical-Event.status"> - <path value="NHSDigital-Logical-Event.status" /> + <element id="NHSDigitalLogicalEvent.status"> + <path value="NHSDigitalLogicalEvent.status" /> <short value="Event status" /> <min value="1" /> <max value="1" /> @@ -39,8 +36,8 @@ <profile value="http://hl7.org/fhir/StructureDefinition/code" /> </type> </element> - <element id="NHSDigital-Logical-Event.code"> - <path value="NHSDigital-Logical-Event.code" /> + <element id="NHSDigitalLogicalEvent.code"> + <path value="NHSDigitalLogicalEvent.code" /> <short value="What was done (recommended)" /> <min value="0" /> <max value="1" /> @@ -49,8 +46,8 @@ <profile value="http://hl7.org/fhir/StructureDefinition/CodeableConcept" /> </type> </element> - <element id="NHSDigital-Logical-Event.subject"> - <path value="NHSDigital-Logical-Event.subject" /> + <element id="NHSDigitalLogicalEvent.subject"> + <path value="NHSDigitalLogicalEvent.subject" /> <min value="1" /> <max value="1" /> <type> @@ -58,8 +55,8 @@ <targetProfile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient" /> </type> </element> - <element id="NHSDigital-Logical-Event.encounter"> - <path value="NHSDigital-Logical-Event.encounter" /> + <element id="NHSDigitalLogicalEvent.encounter"> + <path value="NHSDigitalLogicalEvent.encounter" /> <short value="Encounter created as part of (recommended)" /> <min value="0" /> <max value="1" /> @@ -68,8 +65,8 @@ <targetProfile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Encounter" /> </type> </element> - <element id="NHSDigital-Logical-Event.performer"> - <path value="NHSDigital-Logical-Event.performer" /> + <element id="NHSDigitalLogicalEvent.performer"> + <path value="NHSDigitalLogicalEvent.performer" /> <min value="1" /> <max value="*" /> <type> diff --git a/StructureDefinition/NHSDigital-Logical-Request.StructureDefinition.xml b/StructureDefinition/NHSDigital-Logical-Request.StructureDefinition.xml index 655d6915..5e8e9c47 100644 --- a/StructureDefinition/NHSDigital-Logical-Request.StructureDefinition.xml +++ b/StructureDefinition/NHSDigital-Logical-Request.StructureDefinition.xml @@ -1,36 +1,32 @@ <?xml version="1.0" encoding="utf-8"?> <StructureDefinition xmlns="http://hl7.org/fhir"> <id value="745e2135-9b3c-4c0c-a3f7-5f22961db23a" /> - <url value="https://fhir.nhs.uk/fhir/StructureDefinition/NHSDigital-Logical-Request" /> + <url value="https://fhir.nhs.uk/fhir/StructureDefinition/NHSDigitalLogicalRequest" /> <name value="NHSDigitalLogicalRequest" /> <status value="draft" /> <fhirVersion value="4.0.1" /> <kind value="logical" /> <abstract value="false" /> - <type value="https://fhir.nhs.uk/fhir/StructureDefinition/UKCore-Request" /> + <type value="NHSDigitalLogicalRequest" /> <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Element" /> <derivation value="specialization" /> <differential> - <element id="UKCore-Request"> - <path value="UKCore-Request" /> + <element id="NHSDigitalLogicalRequest"> + <path value="NHSDigitalLogicalRequest" /> <min value="0" /> - <max value="*" /> - <type> - <code value="Element" /> - </type> + <max value="1" /> </element> - <element id="UKCore-Request.identifier"> - <path value="UKCore-Request.identifier" /> + <element id="NHSDigitalLogicalRequest.identifier"> + <path value="NHSDigitalLogicalRequest.identifier" /> <definition value="At least one identifier MUST be provided." /> <min value="1" /> <max value="*" /> <type> <code value="Identifier" /> - <profile value="http://hl7.org/fhir/StructureDefinition/Identifier" /> </type> </element> - <element id="UKCore-Request.subject"> - <path value="UKCore-Request.subject" /> + <element id="NHSDigitalLogicalRequest.subject"> + <path value="NHSDigitalLogicalRequest.subject" /> <definition value="reference should be provided identifier (NHS Number) MUST be provided (if traced), it is not permitted to exchange untraced NHS Numbers" /> <min value="1" /> <max value="1" /> @@ -39,8 +35,8 @@ <targetProfile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient" /> </type> </element> - <element id="UKCore-Request.requester"> - <path value="UKCore-Request.requester" /> + <element id="NHSDigitalLogicalRequest.requester"> + <path value="NHSDigitalLogicalRequest.requester" /> <min value="1" /> <max value="1" /> <type> @@ -51,8 +47,8 @@ <targetProfile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-PractitionerRole" /> </type> </element> - <element id="UKCore-Request.code"> - <path value="UKCore-Request.code" /> + <element id="NHSDigitalLogicalRequest.code"> + <path value="NHSDigitalLogicalRequest.code" /> <min value="1" /> <max value="1" /> <type> @@ -60,8 +56,8 @@ <profile value="http://hl7.org/fhir/StructureDefinition/CodeableConcept" /> </type> </element> - <element id="UKCore-Request.status"> - <path value="UKCore-Request.status" /> + <element id="NHSDigitalLogicalRequest.status"> + <path value="NHSDigitalLogicalRequest.status" /> <min value="1" /> <max value="1" /> <type> @@ -69,8 +65,8 @@ <profile value="http://hl7.org/fhir/StructureDefinition/code" /> </type> </element> - <element id="UKCore-Request.encounter"> - <path value="UKCore-Request.encounter" /> + <element id="NHSDigitalLogicalRequest.encounter"> + <path value="NHSDigitalLogicalRequest.encounter" /> <short value="Encounter created as part of (recommended)" /> <min value="0" /> <max value="1" /> diff --git a/StructureDefinition/NHSDigital-Medication.StructureDefinition.xml b/StructureDefinition/NHSDigital-Medication.StructureDefinition.xml index 68f0bdcc..9945fc5f 100644 --- a/StructureDefinition/NHSDigital-Medication.StructureDefinition.xml +++ b/StructureDefinition/NHSDigital-Medication.StructureDefinition.xml @@ -1,9 +1,9 @@ <StructureDefinition xmlns="http://hl7.org/fhir"> <id value="NHSDigital-Medication" /> <url value="https://fhir.nhs.uk/StructureDefinition/NHSDigital-Medication" /> + <version value="2.1.0" /> <name value="NHSDigitalMedication" /> <title value="NHS Digital Medication" /> - <version value="2.1.0" /> <status value="active" /> <date value="2022-08-03" /> <publisher value="NHS Digital" /> diff --git a/StructureDefinition/NHSDigital-MedicationRequest.xml b/StructureDefinition/NHSDigital-MedicationRequest.xml index 69ff9ec1..a7f27f63 100644 --- a/StructureDefinition/NHSDigital-MedicationRequest.xml +++ b/StructureDefinition/NHSDigital-MedicationRequest.xml @@ -2,11 +2,11 @@ <StructureDefinition xmlns="http://hl7.org/fhir"> <id value="NHSDigital-MedicationRequest" /> <url value="https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest" /> - <version value="1.1.2" /> + <version value="1.2.0" /> <name value="NHSDigitalMedicationRequest" /> <title value="NHS Digital MedicationRequest" /> <status value="draft" /> - <date value="2025-12-15T00:00:00+00:00" /> + <date value="2026-04-07T00:00:00+00:00" /> <publisher value="NHS England" /> <contact> <name value="NHS England" /> @@ -59,12 +59,6 @@ <human value="dispenseRequest.numberOfRepeatsAllowed should be populated for continuous-repeat-dispensing MedicationRequests." /> <expression value="(courseOfTherapyType.coding.code.startsWith('acute') or courseOfTherapyType.coding.code = 'continuous') or (courseOfTherapyType.coding.code.startsWith('continuous-repeat-dispensing') and dispenseRequest.exists() and dispenseRequest.numberOfRepeatsAllowed.exists())" /> </constraint> - <constraint> - <key value="eps-10" /> - <severity value="error" /> - <human value="For continuous-repeat-dispensing (intent=reflex-order) basedOn must be populated" /> - <expression value="(courseOfTherapyType.coding.code = 'acute') or (courseOfTherapyType.coding.code = 'continuous') or (courseOfTherapyType.coding.code = 'continuous-repeat-dispensing' and intent !='reflex-order') or (courseOfTherapyType.coding.code = 'continuous-repeat-dispensing' and intent ='reflex-order' and dispenseRequest.exists() and basedOn.exists())" /> - </constraint> <constraint> <key value="eps-11" /> <severity value="error" /> @@ -383,7 +377,6 @@ <short value="groupIdentifier (Short Form Prescription ID)" /> <definition value="The purpose of the Short Form Prescription ID is to identify the prescription during its lifecycle within the Spine (i.e. prescribe, dispense & claim). The prescription UUID is retained to provide the link through to the Spine medication record within the PSIS and must be included as the first identifier within the prescription message. The format of the Short Form Prescription ID is as follows; `<RandomNumber>-<PracticeODSCode/ClinicODSCode>-<PracticeSequence/ClinicSequence><CheckDigit>` Where; `<RandomNumber>` is a locally generated random number each time a Prescription ID is generated of length 6 hexadecimal characters. `<PracticeODSCode/ClinicODSCode>` is the unique ODS code for the practice or clinic code (aka cost centre) as defined within the Spine SDS of length 6 characters. Where the prescriber ODS code is shorter than 6 characters it must be zero-padded up to six characters from the start of the ODS code, e.g. “0A1B2C”. `<PracticeSequence/ClinicSequence>` is an incremental sequence number starting from 00000 that is reset after FFFFF back to zero of length 5 hexadecimal characters. For systems that support multiple practices or clinics, a sequence number per practice/clinic is required. This is to ensure uniqueness of prescriptions within the Spine EPS component during the prescription lifecycle. `<CheckDigit>` is calculated on the entire ID using the ISO/IEC 7064:2003 MOD 37-2 standard. The check digit algorithm is identical to that using for EPS Release 1. Note. Hyphens are always included to separate the ID into 3 blocks of 6 characters. Note. The implementation of the MOD 37-2 standard uses a “+” character for char 36 opposed to a “*” character. Short Form Prescription ID example (for illustration purposes only); **83C40E-A23856-00123W** ```json "groupIdentifier": { ... "system": "https://fhir.nhs.uk/Id/prescription-order-number", "value": "DC2C66-A1B2C3-23407B" }, ```" /> <comment value="ITK HL7v3 Mapping = The groupIdentifier is equivalent to ParentPrescription.id (prescription-order-number). The extension is used to carry the ParentPrescription.id (UUID)." /> - <min value="1" /> <mustSupport value="true" /> </element> <element id="MedicationRequest.groupIdentifier.extension"> diff --git a/StructureDefinition/NHSDigital-PractitionerRole.StructureDefinition.xml b/StructureDefinition/NHSDigital-PractitionerRole.StructureDefinition.xml index 18d4683d..89758e7e 100644 --- a/StructureDefinition/NHSDigital-PractitionerRole.StructureDefinition.xml +++ b/StructureDefinition/NHSDigital-PractitionerRole.StructureDefinition.xml @@ -2,8 +2,8 @@ <StructureDefinition xmlns="http://hl7.org/fhir"> <id value="51533f7f-1fa3-4866-a200-01618d377455" /> <url value="https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole" /> + <version value="1.0.1" /> <name value="NHSDigitalPractitionerRole" /> - <version value="1.0.1" /> <status value="draft" /> <date value="2024-08-14T13:51:00+00:00" /> <fhirVersion value="4.0.1" /> diff --git a/StructureDefinition/NHSDigital-Questionnaire.StructureDefinition.xml b/StructureDefinition/NHSDigital-Questionnaire.StructureDefinition.xml index 7cbf6c19..52d4a33d 100644 --- a/StructureDefinition/NHSDigital-Questionnaire.StructureDefinition.xml +++ b/StructureDefinition/NHSDigital-Questionnaire.StructureDefinition.xml @@ -2,9 +2,9 @@ <StructureDefinition xmlns="http://hl7.org/fhir"> <id value="db6d872f-5bae-49df-908b-73540114c723" /> <url value="https://fhir.nhs.uk/StructureDefinition/NHSDigital-Questionnaire" /> + <fhirVersion value="4.0.1" /> <name value="NHSDigitalQuestionnaire" /> <status value="draft" /> - <fhirVersion value="4.0.1" /> <kind value="resource" /> <abstract value="false" /> <type value="Questionnaire" /> diff --git a/ValueSet/ValueSet-DM-prescription-type.xml b/ValueSet/ValueSet-DM-prescription-type.xml index b60fe709..2a1709d4 100644 --- a/ValueSet/ValueSet-DM-prescription-type.xml +++ b/ValueSet/ValueSet-DM-prescription-type.xml @@ -22,11 +22,6 @@ <include> <system value="https://fhir.nhs.uk/CodeSystem/prescription-type" /> <version value="1.2.0" /> - <filter> - <property value="deprecated" /> - <op value="exists" /> - <value value="false" /> - </filter> </include> </compose> <expansion> diff --git a/ValueSet/ValueSet-DM-task-business-status.xml b/ValueSet/ValueSet-DM-task-business-status.xml index ff4ed7a4..fdcb63e5 100644 --- a/ValueSet/ValueSet-DM-task-business-status.xml +++ b/ValueSet/ValueSet-DM-task-business-status.xml @@ -2,10 +2,10 @@ <ValueSet xmlns="http://hl7.org/fhir"> <id value="9715939a-920c-48f0-876c-dcf9aff01f8b"/> <url value="https://fhir.nhs.uk/ValueSet/DM-task-business-status"/> - <version value="1.0.0"/> + <version value="1.0.1"/> <name value="EPSTaskBusinessPrescriptionStatus"/> <status value="retired"/> - <date value='2025-04-22' /> + <date value='2026-05-12' /> <publisher value='NHS England' /> <contact> <name value='NHS England' /> @@ -15,10 +15,9 @@ <use value='work' /> <rank value='1' /> </telecom> - </contact -> + </contact> <description - value="A set of codes used to identify the status of a prescription or the status of an item on a prescription. This ValueSet is a subset of [ValueSet-TaskMedicationRequestStatusReason](https://simplifier.net/NHSDigital/3c1b87e6-422d-4ed8-8372-ae3366ab5306/~overview). Hence, it is a duplicate and the need to o retire it." /> + value="A set of codes used to identify the status of a prescription or the status of an item on a prescription. This ValueSet is a subset of [ValueSet-DM Prescription Task Status Reason](https://simplifier.net/NHSDigital/DM-PrescriptionTaskStatusReason/~overview). Hence, it is a duplicate and the need to o retire it." /> <copyright value="Copyright &#169; 2025+ NHS England Licensed under the Apache License, Version 2.0 (the \&quot;License\&quot;); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \&quot;AS IS\&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7&#174; FHIR&#174; standard Copyright &#169; 2011+ HL7 The HL7&#174; FHIR&#174; standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." /> <compose> <include> diff --git a/custom.rules.yaml b/custom.rules.yaml new file mode 100644 index 00000000..ee7754d4 --- /dev/null +++ b/custom.rules.yaml @@ -0,0 +1,34 @@ +- action: parse + name: parse-fhir-resources + status: "Checking if all FHIR Resource files can be parsed" + files: + - /**/*.json + - "!package.json" + - "!*.*" + - "!.github/*.*" + - "!documents/*.*" + - "!Diagrams/*.*" + +- name: resource-validation + status: "Validating resources against the FHIR standard and their profiles" + action: validate + category: Resource + suppress: + - 6005 + - eld-16 + - ref-1 + - dom-6 + - 1012 #ref-1 + - 4005 #dom-6 + - CONFIG #errors in dependencies e.g. loops, outdated, pre-release + - 6006 #failure to contact term service + - 1030 #reference loop + - 4009 #missing extensions + +- action: unique + name: unique-canonicals + status: "Checking if all StructureDefinitions have a unique canonical" + category: StructureDefinition + unique: url + +# - include: manifest diff --git a/fhirpkg.lock.json b/fhirpkg.lock.json index f149b185..06a46399 100644 --- a/fhirpkg.lock.json +++ b/fhirpkg.lock.json @@ -1,5 +1,5 @@ { - "updated": "2025-07-25T17:27:50.0661131+01:00", + "updated": "2026-04-07T12:57:28.4297209+01:00", "dependencies": { "hl7.fhir.r4.core": "4.0.1", "fhir.r4.ukcore.stu3.currentbuild": "0.0.3-pre-release"