diff --git a/.github/workflows/masterfhirvalidation.yml b/.github/workflows/masterfhirvalidation.yml index 28e27df..90a940c 100644 --- a/.github/workflows/masterfhirvalidation.yml +++ b/.github/workflows/masterfhirvalidation.yml @@ -1,80 +1,63 @@ name: IOPS-FHIR-Validation-Terminology -# Controls when the workflow will run 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 - workflow_call: secrets: ONTO_CLIENT_ID: required: true ONTO_CLIENT_SECRET: required: true - FAILONWARNING: - required: false -# A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: - # This workflow contains a single job called "build" build: - # 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: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: submodules: true - - - uses: actions/setup-java@v4 + + - uses: actions/setup-java@v5 with: - distribution: 'temurin' + distribution: temurin java-version: '21' - + - name: Check out IOPS-Validation - uses: actions/checkout@master + uses: actions/checkout@v6 with: - repository: NHSDigital/IOPS-FHIR-Test-Scripts # orignally known as NHSDigital/IOPS-Validation + repository: NHSDigital/IOPS-FHIR-Test-Scripts + ref: docker-img + sparse-checkout: FHIRValidationAction path: validation - name: Check out validation-service-fhir-r4 - uses: actions/checkout@master + uses: actions/checkout@v6 with: - repository: NHSDigital/IOPS-FHIR-Validation-Service - ref: main + repository: NHSDigital/FHIR-Validation + ref: docker-img path: validation-service-fhir-r4 - - - name: Cache Maven packages - uses: actions/cache@v4 - with: - path: ~/.m2 - key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} - restore-keys: ${{ runner.os }}-m2- - - - name: Install npm - run: cd validation && npm ci - - - name: Configure FHIR Validator - run: cd validation && npm start + + - name: Build validation service + run: | + cd validation-service-fhir-r4 + mvn -B -ntp package + + - name: Start Validation Service + run: | + cd validation-service-fhir-r4 + docker compose build + docker compose up -d env: CI: true + ONTO_AUTH_URL: https://ontology.nhs.uk/authorisation/auth/realms/nhs-digital-terminology/protocol/openid-connect/token + ONTO_SERVER_URL: https://ontology.nhs.uk/production1/fhir ONTO_CLIENT_ID: ${{ secrets.ONTO_CLIENT_ID }} ONTO_CLIENT_SECRET: ${{ secrets.ONTO_CLIENT_SECRET }} - - - name: Build FHIR - env: - MAVEN_OPTS: -Xmx8G - run: cd validation-service-fhir-r4 && mvn -DskipTests clean package - - name: Run FHIR Validator + - name: Wait for FHIR Validator to be available run: | - nohup java -Xms2G -Xmx8G -jar validation-service-fhir-r4/target/fhir-validator.jar --terminology.url=https://ontology.nhs.uk/production1/fhir --terminology.authorization.tokenUrl=https://ontology.nhs.uk/authorisation/auth/realms/nhs-digital-terminology/protocol/openid-connect/token --terminology.authorization.clientId=${{ secrets.ONTO_CLIENT_ID }} --terminology.authorization.clientSecret=${{ secrets.ONTO_CLIENT_SECRET }} --aws.validationSupport=false --aws.queueEnabled=false & - # Wait for it to become ready, try 30 times, with 10 seconds between for i in {1..60}; do - if curl -sSf http://localhost:9001/metadata > /dev/null || \ - curl -sSf http://localhost:9001/fhir/metadata > /dev/null; then + if curl -sSf http://localhost:8080/fhir/metadata > /dev/null; then echo "FHIR Validator is up!" exit 0 fi @@ -84,8 +67,19 @@ jobs: echo "FHIR Validator failed to start in time" exit 1 - - - name: Run Test - run: cd validation && npm test - env: - FAILONWARNING: ${{ secrets.FAILONWARNING }} + + - name: Install FHIR packages + run: python3 validation/FHIRValidationAction/scripts/configure-packages.py + + - name: Upload FHIR assets + Examples + run: python3 validation/FHIRValidationAction/scripts/upload-assets.py + + - name: Generate validation report + if: always() + run: python3 validation/FHIRValidationAction/scripts/generate-report.py + + - name: Stop Validation Service + if: always() + run: | + cd validation-service-fhir-r4 + docker compose down diff --git a/.gitignore b/.gitignore index 9fdce98..db5bf72 100644 --- a/.gitignore +++ b/.gitignore @@ -1,111 +1,4 @@ -.idea -node_modules -package -src/*.tgz -src/hl7* -src/nhs* -.DS_Store# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file .env -.env.test - -# parcel-bundler cache (https://parceljs.org/) -.cache - -# Next.js build output -.next - -# Nuxt.js build / generate output -.nuxt -dist - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and *not* Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port -/validator_cli.jar +.venv +**/__pycache__/* +**/operation_outcomes.json diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 1775233..0000000 --- a/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM eclipse-temurin:18.0.2 - -WORKDIR /app - -COPY ../validation-service-fhir-r4/target/fhir-validator-*.jar ./fhir-validator.jar -RUN chmod -R a+x /app - -USER nobody - -#AEA-1024: Setting TEST_SYSTEM_PROP_VALIDATION_RESOURCE_CACHES_MS to max long so our resource cache never expires. -CMD ["java", "-Xms1500m", "-Xmx1500m", "-DTEST_SYSTEM_PROP_VALIDATION_RESOURCE_CACHES_MS=9223372036854775807", "-jar", "fhir-validator.jar"] diff --git a/Examples/fail/Bundle-prescription-order-extraMedicationRequest.json b/Examples/fail/Bundle-prescription-order-extraMedicationRequest.json deleted file mode 100644 index 9d11ab6..0000000 --- a/Examples/fail/Bundle-prescription-order-extraMedicationRequest.json +++ /dev/null @@ -1,661 +0,0 @@ -{ - "resourceType": "Bundle", - "id": "0d432bc3-c706-4ca8-93a2-17985e1383d5", - "identifier": { - "system": "https://tools.ietf.org/html/rfc4122", - "value": "1b73cdae-f6da-450a-9dd8-edd3f8ff5c16" - }, - "type": "message", - "entry": [ - { - "fullUrl": "urn:uuid:0d432bc3-c706-4ca8-93a2-17985e1383d5", - "resource": { - "resourceType": "MessageHeader", - "id": "7f0ad496-f165-41e8-8751-1b6c2dea8752", - "eventCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/message-event", - "code": "prescription-order", - "display": "Prescription Order" - }, - "destination": [ - { - "endpoint": "urn:nhs-uk:addressing:ods:FCW64", - "receiver": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FCW64" - } - } - } - ], - "sender": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c", - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "694X0" - }, - "display": "Clark|Jackie" - }, - "source": { - "endpoint": "urn:nhs-uk:addressing:ods:694X0" - }, - "focus": [ - { - "reference": "urn:uuid:33eee58a-cf85-49a9-9d6c-5b323a0f4fd0", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:a1ba87a0-6b23-4618-b742-f455135a981a", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:d1a02497-257b-4149-a093-84454c3b5bae", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c", - "type": "Patient" - } - ] - } - }, - { - "fullUrl": "urn:uuid:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c", - "resource": { - "resourceType": "Patient", - "id": "a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c", - "identifier": [ - { - - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9657847419" - } - ], - "name": [ - { - "use": "usual", - "family": "HOMAN", - "given": [ - "Amos Lloyd" - ] - } - ], - "telecom": [ - { - "system": "phone", - "value": "07000123123" - } - ], - "gender": "male", - "birthDate": "1985-03-12", - "address": [ - { - "use": "home", - "line": [ - "1 Dalmatian Way", - "Broughton", - "BRIGG" - ], - "postalCode": "DN20 0ET" - } - ], - "generalPractitioner": [ - { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A20047" - } - } - ] - } - }, - { - "fullUrl": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c", - "resource": { - "resourceType": "PractitionerRole", - "id": "f36f6202-5b48-49e7-970b-3b4a1761247c", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", - "value": "555086415105" - } - ], - "practitioner": { - "identifier": { - "system": "https://fhir.hl7.org.uk/Id/gmc-number", - "value": "C1231234" - }, - "display": "Jackie Clark" - }, - "organization": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "RHM" - }, - "display": "UNIVERSITY HOSPITAL SOUTHAMPTON NHS FOUNDATION TRUST" - }, - "code": [ - { - "coding": [ - { - "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", - "code": "R8000", - "display": "Clinical Practitioner Access Role" - } - ] - } - ], - "location": [ - { - "reference": "urn:uuid:4bdb71a5-209a-49b9-89ff-5396abc2e582" - } - ], - "healthcareService": [ - { - "identifier": { - "use": "usual", - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "694X0" - }, - "display": "SOUTHAMPTON GENERAL HOSPITAL LABORATORY" - } - ], - "telecom": [ - { - "system": "phone", - "value": "02380798431", - "use": "work" - } - ] - } - }, - { - "fullUrl": "urn:uuid:4bdb71a5-209a-49b9-89ff-5396abc2e582", - "resource": { - "resourceType": "Location", - "id": "4bdb71a5-209a-49b9-89ff-5396abc2e582", - "status": "active", - "mode": "instance", - "address": { - "line": [ - "SOUTHAMPTON GENERAL HOSPITAL", - "TREMONA ROAD", - "SOUTHAMPTON" - ], - "postalCode": "SO16 6YD" - } - } - }, - { - "fullUrl": "urn:uuid:33eee58a-cf85-49a9-9d6c-5b323a0f4fd0", - "resource": { - "resourceType": "MedicationRequest", - "id": "33eee58a-cf85-49a9-9d6c-5b323a0f4fd0", - "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": "33eee58a-cf85-49a9-9d6c-5b323a0f4fd0" - } - ], - "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:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c" - }, - "authoredOn": "2021-06-25T14:40:14+01:00", - "requester": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "e511555b-312d-4307-8caf-999559a20e25" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "6FD469-0694X0-02504T" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "test" - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1", - "display": "Other (e.g. Community Pharmacy)" - } - } - ], - "quantity": { - "value": 23, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FCW64" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:a1ba87a0-6b23-4618-b742-f455135a981a", - "resource": { - "resourceType": "MedicationRequest", - "id": "a1ba87a0-6b23-4618-b742-f455135a981a", - "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": "a1ba87a0-6b23-4618-b742-f455135a981a" - } - ], - "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": "35901911000001104", - "display": "Amoxicillin 125mg/5ml oral suspension sugar free" - } - ] - }, - "subject": { - "reference": "urn:uuid:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c" - }, - "authoredOn": "2021-06-25T14:40:14+01:00", - "requester": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "e511555b-312d-4307-8caf-999559a20e25" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "6FD469-0694X0-02504T" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "test" - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1", - "display": "Other (e.g. Community Pharmacy)" - } - } - ], - "quantity": { - "value": 100, - "unit": "ml", - "system": "http://snomed.info/sct", - "code": "258773002" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FCW64" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:d1a02497-257b-4149-a093-84454c3b5bae", - "resource": { - "resourceType": "MedicationRequest", - "id": "d1a02497-257b-4149-a093-84454c3b5bae", - "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": "d1a02497-257b-4149-a093-84454c3b5bae" - } - ], - "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": "329652003", - "display": "Ibuprofen 200mg tablets" - } - ] - }, - "subject": { - "reference": "urn:uuid:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c" - }, - "authoredOn": "2021-06-25T14:40:14+01:00", - "requester": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "e511555b-312d-4307-8caf-999559a20e25" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "6FD469-0694X0-02504T" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "2 Four Times Daily" - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1", - "display": "Other (e.g. Community Pharmacy)" - } - } - ], - "quantity": { - "value": 24, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FCW64" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:c7d942f2-3c1d-4d93-9ba8-ba57db83cdc0", - "resource": { - "resourceType": "MedicationRequest", - "id": "c7d942f2-3c1d-4d93-9ba8-ba57db83cdc0", - "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": "c7d942f2-3c1d-4d93-9ba8-ba57db83cdc0" - } - ], - "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": "39695211000001102", - "display": "Aspirin 300mg dispersible tablets" - } - ] - }, - "subject": { - "reference": "urn:uuid:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c" - }, - "authoredOn": "2021-06-25T14:40:14+01:00", - "requester": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "e511555b-312d-4307-8caf-999559a20e25" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "6FD469-0694X0-02504T" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "Take ONE Four Times Daily" - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1", - "display": "Other (e.g. Community Pharmacy)" - } - } - ], - "quantity": { - "value": 28, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FCW64" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:e5e19e28-b351-4fd4-8133-24608f360d2f", - "resource": { - "resourceType": "Provenance", - "id": "e5e19e28-b351-4fd4-8133-24608f360d2f", - "target": [ - { - "reference": "urn:uuid:33eee58a-cf85-49a9-9d6c-5b323a0f4fd0", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:a1ba87a0-6b23-4618-b742-f455135a981a", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:d1a02497-257b-4149-a093-84454c3b5bae", - "type": "MedicationRequest" - } - ], - "recorded": "2021-06-25T14:40:17.2561801+01:00", - "agent": [ - { - "who": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c", - "type": "PractitionerRole" - } - } - ], - "signature": [ - { - "type": [ - { - "system": "urn:iso-astm:E1762-95:2013", - "code": "1.2.840.10065.1.12.1.1", - "display": "Author's Signature" - } - ], - "when": "2021-06-25T14:40:17.2561801+01:00", - "who": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c", - "type": "PractitionerRole" - }, - "data": "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+cWREeWQ0eXd4ekpNa2liVU15V1puUDhwVFdrPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPjxTaWduYXR1cmVWYWx1ZT5ESC9GaGNXcnZPUFBrNkxhbWc5WlpnTnJVajJmRnVIZ2NidlZEYmJMblJsQnpDdThPZDErb0NHUENRSHdwSkFRNW8xTlpnSmNjcjI5dHkwV3pCeFBDZEF3OUd2a2dLNy92bCtpdmJlWVlrcEM3V0NLTmxQMkh4UHMzV01KQ2kxOWJ4UFdBTVVBUGNsM2dBTHpVN0lPcXJuc1VTZ20zYnllai9lUERNU0d4UTQ9PC9TaWduYXR1cmVWYWx1ZT48S2V5SW5mbz48WDUwOURhdGE+PFg1MDlDZXJ0aWZpY2F0ZT5NSUlEdURDQ0FxQ2dBd0lCQWdJRVhjbW83ekFOQmdrcWhraUc5dzBCQVFzRkFEQTJNUXd3Q2dZRFZRUUtFd051YUhNeEN6QUpCZ05WQkFzVEFrTkJNUmt3RndZRFZRUURFeEJPU0ZNZ1NVNVVJRXhsZG1Wc0lERkVNQjRYRFRJd01Ea3lNekUxTkRrME9Gb1hEVEl5TURreU16RTJNVGswT0Zvd1F6RU1NQW9HQTFVRUNoTURibWh6TVE4d0RRWURWUVFMRXdaUVpXOXdiR1V4SWpBZ0JnTlZCQU1NR1RVMU5UQTROalF4TlRFd05WOVVaWE4wWDFSbGMzUmtiMmN3Z1o4d0RRWUpLb1pJaHZjTkFRRUJCUUFEZ1kwQU1JR0pBb0dCQVBDeW1MYjBJdm5nS21ZOTlwcmx2VU8xTmxnK1l5NHpEanpUaHVxZDJrdGsyOE1lWWRWbUFMV0xJWTY5cE50VDhEV0NrSmJtVytyR1JFYzFueG9halcrb0NqV2dlMUtjdytVVU15MnNZNXBMMmJoMGpmNGhtK3d5OVZvbGdNeWRsWmN6cklxWmJpYjhCbTBZbkZtbGtqSDltZnU1ZWRzQzhPVmYzdHIyUktYSEFnTUJBQUdqZ2dGRE1JSUJQekFPQmdOVkhROEJBZjhFQkFNQ0JrQXdaUVlEVlIwZ0FRSC9CRnN3V1RCWEJnc3Foam9BaVh0bUFBTUNBREJJTUVZR0NDc0dBUVVGQndJQkZqcG9kSFJ3Y3pvdkwzQnJhUzV1YUhNdWRXc3ZZMlZ5ZEdsbWFXTmhkR1ZmY0c5c2FXTnBaWE12WTI5dWRHVnVkRjlqYjIxdGFYUnRaVzUwTURNR0ExVWRId1FzTUNvd0tLQW1vQ1NHSW1oMGRIQTZMeTlqY213dWJtaHpMblZyTDJsdWRDOHhaQzlqY214ak15NWpjbXd3S3dZRFZSMFFCQ1F3SW9BUE1qQXlNREE1TWpNeE5UUTVORGhhZ1E4eU1ESXlNREl4TmpFMk1UazBPRm93SHdZRFZSMGpCQmd3Rm9BVW9KWWZnWVROUGQ2RVVLTDZRTEl6SHhZNVBGSXdIUVlEVlIwT0JCWUVGRi9YS2h0NWVpN3FyeHcxM1dmR2xDQStaNS9NTUFrR0ExVWRFd1FDTUFBd0dRWUpLb1pJaHZaOUIwRUFCQXd3Q2hzRVZqZ3VNd01DQkxBd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFFZmFidkVRcmt0MEJTUnkzYnA1NkRJMUJyWEN5eVFWdjhORkdsZ2VDQTNOV0V5dE9uQkpqaDNJT0c1YlpsclVBK1lnK2xJMWxFUFlWaGJxd0R2bmlDdUYyOWw1TE0zai82Y1c0YWRIRUFPMTVnZWNHUVRzbm9DUlRZMnYrTzBDcVZ5MGtaWkV0dFRFbGtPekZ3clNvQzRITDdkOG96cG9UR0NpVDBHK3lKT25mWm9yc1ZWd1JFNW9rNUhwMlYyQWEwQ2EvUUVkNzc4UFMxOXFqdHBEUWJjODdVYkVPSXY2alZscUM3VHhIVGViNjB2akhIcU14VFU5bCtjdGF0TnU4N1ovMTA3eG1NRmFVYTRVMXA0R0xZYm9QbElOSUkzVVlwdGNDdXRXeHROcTVGZ1RNTkI1eEJQUE9SU2tjSWxrNDBsc0U1R3EzczlVZ2xLZzNBQ3V1Wnc9PC9YNTA5Q2VydGlmaWNhdGU+PC9YNTA5RGF0YT48L0tleUluZm8+PC9TaWduYXR1cmU+" - } - ] - } - } - ] -} \ No newline at end of file diff --git a/Examples/fail/Bundle-prescription-order-incorrectFocus.json b/Examples/fail/Bundle-prescription-order-incorrectFocus.json deleted file mode 100644 index cb4d3f0..0000000 --- a/Examples/fail/Bundle-prescription-order-incorrectFocus.json +++ /dev/null @@ -1,661 +0,0 @@ -{ - "resourceType": "Bundle", - "id": "0d432bc3-c706-4ca8-93a2-17985e1383d5", - "identifier": { - "system": "https://tools.ietf.org/html/rfc4122", - "value": "1b73cdae-f6da-450a-9dd8-edd3f8ff5c16" - }, - "type": "message", - "entry": [ - { - "fullUrl": "urn:uuid:0d432bc3-c706-4ca8-93a2-17985e1383d5", - "resource": { - "resourceType": "MessageHeader", - "id": "7f0ad496-f165-41e8-8751-1b6c2dea8752", - "eventCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/message-event", - "code": "prescription-order", - "display": "Prescription Order" - }, - "destination": [ - { - "endpoint": "urn:nhs-uk:addressing:ods:FCW64", - "receiver": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FCW64" - } - } - } - ], - "sender": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c", - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "694X0" - }, - "display": "Clark|Jackie" - }, - "source": { - "endpoint": "urn:nhs-uk:addressing:ods:694X0" - }, - "focus": [ - { - "reference": "urn:uuid:33eee58a-cf85-49a9-9d6c-5b323a0f4fd0", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:a1ba87a0-6b23-4618-b742-f455135a981a", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:d1a02497-257b-4149-a093-84454c3b5bae", - "type": "Patient" - } - ] - } - }, - { - "fullUrl": "urn:uuid:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c", - "resource": { - "resourceType": "Patient", - "id": "a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c", - "identifier": [ - { - - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9657847419" - } - ], - "name": [ - { - "use": "usual", - "family": "HOMAN", - "given": [ - "Amos Lloyd" - ] - } - ], - "telecom": [ - { - "system": "phone", - "value": "07000123123" - } - ], - "gender": "male", - "birthDate": "1985-03-12", - "address": [ - { - "use": "home", - "line": [ - "1 Dalmatian Way", - "Broughton", - "BRIGG" - ], - "postalCode": "DN20 0ET" - } - ], - "generalPractitioner": [ - { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A20047" - } - } - ] - } - }, - { - "fullUrl": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c", - "resource": { - "resourceType": "PractitionerRole", - "id": "f36f6202-5b48-49e7-970b-3b4a1761247c", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", - "value": "555086415105" - } - ], - "practitioner": { - "identifier": { - "system": "https://fhir.hl7.org.uk/Id/gmc-number", - "value": "1231234" - }, - "display": "Jackie Clark" - }, - "organization": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "RHM" - }, - "display": "UNIVERSITY HOSPITAL SOUTHAMPTON NHS FOUNDATION TRUST" - }, - "code": [ - { - "coding": [ - { - "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", - "code": "R8000", - "display": "Clinical Practitioner Access Role" - } - ] - } - ], - "location": [ - { - "reference": "urn:uuid:4bdb71a5-209a-49b9-89ff-5396abc2e582" - } - ], - "healthcareService": [ - { - "identifier": { - "use": "usual", - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "694X0" - }, - "display": "SOUTHAMPTON GENERAL HOSPITAL LABORATORY" - } - ], - "telecom": [ - { - "system": "phone", - "value": "02380798431", - "use": "work" - } - ] - } - }, - { - "fullUrl": "urn:uuid:4bdb71a5-209a-49b9-89ff-5396abc2e582", - "resource": { - "resourceType": "Location", - "id": "4bdb71a5-209a-49b9-89ff-5396abc2e582", - "status": "active", - "mode": "instance", - "address": { - "line": [ - "SOUTHAMPTON GENERAL HOSPITAL", - "TREMONA ROAD", - "SOUTHAMPTON" - ], - "postalCode": "SO16 6YD" - } - } - }, - { - "fullUrl": "urn:uuid:33eee58a-cf85-49a9-9d6c-5b323a0f4fd0", - "resource": { - "resourceType": "MedicationRequest", - "id": "33eee58a-cf85-49a9-9d6c-5b323a0f4fd0", - "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": "33eee58a-cf85-49a9-9d6c-5b323a0f4fd0" - } - ], - "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:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c" - }, - "authoredOn": "2021-06-25T14:40:14+01:00", - "requester": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "e511555b-312d-4307-8caf-999559a20e25" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "6FD469-0694X0-02504T" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "test" - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1", - "display": "Other (e.g. Community Pharmacy)" - } - } - ], - "quantity": { - "value": 23, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FCW64" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:a1ba87a0-6b23-4618-b742-f455135a981a", - "resource": { - "resourceType": "MedicationRequest", - "id": "a1ba87a0-6b23-4618-b742-f455135a981a", - "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": "a1ba87a0-6b23-4618-b742-f455135a981a" - } - ], - "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": "35901911000001104", - "display": "Amoxicillin 125mg/5ml oral suspension sugar free" - } - ] - }, - "subject": { - "reference": "urn:uuid:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c" - }, - "authoredOn": "2021-06-25T14:40:14+01:00", - "requester": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "e511555b-312d-4307-8caf-999559a20e25" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "6FD469-0694X0-02504T" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "test" - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1", - "display": "Other (e.g. Community Pharmacy)" - } - } - ], - "quantity": { - "value": 100, - "unit": "ml", - "system": "http://snomed.info/sct", - "code": "258773002" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FCW64" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:d1a02497-257b-4149-a093-84454c3b5bae", - "resource": { - "resourceType": "MedicationRequest", - "id": "d1a02497-257b-4149-a093-84454c3b5bae", - "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": "d1a02497-257b-4149-a093-84454c3b5bae" - } - ], - "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": "329652003", - "display": "Ibuprofen 200mg tablets" - } - ] - }, - "subject": { - "reference": "urn:uuid:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c" - }, - "authoredOn": "2021-06-25T14:40:14+01:00", - "requester": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "e511555b-312d-4307-8caf-999559a20e25" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "6FD469-0694X0-02504T" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "2 Four Times Daily" - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1", - "display": "Other (e.g. Community Pharmacy)" - } - } - ], - "quantity": { - "value": 24, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FCW64" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:c7d942f2-3c1d-4d93-9ba8-ba57db83cdc0", - "resource": { - "resourceType": "MedicationRequest", - "id": "c7d942f2-3c1d-4d93-9ba8-ba57db83cdc0", - "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": "c7d942f2-3c1d-4d93-9ba8-ba57db83cdc0" - } - ], - "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": "39695211000001102", - "display": "Aspirin 300mg dispersible tablets" - } - ] - }, - "subject": { - "reference": "urn:uuid:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c" - }, - "authoredOn": "2021-06-25T14:40:14+01:00", - "requester": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "e511555b-312d-4307-8caf-999559a20e25" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "6FD469-0694X0-02504T" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "Take ONE Four Times Daily" - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1", - "display": "Other (e.g. Community Pharmacy)" - } - } - ], - "quantity": { - "value": 28, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FCW64" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:e5e19e28-b351-4fd4-8133-24608f360d2f", - "resource": { - "resourceType": "Provenance", - "id": "e5e19e28-b351-4fd4-8133-24608f360d2f", - "target": [ - { - "reference": "urn:uuid:33eee58a-cf85-49a9-9d6c-5b323a0f4fd0", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:a1ba87a0-6b23-4618-b742-f455135a981a", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:d1a02497-257b-4149-a093-84454c3b5bae", - "type": "MedicationRequest" - } - ], - "recorded": "2021-06-25T14:40:17.2561801+01:00", - "agent": [ - { - "who": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c", - "type": "PractitionerRole" - } - } - ], - "signature": [ - { - "type": [ - { - "system": "urn:iso-astm:E1762-95:2013", - "code": "1.2.840.10065.1.12.1.1", - "display": "Author's Signature" - } - ], - "when": "2021-06-25T14:40:17.2561801+01:00", - "who": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c", - "type": "PractitionerRole" - }, - "data": "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+cWREeWQ0eXd4ekpNa2liVU15V1puUDhwVFdrPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPjxTaWduYXR1cmVWYWx1ZT5ESC9GaGNXcnZPUFBrNkxhbWc5WlpnTnJVajJmRnVIZ2NidlZEYmJMblJsQnpDdThPZDErb0NHUENRSHdwSkFRNW8xTlpnSmNjcjI5dHkwV3pCeFBDZEF3OUd2a2dLNy92bCtpdmJlWVlrcEM3V0NLTmxQMkh4UHMzV01KQ2kxOWJ4UFdBTVVBUGNsM2dBTHpVN0lPcXJuc1VTZ20zYnllai9lUERNU0d4UTQ9PC9TaWduYXR1cmVWYWx1ZT48S2V5SW5mbz48WDUwOURhdGE+PFg1MDlDZXJ0aWZpY2F0ZT5NSUlEdURDQ0FxQ2dBd0lCQWdJRVhjbW83ekFOQmdrcWhraUc5dzBCQVFzRkFEQTJNUXd3Q2dZRFZRUUtFd051YUhNeEN6QUpCZ05WQkFzVEFrTkJNUmt3RndZRFZRUURFeEJPU0ZNZ1NVNVVJRXhsZG1Wc0lERkVNQjRYRFRJd01Ea3lNekUxTkRrME9Gb1hEVEl5TURreU16RTJNVGswT0Zvd1F6RU1NQW9HQTFVRUNoTURibWh6TVE4d0RRWURWUVFMRXdaUVpXOXdiR1V4SWpBZ0JnTlZCQU1NR1RVMU5UQTROalF4TlRFd05WOVVaWE4wWDFSbGMzUmtiMmN3Z1o4d0RRWUpLb1pJaHZjTkFRRUJCUUFEZ1kwQU1JR0pBb0dCQVBDeW1MYjBJdm5nS21ZOTlwcmx2VU8xTmxnK1l5NHpEanpUaHVxZDJrdGsyOE1lWWRWbUFMV0xJWTY5cE50VDhEV0NrSmJtVytyR1JFYzFueG9halcrb0NqV2dlMUtjdytVVU15MnNZNXBMMmJoMGpmNGhtK3d5OVZvbGdNeWRsWmN6cklxWmJpYjhCbTBZbkZtbGtqSDltZnU1ZWRzQzhPVmYzdHIyUktYSEFnTUJBQUdqZ2dGRE1JSUJQekFPQmdOVkhROEJBZjhFQkFNQ0JrQXdaUVlEVlIwZ0FRSC9CRnN3V1RCWEJnc3Foam9BaVh0bUFBTUNBREJJTUVZR0NDc0dBUVVGQndJQkZqcG9kSFJ3Y3pvdkwzQnJhUzV1YUhNdWRXc3ZZMlZ5ZEdsbWFXTmhkR1ZmY0c5c2FXTnBaWE12WTI5dWRHVnVkRjlqYjIxdGFYUnRaVzUwTURNR0ExVWRId1FzTUNvd0tLQW1vQ1NHSW1oMGRIQTZMeTlqY213dWJtaHpMblZyTDJsdWRDOHhaQzlqY214ak15NWpjbXd3S3dZRFZSMFFCQ1F3SW9BUE1qQXlNREE1TWpNeE5UUTVORGhhZ1E4eU1ESXlNREl4TmpFMk1UazBPRm93SHdZRFZSMGpCQmd3Rm9BVW9KWWZnWVROUGQ2RVVLTDZRTEl6SHhZNVBGSXdIUVlEVlIwT0JCWUVGRi9YS2h0NWVpN3FyeHcxM1dmR2xDQStaNS9NTUFrR0ExVWRFd1FDTUFBd0dRWUpLb1pJaHZaOUIwRUFCQXd3Q2hzRVZqZ3VNd01DQkxBd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFFZmFidkVRcmt0MEJTUnkzYnA1NkRJMUJyWEN5eVFWdjhORkdsZ2VDQTNOV0V5dE9uQkpqaDNJT0c1YlpsclVBK1lnK2xJMWxFUFlWaGJxd0R2bmlDdUYyOWw1TE0zai82Y1c0YWRIRUFPMTVnZWNHUVRzbm9DUlRZMnYrTzBDcVZ5MGtaWkV0dFRFbGtPekZ3clNvQzRITDdkOG96cG9UR0NpVDBHK3lKT25mWm9yc1ZWd1JFNW9rNUhwMlYyQWEwQ2EvUUVkNzc4UFMxOXFqdHBEUWJjODdVYkVPSXY2alZscUM3VHhIVGViNjB2akhIcU14VFU5bCtjdGF0TnU4N1ovMTA3eG1NRmFVYTRVMXA0R0xZYm9QbElOSUkzVVlwdGNDdXRXeHROcTVGZ1RNTkI1eEJQUE9SU2tjSWxrNDBsc0U1R3EzczlVZ2xLZzNBQ3V1Wnc9PC9YNTA5Q2VydGlmaWNhdGU+PC9YNTA5RGF0YT48L0tleUluZm8+PC9TaWduYXR1cmU+" - } - ] - } - } - ] -} \ No newline at end of file diff --git a/Examples/fail/Bundle-prescription-order-locationNotPresent.json b/Examples/fail/Bundle-prescription-order-locationNotPresent.json deleted file mode 100644 index 6df68b2..0000000 --- a/Examples/fail/Bundle-prescription-order-locationNotPresent.json +++ /dev/null @@ -1,644 +0,0 @@ -{ - "resourceType": "Bundle", - "id": "0d432bc3-c706-4ca8-93a2-17985e1383d5", - "identifier": { - "system": "https://tools.ietf.org/html/rfc4122", - "value": "1b73cdae-f6da-450a-9dd8-edd3f8ff5c16" - }, - "type": "message", - "entry": [ - { - "fullUrl": "urn:uuid:0d432bc3-c706-4ca8-93a2-17985e1383d5", - "resource": { - "resourceType": "MessageHeader", - "id": "7f0ad496-f165-41e8-8751-1b6c2dea8752", - "eventCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/message-event", - "code": "prescription-order", - "display": "Prescription Order" - }, - "destination": [ - { - "endpoint": "urn:nhs-uk:addressing:ods:FCW64", - "receiver": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FCW64" - } - } - } - ], - "sender": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c", - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "694X0" - }, - "display": "Clark|Jackie" - }, - "source": { - "endpoint": "urn:nhs-uk:addressing:ods:694X0" - }, - "focus": [ - { - "reference": "urn:uuid:33eee58a-cf85-49a9-9d6c-5b323a0f4fd0", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:a1ba87a0-6b23-4618-b742-f455135a981a", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:d1a02497-257b-4149-a093-84454c3b5bae", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:c7d942f2-3c1d-4d93-9ba8-ba57db83cdc0", - "type": "MedicationRequest" - } - ] - } - }, - { - "fullUrl": "urn:uuid:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c", - "resource": { - "resourceType": "Patient", - "id": "a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c", - "identifier": [ - { - - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9657847419" - } - ], - "name": [ - { - "use": "usual", - "family": "HOMAN", - "given": [ - "Amos Lloyd" - ] - } - ], - "telecom": [ - { - "system": "phone", - "value": "07000123123" - } - ], - "gender": "male", - "birthDate": "1985-03-12", - "address": [ - { - "use": "home", - "line": [ - "1 Dalmatian Way", - "Broughton", - "BRIGG" - ], - "postalCode": "DN20 0ET" - } - ], - "generalPractitioner": [ - { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A20047" - } - } - ] - } - }, - { - "fullUrl": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c", - "resource": { - "resourceType": "PractitionerRole", - "id": "f36f6202-5b48-49e7-970b-3b4a1761247c", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", - "value": "555086415105" - } - ], - "practitioner": { - "identifier": { - "system": "https://fhir.hl7.org.uk/Id/gmc-number", - "value": "C1231234" - }, - "display": "Jackie Clark" - }, - "organization": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "RHM" - }, - "display": "UNIVERSITY HOSPITAL SOUTHAMPTON NHS FOUNDATION TRUST" - }, - "code": [ - { - "coding": [ - { - "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", - "code": "R8000", - "display": "Clinical Practitioner Access Role" - } - ] - } - ], - "location": [ - { - "reference": "urn:uuid:4bdb71a5-209a-49b9-89ff-5396abc2e582" - } - ], - "healthcareService": [ - { - "identifier": { - "use": "usual", - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "694X0" - }, - "display": "SOUTHAMPTON GENERAL HOSPITAL LABORATORY" - } - ], - "telecom": [ - { - "system": "phone", - "value": "02380798431", - "use": "work" - } - ] - } - }, - { - "fullUrl": "urn:uuid:33eee58a-cf85-49a9-9d6c-5b323a0f4fd0", - "resource": { - "resourceType": "MedicationRequest", - "id": "33eee58a-cf85-49a9-9d6c-5b323a0f4fd0", - "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": "33eee58a-cf85-49a9-9d6c-5b323a0f4fd0" - } - ], - "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:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c" - }, - "authoredOn": "2021-06-25T14:40:14+01:00", - "requester": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "e511555b-312d-4307-8caf-999559a20e25" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "6FD469-0694X0-02504T" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "test" - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1", - "display": "Other (e.g. Community Pharmacy)" - } - } - ], - "quantity": { - "value": 23, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FCW64" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:a1ba87a0-6b23-4618-b742-f455135a981a", - "resource": { - "resourceType": "MedicationRequest", - "id": "a1ba87a0-6b23-4618-b742-f455135a981a", - "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": "a1ba87a0-6b23-4618-b742-f455135a981a" - } - ], - "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": "35901911000001104", - "display": "Amoxicillin 125mg/5ml oral suspension sugar free" - } - ] - }, - "subject": { - "reference": "urn:uuid:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c" - }, - "authoredOn": "2021-06-25T14:40:14+01:00", - "requester": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "e511555b-312d-4307-8caf-999559a20e25" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "6FD469-0694X0-02504T" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "test" - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1", - "display": "Other (e.g. Community Pharmacy)" - } - } - ], - "quantity": { - "value": 100, - "unit": "ml", - "system": "http://snomed.info/sct", - "code": "258773002" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FCW64" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:d1a02497-257b-4149-a093-84454c3b5bae", - "resource": { - "resourceType": "MedicationRequest", - "id": "d1a02497-257b-4149-a093-84454c3b5bae", - "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": "d1a02497-257b-4149-a093-84454c3b5bae" - } - ], - "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": "329652003", - "display": "Ibuprofen 200mg tablets" - } - ] - }, - "subject": { - "reference": "urn:uuid:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c" - }, - "authoredOn": "2021-06-25T14:40:14+01:00", - "requester": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "e511555b-312d-4307-8caf-999559a20e25" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "6FD469-0694X0-02504T" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "2 Four Times Daily" - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1", - "display": "Other (e.g. Community Pharmacy)" - } - } - ], - "quantity": { - "value": 24, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FCW64" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:c7d942f2-3c1d-4d93-9ba8-ba57db83cdc0", - "resource": { - "resourceType": "MedicationRequest", - "id": "c7d942f2-3c1d-4d93-9ba8-ba57db83cdc0", - "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": "c7d942f2-3c1d-4d93-9ba8-ba57db83cdc1" - } - ], - "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": "39695211000001102", - "display": "Aspirin 300mg dispersible tablets" - } - ] - }, - "subject": { - "reference": "urn:uuid:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c" - }, - "authoredOn": "2021-06-25T14:40:14+01:00", - "requester": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "e511555b-312d-4307-8caf-999559a20e25" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "6FD469-0694X0-02504T" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "Take ONE Four Times Daily" - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1", - "display": "Other (e.g. Community Pharmacy)" - } - } - ], - "quantity": { - "value": 28, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FCW64" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:e5e19e28-b351-4fd4-8133-24608f360d2f", - "resource": { - "resourceType": "Provenance", - "id": "e5e19e28-b351-4fd4-8133-24608f360d2f", - "target": [ - { - "reference": "urn:uuid:33eee58a-cf85-49a9-9d6c-5b323a0f4fd0", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:a1ba87a0-6b23-4618-b742-f455135a981a", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:d1a02497-257b-4149-a093-84454c3b5bae", - "type": "MedicationRequest" - } - ], - "recorded": "2021-06-25T14:40:17.2561801+01:00", - "agent": [ - { - "who": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c", - "type": "PractitionerRole" - } - } - ], - "signature": [ - { - "type": [ - { - "system": "urn:iso-astm:E1762-95:2013", - "code": "1.2.840.10065.1.12.1.1", - "display": "Author's Signature" - } - ], - "when": "2021-06-25T14:40:17.2561801+01:00", - "who": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c", - "type": "PractitionerRole" - }, - "data": "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+cWREeWQ0eXd4ekpNa2liVU15V1puUDhwVFdrPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPjxTaWduYXR1cmVWYWx1ZT5ESC9GaGNXcnZPUFBrNkxhbWc5WlpnTnJVajJmRnVIZ2NidlZEYmJMblJsQnpDdThPZDErb0NHUENRSHdwSkFRNW8xTlpnSmNjcjI5dHkwV3pCeFBDZEF3OUd2a2dLNy92bCtpdmJlWVlrcEM3V0NLTmxQMkh4UHMzV01KQ2kxOWJ4UFdBTVVBUGNsM2dBTHpVN0lPcXJuc1VTZ20zYnllai9lUERNU0d4UTQ9PC9TaWduYXR1cmVWYWx1ZT48S2V5SW5mbz48WDUwOURhdGE+PFg1MDlDZXJ0aWZpY2F0ZT5NSUlEdURDQ0FxQ2dBd0lCQWdJRVhjbW83ekFOQmdrcWhraUc5dzBCQVFzRkFEQTJNUXd3Q2dZRFZRUUtFd051YUhNeEN6QUpCZ05WQkFzVEFrTkJNUmt3RndZRFZRUURFeEJPU0ZNZ1NVNVVJRXhsZG1Wc0lERkVNQjRYRFRJd01Ea3lNekUxTkRrME9Gb1hEVEl5TURreU16RTJNVGswT0Zvd1F6RU1NQW9HQTFVRUNoTURibWh6TVE4d0RRWURWUVFMRXdaUVpXOXdiR1V4SWpBZ0JnTlZCQU1NR1RVMU5UQTROalF4TlRFd05WOVVaWE4wWDFSbGMzUmtiMmN3Z1o4d0RRWUpLb1pJaHZjTkFRRUJCUUFEZ1kwQU1JR0pBb0dCQVBDeW1MYjBJdm5nS21ZOTlwcmx2VU8xTmxnK1l5NHpEanpUaHVxZDJrdGsyOE1lWWRWbUFMV0xJWTY5cE50VDhEV0NrSmJtVytyR1JFYzFueG9halcrb0NqV2dlMUtjdytVVU15MnNZNXBMMmJoMGpmNGhtK3d5OVZvbGdNeWRsWmN6cklxWmJpYjhCbTBZbkZtbGtqSDltZnU1ZWRzQzhPVmYzdHIyUktYSEFnTUJBQUdqZ2dGRE1JSUJQekFPQmdOVkhROEJBZjhFQkFNQ0JrQXdaUVlEVlIwZ0FRSC9CRnN3V1RCWEJnc3Foam9BaVh0bUFBTUNBREJJTUVZR0NDc0dBUVVGQndJQkZqcG9kSFJ3Y3pvdkwzQnJhUzV1YUhNdWRXc3ZZMlZ5ZEdsbWFXTmhkR1ZmY0c5c2FXTnBaWE12WTI5dWRHVnVkRjlqYjIxdGFYUnRaVzUwTURNR0ExVWRId1FzTUNvd0tLQW1vQ1NHSW1oMGRIQTZMeTlqY213dWJtaHpMblZyTDJsdWRDOHhaQzlqY214ak15NWpjbXd3S3dZRFZSMFFCQ1F3SW9BUE1qQXlNREE1TWpNeE5UUTVORGhhZ1E4eU1ESXlNREl4TmpFMk1UazBPRm93SHdZRFZSMGpCQmd3Rm9BVW9KWWZnWVROUGQ2RVVLTDZRTEl6SHhZNVBGSXdIUVlEVlIwT0JCWUVGRi9YS2h0NWVpN3FyeHcxM1dmR2xDQStaNS9NTUFrR0ExVWRFd1FDTUFBd0dRWUpLb1pJaHZaOUIwRUFCQXd3Q2hzRVZqZ3VNd01DQkxBd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFFZmFidkVRcmt0MEJTUnkzYnA1NkRJMUJyWEN5eVFWdjhORkdsZ2VDQTNOV0V5dE9uQkpqaDNJT0c1YlpsclVBK1lnK2xJMWxFUFlWaGJxd0R2bmlDdUYyOWw1TE0zai82Y1c0YWRIRUFPMTVnZWNHUVRzbm9DUlRZMnYrTzBDcVZ5MGtaWkV0dFRFbGtPekZ3clNvQzRITDdkOG96cG9UR0NpVDBHK3lKT25mWm9yc1ZWd1JFNW9rNUhwMlYyQWEwQ2EvUUVkNzc4UFMxOXFqdHBEUWJjODdVYkVPSXY2alZscUM3VHhIVGViNjB2akhIcU14VFU5bCtjdGF0TnU4N1ovMTA3eG1NRmFVYTRVMXA0R0xZYm9QbElOSUkzVVlwdGNDdXRXeHROcTVGZ1RNTkI1eEJQUE9SU2tjSWxrNDBsc0U1R3EzczlVZ2xLZzNBQ3V1Wnc9PC9YNTA5Q2VydGlmaWNhdGU+PC9YNTA5RGF0YT48L0tleUluZm8+PC9TaWduYXR1cmU+" - } - ] - } - } - ] -} \ No newline at end of file diff --git a/Examples/fail/Bundle-prescription-order-missingFullUrl.json b/Examples/fail/Bundle-prescription-order-missingFullUrl.json deleted file mode 100644 index 42ffbd1..0000000 --- a/Examples/fail/Bundle-prescription-order-missingFullUrl.json +++ /dev/null @@ -1,668 +0,0 @@ -{ - "resourceType": "Bundle", - "id": "0d432bc3-c706-4ca8-93a2-17985e1383d5", - "identifier": { - "system": "https://tools.ietf.org/html/rfc4122", - "value": "1b73cdae-f6da-450a-9dd8-edd3f8ff5c16" - }, - "type": "message", - "entry": [ - { - "resource": { - "resourceType": "MessageHeader", - "id": "7f0ad496-f165-41e8-8751-1b6c2dea8752", - "eventCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/message-event", - "code": "prescription-order", - "display": "Prescription Order" - }, - "destination": [ - { - "endpoint": "urn:nhs-uk:addressing:ods:FCW64", - "receiver": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FCW64" - } - } - } - ], - "sender": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c", - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "694X0" - }, - "display": "Clark|Jackie" - }, - "source": { - "endpoint": "urn:nhs-uk:addressing:ods:694X0" - }, - "focus": [ - { - "reference": "urn:uuid:33eee58a-cf85-49a9-9d6c-5b323a0f4fd0", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:a1ba87a0-6b23-4618-b742-f455135a981a", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:d1a02497-257b-4149-a093-84454c3b5bae", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:c7d942f2-3c1d-4d93-9ba8-ba57db83cdc0", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c", - "type": "Patient" - } - ] - } - }, - { - "fullUrl": "urn:uuid:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c", - "resource": { - "resourceType": "Patient", - "id": "a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c", - "identifier": [ - { - - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9657847419" - } - ], - "name": [ - { - "use": "usual", - "family": "HOMAN", - "given": [ - "Amos Lloyd" - ] - } - ], - "telecom": [ - { - "system": "phone", - "value": "07000123123" - } - ], - "gender": "male", - "birthDate": "1985-03-12", - "address": [ - { - "use": "home", - "line": [ - "1 Dalmatian Way", - "Broughton", - "BRIGG" - ], - "postalCode": "DN20 0ET" - } - ], - "generalPractitioner": [ - { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "A20047" - } - } - ] - } - }, - { - "fullUrl": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c", - "resource": { - "resourceType": "PractitionerRole", - "id": "f36f6202-5b48-49e7-970b-3b4a1761247c", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", - "value": "555086415105" - } - ], - "practitioner": { - "identifier": { - "system": "https://fhir.hl7.org.uk/Id/gmc-number", - "value": "1231234" - }, - "display": "Jackie Clark" - }, - "organization": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "RHM" - }, - "display": "UNIVERSITY HOSPITAL SOUTHAMPTON NHS FOUNDATION TRUST" - }, - "code": [ - { - "coding": [ - { - "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName", - "code": "R8000", - "display": "Clinical Practitioner Access Role" - } - ] - } - ], - "location": [ - { - "reference": "urn:uuid:4bdb71a5-209a-49b9-89ff-5396abc2e582" - } - ], - "healthcareService": [ - { - "identifier": { - "use": "usual", - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "694X0" - }, - "display": "SOUTHAMPTON GENERAL HOSPITAL LABORATORY" - } - ], - "telecom": [ - { - "system": "phone", - "value": "02380798431", - "use": "work" - } - ] - } - }, - { - "fullUrl": "urn:uuid:4bdb71a5-209a-49b9-89ff-5396abc2e582", - "resource": { - "resourceType": "Location", - "id": "4bdb71a5-209a-49b9-89ff-5396abc2e582", - "status": "active", - "mode": "instance", - "address": { - "line": [ - "SOUTHAMPTON GENERAL HOSPITAL", - "TREMONA ROAD", - "SOUTHAMPTON" - ], - "postalCode": "SO16 6YD" - } - } - }, - { - "fullUrl": "urn:uuid:33eee58a-cf85-49a9-9d6c-5b323a0f4fd0", - "resource": { - "resourceType": "MedicationRequest", - "id": "33eee58a-cf85-49a9-9d6c-5b323a0f4fd0", - "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": "33eee58a-cf85-49a9-9d6c-5b323a0f4fd0" - } - ], - "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:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c" - }, - "authoredOn": "2021-06-25T14:40:14+01:00", - "requester": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "e511555b-312d-4307-8caf-999559a20e25" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "6FD469-0694X0-02504T" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "test" - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1", - "display": "Other (e.g. Community Pharmacy)" - } - } - ], - "quantity": { - "value": 23, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FCW64" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:a1ba87a0-6b23-4618-b742-f455135a981a", - "resource": { - "resourceType": "MedicationRequest", - "id": "a1ba87a0-6b23-4618-b742-f455135a981a", - "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": "a1ba87a0-6b23-4618-b742-f455135a981a" - } - ], - "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": "35901911000001104", - "display": "Amoxicillin 125mg/5ml oral suspension sugar free" - } - ] - }, - "subject": { - "reference": "urn:uuid:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c" - }, - "authoredOn": "2021-06-25T14:40:14+01:00", - "requester": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "e511555b-312d-4307-8caf-999559a20e25" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "6FD469-0694X0-02504T" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "test" - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1", - "display": "Other (e.g. Community Pharmacy)" - } - } - ], - "quantity": { - "value": 100, - "unit": "ml", - "system": "http://snomed.info/sct", - "code": "258773002" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FCW64" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:d1a02497-257b-4149-a093-84454c3b5bae", - "resource": { - "resourceType": "MedicationRequest", - "id": "d1a02497-257b-4149-a093-84454c3b5bae", - "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": "d1a02497-257b-4149-a093-84454c3b5bae" - } - ], - "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": "329652003", - "display": "Ibuprofen 200mg tablets" - } - ] - }, - "subject": { - "reference": "urn:uuid:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c" - }, - "authoredOn": "2021-06-25T14:40:14+01:00", - "requester": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "e511555b-312d-4307-8caf-999559a20e25" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "6FD469-0694X0-02504T" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "2 Four Times Daily" - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1", - "display": "Other (e.g. Community Pharmacy)" - } - } - ], - "quantity": { - "value": 24, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FCW64" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:c7d942f2-3c1d-4d93-9ba8-ba57db83cdc0", - "resource": { - "resourceType": "MedicationRequest", - "id": "c7d942f2-3c1d-4d93-9ba8-ba57db83cdc0", - "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": "c7d942f2-3c1d-4d93-9ba8-ba57db83cdc0" - } - ], - "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": "39695211000001102", - "display": "Aspirin 300mg dispersible tablets" - } - ] - }, - "subject": { - "reference": "urn:uuid:a1f9ad95-8e2b-4020-a6bd-124f6fe2ef1c" - }, - "authoredOn": "2021-06-25T14:40:14+01:00", - "requester": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "e511555b-312d-4307-8caf-999559a20e25" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "6FD469-0694X0-02504T" - }, - "courseOfTherapyType": { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy", - "code": "acute", - "display": "Short course (acute) therapy" - } - ] - }, - "dosageInstruction": [ - { - "text": "Take ONE Four Times Daily" - } - ], - "dispenseRequest": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference", - "code": "P1", - "display": "Other (e.g. Community Pharmacy)" - } - } - ], - "quantity": { - "value": 28, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FCW64" - } - } - }, - "substitution": { - "allowedBoolean": false - } - } - }, - { - "fullUrl": "urn:uuid:e5e19e28-b351-4fd4-8133-24608f360d2f", - "resource": { - "resourceType": "Provenance", - "id": "e5e19e28-b351-4fd4-8133-24608f360d2f", - "target": [ - { - "reference": "urn:uuid:33eee58a-cf85-49a9-9d6c-5b323a0f4fd0", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:a1ba87a0-6b23-4618-b742-f455135a981a", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:d1a02497-257b-4149-a093-84454c3b5bae", - "type": "MedicationRequest" - }, - { - "reference": "urn:uuid:c7d942f2-3c1d-4d93-9ba8-ba57db83cdc0", - "type": "MedicationRequest" - } - ], - "recorded": "2021-06-25T14:40:17.2561801+01:00", - "agent": [ - { - "who": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c", - "type": "PractitionerRole" - } - } - ], - "signature": [ - { - "type": [ - { - "system": "urn:iso-astm:E1762-95:2013", - "code": "1.2.840.10065.1.12.1.1", - "display": "Author's Signature" - } - ], - "when": "2021-06-25T14:40:17.2561801+01:00", - "who": { - "reference": "urn:uuid:f36f6202-5b48-49e7-970b-3b4a1761247c", - "type": "PractitionerRole" - }, - "data": "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+PFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L0Nhbm9uaWNhbGl6YXRpb25NZXRob2Q+PFNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L0RpZ2VzdE1ldGhvZD48RGlnZXN0VmFsdWU+cWREeWQ0eXd4ekpNa2liVU15V1puUDhwVFdrPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPjxTaWduYXR1cmVWYWx1ZT5ESC9GaGNXcnZPUFBrNkxhbWc5WlpnTnJVajJmRnVIZ2NidlZEYmJMblJsQnpDdThPZDErb0NHUENRSHdwSkFRNW8xTlpnSmNjcjI5dHkwV3pCeFBDZEF3OUd2a2dLNy92bCtpdmJlWVlrcEM3V0NLTmxQMkh4UHMzV01KQ2kxOWJ4UFdBTVVBUGNsM2dBTHpVN0lPcXJuc1VTZ20zYnllai9lUERNU0d4UTQ9PC9TaWduYXR1cmVWYWx1ZT48S2V5SW5mbz48WDUwOURhdGE+PFg1MDlDZXJ0aWZpY2F0ZT5NSUlEdURDQ0FxQ2dBd0lCQWdJRVhjbW83ekFOQmdrcWhraUc5dzBCQVFzRkFEQTJNUXd3Q2dZRFZRUUtFd051YUhNeEN6QUpCZ05WQkFzVEFrTkJNUmt3RndZRFZRUURFeEJPU0ZNZ1NVNVVJRXhsZG1Wc0lERkVNQjRYRFRJd01Ea3lNekUxTkRrME9Gb1hEVEl5TURreU16RTJNVGswT0Zvd1F6RU1NQW9HQTFVRUNoTURibWh6TVE4d0RRWURWUVFMRXdaUVpXOXdiR1V4SWpBZ0JnTlZCQU1NR1RVMU5UQTROalF4TlRFd05WOVVaWE4wWDFSbGMzUmtiMmN3Z1o4d0RRWUpLb1pJaHZjTkFRRUJCUUFEZ1kwQU1JR0pBb0dCQVBDeW1MYjBJdm5nS21ZOTlwcmx2VU8xTmxnK1l5NHpEanpUaHVxZDJrdGsyOE1lWWRWbUFMV0xJWTY5cE50VDhEV0NrSmJtVytyR1JFYzFueG9halcrb0NqV2dlMUtjdytVVU15MnNZNXBMMmJoMGpmNGhtK3d5OVZvbGdNeWRsWmN6cklxWmJpYjhCbTBZbkZtbGtqSDltZnU1ZWRzQzhPVmYzdHIyUktYSEFnTUJBQUdqZ2dGRE1JSUJQekFPQmdOVkhROEJBZjhFQkFNQ0JrQXdaUVlEVlIwZ0FRSC9CRnN3V1RCWEJnc3Foam9BaVh0bUFBTUNBREJJTUVZR0NDc0dBUVVGQndJQkZqcG9kSFJ3Y3pvdkwzQnJhUzV1YUhNdWRXc3ZZMlZ5ZEdsbWFXTmhkR1ZmY0c5c2FXTnBaWE12WTI5dWRHVnVkRjlqYjIxdGFYUnRaVzUwTURNR0ExVWRId1FzTUNvd0tLQW1vQ1NHSW1oMGRIQTZMeTlqY213dWJtaHpMblZyTDJsdWRDOHhaQzlqY214ak15NWpjbXd3S3dZRFZSMFFCQ1F3SW9BUE1qQXlNREE1TWpNeE5UUTVORGhhZ1E4eU1ESXlNREl4TmpFMk1UazBPRm93SHdZRFZSMGpCQmd3Rm9BVW9KWWZnWVROUGQ2RVVLTDZRTEl6SHhZNVBGSXdIUVlEVlIwT0JCWUVGRi9YS2h0NWVpN3FyeHcxM1dmR2xDQStaNS9NTUFrR0ExVWRFd1FDTUFBd0dRWUpLb1pJaHZaOUIwRUFCQXd3Q2hzRVZqZ3VNd01DQkxBd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFFZmFidkVRcmt0MEJTUnkzYnA1NkRJMUJyWEN5eVFWdjhORkdsZ2VDQTNOV0V5dE9uQkpqaDNJT0c1YlpsclVBK1lnK2xJMWxFUFlWaGJxd0R2bmlDdUYyOWw1TE0zai82Y1c0YWRIRUFPMTVnZWNHUVRzbm9DUlRZMnYrTzBDcVZ5MGtaWkV0dFRFbGtPekZ3clNvQzRITDdkOG96cG9UR0NpVDBHK3lKT25mWm9yc1ZWd1JFNW9rNUhwMlYyQWEwQ2EvUUVkNzc4UFMxOXFqdHBEUWJjODdVYkVPSXY2alZscUM3VHhIVGViNjB2akhIcU14VFU5bCtjdGF0TnU4N1ovMTA3eG1NRmFVYTRVMXA0R0xZYm9QbElOSUkzVVlwdGNDdXRXeHROcTVGZ1RNTkI1eEJQUE9SU2tjSWxrNDBsc0U1R3EzczlVZ2xLZzNBQ3V1Wnc9PC9YNTA5Q2VydGlmaWNhdGU+PC9YNTA5RGF0YT48L0tleUluZm8+PC9TaWduYXR1cmU+" - } - ] - } - } - ] -} \ No newline at end of file diff --git a/Examples/fail/Bundle-searchset-COVIDExemption-missingFullUrl.json b/Examples/fail/Bundle-searchset-COVIDExemption-missingFullUrl.json deleted file mode 100644 index f756020..0000000 --- a/Examples/fail/Bundle-searchset-COVIDExemption-missingFullUrl.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "resourceType": "Bundle", - "id": "a60bfaec-8bc1-4906-9962-40eba5b48ea3", - "type": "searchset", - "total": 1, - "link": [ - { - "relation": "self", - "url": "http://example.org/FHIR/R4/QuestionnaireResponse?patient.identifier=https://fhir.nhs.uk/Id/nhs-number|9000000009" - } - ], - "entry": [ - { - "resource": { - "resourceType": "QuestionnaireResponse", - "id": "2fa8f1b8-caea-4f3d-9978-c0839da568b2", - "contained": [ - { - "id": "p1", - "resourceType": "Patient", - "birthDate": "1960-01-01" - } - ], - "questionnaire": "https://fhir.nhs.uk/Questionnaire/COVIDVaccinationMedicalExemption", - "status": "completed", - "subject": { - "reference": "#p1", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9912003888" - } - ], - "display": "Ivor Fritagelse" - }, - "authored": "2021-08-13T17:15:00+00:00", - "item": [ - { - "linkId": "exemptionStatus", - "answer": [ - { - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/covid-vaccination-medical-exemption", - "code": "1", - "display": "Approved: Exemption from COVID vaccination" - } - } - ] - }, - { - "linkId": "exemptionPeriodStart", - "answer": [ - { - "valueDateTime": "2021-08-13T17:15:00+00:00" - } - ] - }, - { - "linkId": "exemptionPeriodEnd", - "answer": [ - { - "valueDateTime": "2022-08-13T17:15:00+00:00" - } - ] - } - ] - } - } - ] -} diff --git a/Examples/fail/MedicationDispense-daysSupply-invalidaUnitOfMeasure.json b/Examples/fail/MedicationDispense-daysSupply-invalidaUnitOfMeasure.json deleted file mode 100644 index fbad044..0000000 --- a/Examples/fail/MedicationDispense-daysSupply-invalidaUnitOfMeasure.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "resourceType": "MedicationDispense", - "id": "06167339-9337-D030-0366-514A6A46DA17", - "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" - } - } - ], - "contained": [ - { - "resourceType": "PractitionerRole", - "id": "performer", - "practitioner": { - "identifier": { - "system": "https://fhir.hl7.org.uk/Id/gphc-number", - "value": "7654321" - }, - "display": "Mr Peter Potion" - }, - "organization": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - }, - "display": "The Simple Pharmacy" - }, - "telecom": [ - { - "system": "phone", - "use": "work", - "value": "01234567890" - } - ] - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", - "value": "06167339-9337-D030-0366-514A6A46DA17" - } - ], - "status": "in-progress", - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "585011000001109", - "display": "Metronidazole 400mg tablets (Teva UK Ltd)" - } - ] - }, - "subject": { - "type": "Patient", - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9453740519" - }, - "display": "MISS ETTA CORY" - }, - "performer": [ - { - "actor": { - "type": "PractitionerRole", - "reference": "#performer" - } - } - ], - "authorizingPrescription": [ - { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-GroupIdentifier", - "extension": [ - { - "url": "shortForm", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "3C2366-B81001-0A409U" - } - }, - { - "url": "UUID", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "66317E0C-CE13-59AD-9979-9B568E080160" - } - } - ] - } - ], - "identifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "E76622AE-E2DB-5683-2045-D1C229EDA3A2" - } - } - ], - "type": { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", - "code": "0003", - "display": "Item dispensed - partial" - } - ] - }, - "quantity": { - "value": 21, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "daysSupply": { - "value": 7, - "unit": "Day", - "system": "http://unitsofmeasure.org", - "code": "not a unit" - }, - "whenPrepared": "2004-09-16T16:30:00+00:00", - "dosageInstruction": [ - { - "text": "3 times a day for 10 days", - "timing": { - "repeat": { - "boundsDuration": { - "value": 10, - "unit": "d" - }, - "frequency": 3, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "value": 1, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - } - } - ] - } - ] -} diff --git a/Examples/fail/MedicationDispense-timing-invalidaUnitOfMeasure.json b/Examples/fail/MedicationDispense-timing-invalidaUnitOfMeasure.json deleted file mode 100644 index 16b8dd9..0000000 --- a/Examples/fail/MedicationDispense-timing-invalidaUnitOfMeasure.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "resourceType": "MedicationDispense", - "id": "06167339-9337-D030-0366-514A6A46DA17", - "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": "06167339-9337-D030-0366-514A6A46DA17" - } - ], - "contained": [ - { - "resourceType": "PractitionerRole", - "id": "performer", - "practitioner": { - "identifier": { - "system": "https://fhir.hl7.org.uk/Id/gphc-number", - "value": "7654321" - }, - "display": "Mr Peter Potion" - }, - "organization": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "VNE51" - }, - "display": "The Simple Pharmacy" - }, - "telecom": [ - { - "system": "phone", - "use": "work", - "value": "01234567890" - } - ] - } - ], - "status": "in-progress", - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "585011000001109", - "display": "Metronidazole 400mg tablets (Teva UK Ltd)" - } - ] - }, - "subject": { - "type": "Patient", - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9453740519" - }, - "display": "MISS ETTA CORY" - }, - "performer": [ - { - "actor": { - "type": "PractitionerRole", - "reference": "#performer" - } - } - ], - "authorizingPrescription": [ - { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-GroupIdentifier", - "extension": [ - { - "url": "shortForm", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "3C2366-B81001-0A409U" - } - }, - { - "url": "UUID", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "66317E0C-CE13-59AD-9979-9B568E080160" - } - } - ] - } - ], - "identifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-item-number", - "value": "E76622AE-E2DB-5683-2045-D1C229EDA3A2" - } - } - ], - "type": { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", - "code": "0003", - "display": "Item dispensed - partial" - } - ] - }, - "quantity": { - "value": 21, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "daysSupply": { - "value": 7, - "unit": "Day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "whenPrepared": "2004-09-16T16:30:00+00:00", - "dosageInstruction": [ - { - "text": "3 times a day for 10 days", - "timing": { - "repeat": { - "boundsDuration": { - "value": 10, - "unit": "d" - }, - "frequency": 3, - "period": 1, - "periodUnit": "not a unit" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "value": 1, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - } - } - ] - } - ] -} diff --git a/Examples/fail/MedicationRequest-invalid-json.json b/Examples/fail/MedicationRequest-invalid-json.json deleted file mode 100644 index 46d7e33..0000000 --- a/Examples/fail/MedicationRequest-invalid-json.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "resourceType": "MedicationRequest", - "id": "A7B86F8D-1D7C-FC28-E050-D20AE3A215F4", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101" - } - }, - { - "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": "A7B86F8D-1D7C-FC28-E050-D20AE3A215F0" - }, - "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:848d8470-bd51-494e-9347-8142ea75cb23" - }, - "authoredOn": "2019-12-30T12:00:00+00:00", - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca645" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "A7B86F8D-1CF8-FC28-E050-D20AE3A215F0" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "3C2366-B81001-0A409U" - }, - "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": "0004" - } - } - ], - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FX748" - } - }, - "quantity": { - "value": 28, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - } - }, - "substitution": { - "allowedBoolean": false - } -} \ No newline at end of file diff --git a/Examples/fail/MedicationRequest-missingMedication.json b/Examples/fail/MedicationRequest-missingMedication.json deleted file mode 100644 index 8275431..0000000 --- a/Examples/fail/MedicationRequest-missingMedication.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "resourceType": "MedicationRequest", - "id": "A7B86F8D-1D7C-FC28-E050-D20AE3A215F4", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101" - } - }, - { - "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": "A7B86F8D-1D7C-FC28-E050-D20AE3A215F0" - } - ], - "status": "active", - "intent": "order", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "outpatient", - "display": "Outpatient" - } - ] - } - ], - "medicationCodeableConcept": { - "coding": [ - ] - }, - "subject": { - "reference": "urn:uuid:848d8470-bd51-494e-9347-8142ea75cb23" - }, - "authoredOn": "2019-12-30T12:00:00+00:00", - "requester": { - "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca645" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "A7B86F8D-1CF8-FC28-E050-D20AE3A215F0" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "3C2366-B81001-0A409U" - }, - "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": "0004" - } - } - ], - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FX748" - } - }, - "quantity": { - "value": 28, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - } - }, - "substitution": { - "allowedBoolean": false - } -} \ No newline at end of file diff --git a/Examples/fail/patient-chi-number.json b/Examples/fail/patient-chi-number.json deleted file mode 100644 index 4d6c971..0000000 --- a/Examples/fail/patient-chi-number.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "resourceType": "Patient", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "1111111111" - } - ], - "name": [ - { - "given": [ - "Jane" - ], - "family": "Smith", - "prefix": [ - "Mrs" - ], - "suffix": [ - "MBE" - ] - } - ], - "gender": "female", - "birthDate": "2010-10-22", - "generalPractitioner": [ - { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "Y12345" - } - } - ], - "address": [ - { - - "line": [ - "1 Trevelyan Square", - "Boar Lane", - "City Centre", - "Leeds", - "West Yorkshire" - ], - "postalCode": "LS1 6AE" - } - ] -} \ No newline at end of file diff --git a/Examples/pass/Bundle-searchset-COVIDImmunization.json b/Examples/pass/Bundle-searchset-COVIDImmunization.json deleted file mode 100644 index 96c7da1..0000000 --- a/Examples/pass/Bundle-searchset-COVIDImmunization.json +++ /dev/null @@ -1,248 +0,0 @@ -{ - "resourceType": "Bundle", - "id": "dd4c3e37-555d-47fc-9309-37539893e074", - "type": "searchset", - "total": 2, - "link": [ - { - "relation": "self", - "url": "http://example.org/FHIR/R4/Immunization?patient.identifier=https://fhir.nhs.uk/Id/nhs-number|9000000009" - } - ], - "entry": [ - { - "fullUrl": "Immunization/d11c69d8-7a50-4a54-a848-7648121e995f", - "resource": { - "resourceType": "Immunization", - "id": "d11c69d8-7a50-4a54-a848-7648121e995f", - "extension": [ - { - "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "1324681000000101", - "display": "Administration of first dose of severe acute respiratory syndrome coronavirus 2 vaccine (procedure)" - } - ] - } - } - ], - "contained" : [ - { - "resourceType": "Patient", - "id":"patient", - "birthDate": "1965-02-28" - } - ], - "identifier": [ - { - "use": "secondary", - "system": "https://supplierABC/identifiers/vacc", - "value": "1324761000000100" - } - ], - "status": "completed", - "vaccineCode": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "39114911000001105", - "display": "COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)" - } - ] - }, - "patient": { - "type": "Patient", - "reference": "#patient", - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9000000009" - } - }, - "occurrenceDateTime": "2020-12-10T13:00:08.476000+00:00", - "recorded": "2020-12-10", - "primarySource": true, - "manufacturer": { - "display": "AstraZeneca Ltd" - }, - "lotNumber": "R04X", - "expirationDate": "2021-04-29", - "site": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "368208006", - "display": "Left upper arm structure (body structure)" - } - ] - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "78421000", - "display": "Intramuscular route (qualifier value)" - } - ] - }, - "doseQuantity": { - "system": "http://snomed.info/sct", - "value": 1, - "unit": "pre-filled disposable injection", - "code": "3318611000001103" - }, - "reportOrigin": {}, - "performer": [ - { - "actor": { - "type": "Organization", - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "RX809" - }, - "display": "TEST-SITE" - } - } - ], - "reasonCode": [ - { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "443684005", - "display": "Disease outbreak (event)" - } - ] - } - ], - "protocolApplied": [ - { - "doseNumberPositiveInt": 1 - } - ] - }, - "search": { - "mode": "match" - } - }, - { - "fullUrl": "Immunization/8da02505-db94-40b6-a8ed-d5af5628e28c", - "resource": { - "resourceType": "Immunization", - "id": "8da02505-db94-40b6-a8ed-d5af5628e28c", - "extension": [ - { - "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "1324681000000101", - "display": "Administration of first dose of severe acute respiratory syndrome coronavirus 2 vaccine (procedure)" - } - ] - } - } - ], - "contained" : [ - { - "resourceType": "Patient", - "id":"patient", - "birthDate": "1965-02-28" - } - ], - "identifier": [ - { - "use": "secondary", - "system": "https://supplierABC/identifiers/vacc", - "value": "1324761000000102" - } - ], - "status": "completed", - "vaccineCode": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "39114911000001105", - "display": "COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)" - } - ] - }, - "patient": { - "type": "Patient", - "reference": "#patient", - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9000000009" - } - }, - "occurrenceDateTime": "2020-12-31T13:00:08.476000+00:00", - "recorded": "2020-12-31", - "primarySource": true, - "manufacturer": { - "display": "AstraZeneca Ltd" - }, - "lotNumber": "R04X", - "expirationDate": "2021-04-29", - "site": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "368208006", - "display": "Left upper arm structure (body structure)" - } - ] - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "78421000", - "display": "Intramuscular route (qualifier value)" - } - ] - }, - "doseQuantity": { - "system": "http://snomed.info/sct", - "value": 1, - "unit": "pre-filled disposable injection", - "code": "3318611000001103" - }, - "reportOrigin": {}, - "performer": [ - { - "actor": { - "type": "Organization", - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "RX809" - }, - "display": "TEST-SITE" - } - } - ], - "reasonCode": [ - { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "443684005", - "display": "Disease outbreak (event)" - } - ] - } - ], - "protocolApplied": [ - { - "doseNumberPositiveInt": 1 - } - ] - }, - "search": { - "mode": "match" - } - } - ] -} diff --git a/Examples/pass/Bundle-searchset-COVIDObservation.json b/Examples/pass/Bundle-searchset-COVIDObservation.json deleted file mode 100644 index 0869e00..0000000 --- a/Examples/pass/Bundle-searchset-COVIDObservation.json +++ /dev/null @@ -1,216 +0,0 @@ -{ - "resourceType": "Bundle", - "id": "c01c8284-5561-4825-9f0d-3bdcaf18c8d4", - "type": "searchset", - "total": 2, - "link": [ - { - "relation": "self", - "url": "http://example.org/FHIR/R4/Observation?patient.identifier=https://fhir.nhs.uk/Id/nhs-number|9686368973" - } - ], - "entry": [ - { - "fullUrl": "Observation/edea022a-2d81-11eb-adc1-0242ac120004", - "resource": { - "resourceType": "Observation", - "id": "edea022a-2d81-11eb-adc1-0242ac120004", - "contained": [ - { - "resourceType": "Patient", - "id": "9686368973", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9686368973" - } - ], - "birthDate": "1997-12-28" - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/SpecimenId", - "value": "eb89a392-5b20-11eb-ae93-0242ac130003" - } - ], - "status": "final", - "code": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "871562009", - "display": "Detection of SARS-CoV-2 (severe acute respiratory syndrome coronavirus 2)" - } - ] - }, - "subject": { - "reference": "#9686368973", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9686368973" - } - ] - }, - "effectiveDateTime": "2020-09-22T13:00:08.476+00:00", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "1240591000000102", - "display": "SARS-CoV-2 (severe acute respiratory syndrome coronavirus 2) detection result negative" - } - ], - "text": "SARS-CoV-2-ORGY" - }, - "method": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "1156860005", - "display": "Rapid antigen detection immunoassay technique" - } - ] - }, - "specimen": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/SpecimenId", - "value": "eb89a392-5b20-11eb-ae93-0242ac130008" - } - }, - "device": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/Covid19-TestKit", - "value": "LFT" - }, - "display": "Lateral Flow Test" - }, - "performer": [ - { - "identifier": { - "value": "MK" - } - }, - { - "identifier": { - "value": "WKE03" - } - }, - { - "identifier": { - "value": "electiveCare" - } - } - ], - "encounter": { - "display": "health_care_professional" - } - }, - "search": { - "mode": "match" - } - }, - { - "fullUrl": "Observation/edea022a-2d81-11eb-adc1-0242ac120000", - "resource": { - "resourceType": "Observation", - "id": "edea022a-2d81-11eb-adc1-0242ac120000", - "contained": [ - { - "resourceType": "Patient", - "id": "9686368973", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9686368973" - } - ], - "birthDate": "1997-12-28" - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/SpecimenId", - "value": "eb89a392-5b20-11eb-ae93-0242ac130002" - } - ], - "status": "final", - "code": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "871562009", - "display": "Detection of SARS-CoV-2 (severe acute respiratory syndrome coronavirus 2)" - } - ] - }, - "subject": { - "reference": "#9686368973", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9686368973" - } - ] - }, - "effectiveDateTime": "2020-09-23T13:00:08.476+00:00", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "1240581000000104", - "display": "SARS-CoV-2 (severe acute respiratory syndrome coronavirus 2) detection result positive" - } - ], - "text": "SARS-CoV-2-ORGY" - }, - "method": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "1156860005", - "display": "Rapid antigen detection immunoassay technique" - } - ] - }, - "specimen": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/SpecimenId", - "value": "eb89a392-5b20-11eb-ae93-0242ac130002" - } - }, - "device": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/Covid19-TestKit", - "value": "LFT" - }, - "display": "Lateral Flow Test" - }, - "performer": [ - { - "identifier": { - "value": "LFD004" - } - }, - { - "identifier": { - "value": "WKE03" - } - }, - { - "identifier": { - "value": "electiveCare" - } - } - ], - "encounter": { - "display": "self" - } - }, - "search": { - "mode": "match" - } - } - ] -} diff --git a/Examples/pass/MedicationDispense-pass.json b/Examples/pass/MedicationDispense-pass.json deleted file mode 100644 index 5dc59cd..0000000 --- a/Examples/pass/MedicationDispense-pass.json +++ /dev/null @@ -1,160 +0,0 @@ -{ - "resourceType": "MedicationDispense", - "id": "06167339-9337-d030-0366-514a6a46da17", - "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" - } - } - ], - "contained": [ - { - "resourceType": "PractitionerRole", - "id": "performer", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/sds-role-profile-id", - "value": "741555508105" - } - ], - "code": [ - { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode", - "code": "S0030:G0100:R0620" - } - ] - } - ], - "practitioner": { - "reference": "https://directory.spineservices.nhs.uk/FHIR/R4/Practitioner/12344557", - "identifier": { - "system": "https://fhir.nhs.uk/Id/sds-user-id", - "value": "7654321" - }, - "display": "Mr Peter Potion" - }, - "organization": { - "reference": "urn:uuid:2bf9f37c-d88b-4f86-ad5f-373c1416e04b" - }, - "telecom": [ - { - "system": "phone", - "use": "work", - "value": "01234567890" - } - ] - } - ], - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number", - "value": "06167339-9337-d030-0366-514a6a46da17" - } - ], - "status": "in-progress", - "medicationCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "585011000001109", - "display": "Metronidazole 400mg tablets (Teva UK Ltd)" - } - ] - }, - "subject": { - "type": "Patient", - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9453740519" - }, - "display": "MISS ETTA CORY" - }, - "performer": [ - { - "actor": { - "type": "PractitionerRole", - "reference": "#performer" - } - } - ], - "authorizingPrescription": [ - { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-GroupIdentifier", - "extension": [ - { - "url": "shortForm", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "3C2366-B81001-0A409U" - } - }, - { - "url": "UUID", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "66317E0C-CE13-59AD-9979-9B568E080160" - } - } - ] - } - ], - "reference": "https://electronicprescriptionserices.nhs.uk/FHIR/R4/MedicationRequest/E76622AE-E2DB-5683-2045-D1C229EDA3A2" - } - ], - "type": { - "coding": [ - { - "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type", - "code": "0003", - "display": "Item dispensed - partial" - } - ] - }, - "quantity": { - "value": 21, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - }, - "daysSupply": { - "value": 7, - "unit": "Day", - "system": "http://unitsofmeasure.org", - "code": "d" - }, - "whenPrepared": "2004-09-16T16:30:00+00:00", - "dosageInstruction": [ - { - "text": "3 times a day for 10 days", - "timing": { - "repeat": { - "boundsDuration": { - "value": 10, - "unit": "d" - }, - "frequency": 3, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "value": 1, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - } - } - ] - } - ] -} diff --git a/Examples/pass/MedicationRequest-constraints.json b/Examples/pass/MedicationRequest-constraints.json deleted file mode 100644 index ebf739d..0000000 --- a/Examples/pass/MedicationRequest-constraints.json +++ /dev/null @@ -1,324 +0,0 @@ -{ - "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": "TBC" - } - ], - "status": "active", - "intent": "order", - "subject": { - "reference": "TBC" - }, - "authoredOn": "2022-10-21T13:47:00+00:00", - "category": [ - { - "coding": [ - { - "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category", - "code": "community", - "display": "Community" - } - ] - } - ], - "requester": { - "reference": "TBC" - }, - "groupIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "TBC", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "TBC" - } - } - ] - }, - "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" - } - } - ] - }, - { - "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" - } - } - ] - } - ], - "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 - } -} diff --git a/Examples/pass/MedicationRequest-pass.json b/Examples/pass/MedicationRequest-pass.json deleted file mode 100644 index 7ec627a..0000000 --- a/Examples/pass/MedicationRequest-pass.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "resourceType": "MedicationRequest", - "id": "A7B86F8D-1D7C-FC28-E050-D20AE3A215F4", - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType", - "valueCoding": { - "system": "https://fhir.nhs.uk/CodeSystem/prescription-type", - "code": "0101" - } - }, - { - "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": "A7B86F8D-1D7C-FC28-E050-D20AE3A215F0" - } - ], - "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:848d8470-bd51-494e-9347-8142ea75cb23" - }, - "authoredOn": "2019-12-30T12:00:00+00:00", - "requester": { - "reference": "PractitionerRole/123" - }, - "groupIdentifier": { - "extension": [ - { - "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId", - "valueIdentifier": { - "system": "https://fhir.nhs.uk/Id/prescription", - "value": "A7B86F8D-1CF8-FC28-E050-D20AE3A215F0" - } - } - ], - "system": "https://fhir.nhs.uk/Id/prescription-order-number", - "value": "3C2366-B81001-0A409U" - }, - "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": "0004" - } - } - ], - "performer": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "FX748" - } - }, - "quantity": { - "value": 28, - "unit": "tablet", - "system": "http://snomed.info/sct", - "code": "428673006" - } - }, - "substitution": { - "allowedBoolean": false - } -} diff --git a/Examples/pass/patient.json b/Examples/pass/patient.json deleted file mode 100644 index f06375b..0000000 --- a/Examples/pass/patient.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "resourceType": "Patient", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9000000009" - } - ], - "name": [ - { - "given": [ - "Jane" - ], - "family": "Smith", - "prefix": [ - "Mrs" - ], - "suffix": [ - "MBE" - ] - } - ], - "gender": "female", - "birthDate": "2010-10-22", - "generalPractitioner": [ - { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "Y12345" - } - } - ], - "address": [ - { - - "line": [ - "1 Trevelyan Square", - "Boar Lane", - "City Centre", - "Leeds", - "West Yorkshire" - ], - "postalCode": "LS1 6AE" - } - ] -} \ No newline at end of file diff --git a/FHIRValidationAction/packages/README.md b/FHIRValidationAction/packages/README.md new file mode 100644 index 0000000..df19d69 --- /dev/null +++ b/FHIRValidationAction/packages/README.md @@ -0,0 +1,3 @@ +# Package Storage + +This folder is to store the previously downloaded fhir packages to help speed up the installtion of packages for the github action \ No newline at end of file diff --git a/FHIRValidationAction/scripts/common.py b/FHIRValidationAction/scripts/common.py new file mode 100644 index 0000000..eefb444 --- /dev/null +++ b/FHIRValidationAction/scripts/common.py @@ -0,0 +1,30 @@ +import os +import json + +def append_failure(filename, response, failed): + new_issue = { + "severity": "failure", + "diagnostics": f"{response}" + } + # If filename doesn't exist yet, create the OperationOutcome shell, then append the issue + failed.setdefault(filename, { + "resourceType": "OperationOutcome", + "issue": [] + })["issue"].append(new_issue) + return + +def dump_json(output_file,issues): + if os.path.exists(output_file): + with open(output_file, 'r') as f: + existing = json.load(f) + for filename, outcome in issues.items(): + if filename in existing: + existing[filename]["issue"].extend(outcome["issue"]) + else: + existing[filename] = outcome + else: + existing = issues + + with open(output_file, 'w') as f: + json.dump(existing, f, indent=4) + return \ No newline at end of file diff --git a/FHIRValidationAction/scripts/config.json b/FHIRValidationAction/scripts/config.json new file mode 100644 index 0000000..d60a2ad --- /dev/null +++ b/FHIRValidationAction/scripts/config.json @@ -0,0 +1,12 @@ + +{ + "fhir-validator": { + "base_url": "http://localhost:8080/fhir" + }, + "paths": { + "test_script": "test", + "package": "test/package.json", + "test_assets": "test/Conformance-resources", + "test_examples": "test/Examples" + } +} diff --git a/FHIRValidationAction/scripts/configure-packages.py b/FHIRValidationAction/scripts/configure-packages.py new file mode 100644 index 0000000..9f779d9 --- /dev/null +++ b/FHIRValidationAction/scripts/configure-packages.py @@ -0,0 +1,137 @@ +#!/usr/bin/env python3 +"""Install FHIR package dependencies from package.json""" + +import json +import requests +import sys +import time +import os +import base64 +from common import append_failure, dump_json +from pathlib import Path + + +script_dir = os.path.dirname(os.path.abspath(__file__)) +config_path = os.path.join(script_dir, "config.json") + +#for github actions +test_script_repo_path = f"{Path.cwd()}/validation/FHIRValidationAction" +package_path = Path.cwd() + +#for testing locally +#test_script_repo_path = "." +#package_path = "./test" + +with open(config_path,"r") as f: + config = json.load(f) +SERVER_URL = config["fhir-validator"]["base_url"] + + +def check_package_locally(package_id, version): + name = f"{package_id}-{version}.tgz" + for _, _, files in os.walk(f"{test_script_repo_path}/packages"): + print(files) + if name in files: + return True + return False + + +def download_package(package_id, version, failed): + url = f"https://packages.simplifier.net/{package_id}/{version}" + response = requests.get(url) + + if response.status_code == 404: + print(f"Package {package_id}#{version} not found on registry") + append_failure("package.json", f"failed to find {package_id}: {version} on FHIR package Registry: {response.status_code} - {response.text}", failed) + return False + + with open(f"{test_script_repo_path}/packages/{package_id}-{version}.tgz", "wb") as f: + f.write(response.content) + return True + + +def install_package(package_id, version, server_url, failed): + package_path = f"{test_script_repo_path}/packages/{package_id}-{version}.tgz" + + with open(package_path, "rb") as f: + encoded = base64.b64encode(f.read()).decode("utf-8") + + params = { + "resourceType": "Parameters", + "parameter": [ + { + "name": "npmContent", + "valueBase64Binary": encoded + } + ] + } + + response = requests.post( + f"{server_url}/ImplementationGuide/$install", + data=json.dumps(params), + headers={ + "Content-Type": "application/fhir+json", + "Accept": "application/fhir+json" + } + ) + if response.status_code in [200, 201]: + print(f"Installed {package_id}:{version}") + return True + else: + print(f"Failed to install {package_id}:{version}: {response.status_code} - {response.text}") + failed.update({f"{package_id}:{version}":response.json()}) + #append_failure(f"{package_id}:{version}", response.json(), failed) + return False + + + +def main(): + + failed = {} + + try: + with open(f"{package_path}/package.json") as f: + package = json.load(f) + except FileNotFoundError: + print("No package.json found - skipping package installation") + return 0 + + dependencies = package.get('dependencies', {}) + num_packages = len(dependencies) + + if not dependencies: + print("No dependencies found in package.json") + return 0 + + print(f"Installing FHIR packages...") + + + for package_id, version in dependencies.items(): + # Give server time between installations + if package_id == "hl7.fhir.r4.core": + num_packages -= 1 + continue # Skip core package since it's already on the server + time.sleep(2) + print(f"\tInstalling {package_id}:{version}") + if not check_package_locally(package_id, version): + if not download_package(package_id, version, failed): + continue + + install_package(package_id, version, SERVER_URL, failed) + + + + + if failed: + print(f"\nFailed to install {len(failed)} packages:") + dump_json("operation_outcomes.json", failed) + return 1 + + print(f"\nSuccessfully installed {num_packages} packages") + return 0 + +if __name__ == "__main__": + print("CWD:", os.getcwd()) + print("Files:", os.listdir(".")) + sys.exit(main()) + diff --git a/FHIRValidationAction/scripts/generate-report.py b/FHIRValidationAction/scripts/generate-report.py new file mode 100644 index 0000000..5513b97 --- /dev/null +++ b/FHIRValidationAction/scripts/generate-report.py @@ -0,0 +1,167 @@ +import os +import json +from collections import defaultdict +import yaml +from pathlib import Path +import sys + +#for local testing +#ROOT = Path.cwd() + +#for github repo +ROOT = Path.cwd() / "validation" / "FHIRValidationAction" + +def parse_validation_output(results_file, ignore_list): + with open(results_file) as f: + data = json.load(f) + + issues = {"fatal": [], "error": [], "warning": [], "information": [], "failure": [], "passed": []} + + for file_path, outcome in data.items(): + for issue in outcome.get("issue", []): + severity = issue.get("severity", "").lower() + diagnostics = issue.get("diagnostics", "") + + if "No issues detected during validation" in diagnostics: + severity = "passed" + + if is_ignored(issue, ignore_list, severity, diagnostics): + continue + # expression and location are both lists of strings + expression = issue.get("expression", []) + location = issue.get("location", []) + + # Get line/col from extensions if available + line, col = None, None + for ext in issue.get("extension", []): + if "issue-line" in ext.get("url", ""): + line = ext.get("valueInteger") + elif "issue-col" in ext.get("url", ""): + col = ext.get("valueInteger") + + position = f"Line[{line}] Col[{col}]" if line and col else ", ".join(location) + + if severity in issues: + issues[severity].append({ + "file": file_path, + "message": diagnostics, + "expression": ", ".join(expression), + "location": position + }) + + return issues + +def is_ignored(issue, ignore_config, severity, diagnostics): + + # Get the list for this severity, default to empty list if None/missing + rules = ignore_config.get("ignore-list", {}).get(severity) or [] + + return any(string in diagnostics for string in rules) + +def group_by_file(issue_list): + grouped = defaultdict(list) + for issue in issue_list: + grouped[issue["file"]].append(issue) + return grouped + +def make_file_link(file_path): + """Create a GitHub link to the file in the repo""" + repo = os.environ.get("GITHUB_REPOSITORY", "") + sha = os.environ.get("GITHUB_SHA", "") + if repo and sha: + # Strip the runner workspace prefix to get a repo-relative path + workspace = os.environ.get("GITHUB_WORKSPACE", "") + if workspace and file_path.startswith(workspace): + file_path = file_path[len(workspace):].lstrip("/") + url = f"https://github.com/{repo}/blob/{sha}/{file_path}" + return f'{file_path}' + return f"{file_path}" + +def render_section(title, emoji, issues, colour): + grouped = group_by_file(issues) + total = len(issues) + file_count = len(grouped) + + html = f""" +
+{emoji} {title}  |  {total} total across {file_count} file(s) +
+""" + + if not issues: + html += f"

✅ No {title.lower()} found.

\n" + else: + for file_path, file_issues in sorted(grouped.items()): + html += f"
\n{make_file_link(file_path)}  — {len(file_issues)} {title.lower()}\n
\n" + html += '\n' + for issue in file_issues: + location = issue.get("location") or "—" + message = issue["message"] + html += f"\n" + html += "
LocationMessage
{location}{message}
\n
\n
\n" + + html += "
\n" + return html + + + +def main(): + with open(f"{ROOT}/scripts/ignore-list.yaml", "r") as f: + ignore_list = yaml.safe_load(f) + print(ignore_list) + + results_file = "operation_outcomes.json" + + issues = parse_validation_output(results_file, ignore_list) + failures = issues["failure"] + fatals = issues["fatal"] + errors = issues["error"] + warnings = issues["warning"] + information = issues["information"] + passes = issues["passed"] + summary = f"""# 🏥 FHIR Validation Summary + +| Severity | Count | +|----------|-------| +| ⚠️ Failed Uploads | {len(failures)} | +| ❗ Fatals | {len(fatals)} | +| 🔴 Errors | {len(errors)} | +| 🟡 Warnings | {len(warnings)} | +| 🔵 Information | {len(information)} | +| 🟢 Passes | {len(passes)} | + +--- +{render_section("Failed Uploads", "⚠️", failures, "red")} + +{render_section("Fatals", "❗", fatals, "red")} + +{render_section("Errors", "🔴", errors, "red")} + +{render_section("Warnings", "🟡", warnings, "yellow")} + +{render_section("Information", "🔵", information, "blue")} + +{render_section("Passes", "🟢", passes, "green")} +""" + + summary_file = os.environ.get("GITHUB_STEP_SUMMARY") + if summary_file: + with open(summary_file, "w") as f: + f.write(summary) + print("✅ Summary written to GitHub Actions.") + else: + print(summary) + + for filename in ["failed", "operation_outcomes"]: + filepath = f"./{filename}.json" + if os.path.exists(filepath): + os.remove(filepath) + + major_issues = len(failures)+len(fatals)+len(errors) + if major_issues > 0: + return 1 + return 0 + +if __name__ == "__main__": + sys.exit(main()) + diff --git a/FHIRValidationAction/scripts/ignore-list.yaml b/FHIRValidationAction/scripts/ignore-list.yaml new file mode 100644 index 0000000..1d2b3c0 --- /dev/null +++ b/FHIRValidationAction/scripts/ignore-list.yaml @@ -0,0 +1,5 @@ +ignore-list: + error: ~ + warning: + - dom-6 #ignore "A resource should have narrative for robust management" + information: ~ diff --git a/FHIRValidationAction/scripts/test_scripts/test_install_packages.py b/FHIRValidationAction/scripts/test_scripts/test_install_packages.py new file mode 100644 index 0000000..beabd33 --- /dev/null +++ b/FHIRValidationAction/scripts/test_scripts/test_install_packages.py @@ -0,0 +1,368 @@ +"""Tests for install_packages.py - FHIR package dependency installer""" +import base64 +import json +import os +import sys +import pytest +from unittest.mock import MagicMock, mock_open, patch, call + +# --------------------------------------------------------------------------- +# Make the script importable from the sibling "script" folder. +# Adjust the path if your project layout differs. +# --------------------------------------------------------------------------- +sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "script")) +import install_packages # noqa: E402 (import after sys.path manipulation) + + +# =========================================================================== +# Fixtures +# =========================================================================== + +@pytest.fixture +def tmp_root(tmp_path): + """A temporary directory that mimics the expected ROOT layout.""" + packages_dir = tmp_path / "packages" + packages_dir.mkdir() + return str(tmp_path) + + +@pytest.fixture +def sample_package_json(): + return { + "name": "test-ig", + "version": "1.0.0", + "dependencies": { + "hl7.fhir.r4.core": "4.0.1", + "hl7.fhir.us.core": "5.0.1", + "hl7.terminology.r4": "5.3.0", + }, + } + + +@pytest.fixture +def mock_tgz(tmp_root): + """Write a tiny fake .tgz file and return its path.""" + pkg_path = os.path.join(tmp_root, "packages", "hl7.fhir.us.core-5.0.1.tgz") + with open(pkg_path, "wb") as f: + f.write(b"fake-tgz-content") + return pkg_path + + +# =========================================================================== +# check_package_locally +# =========================================================================== + +class TestCheckPackageLocally: + def test_returns_true_when_tgz_exists(self, tmp_root): + pkg_id = "hl7.fhir.us.core" + version = "5.0.1" + tgz_name = f"{pkg_id}#{version}.tgz" + open(os.path.join(tmp_root, "packages", tgz_name), "wb").close() + + assert install_packages.check_package_locally(pkg_id, version, tmp_root) is True + + def test_returns_false_when_tgz_missing(self, tmp_root): + assert ( + install_packages.check_package_locally("missing.pkg", "1.0.0", tmp_root) + is False + ) + + def test_returns_false_for_empty_packages_dir(self, tmp_root): + assert ( + install_packages.check_package_locally("any.pkg", "0.0.1", tmp_root) + is False + ) + + def test_detects_file_in_nested_subdirectory(self, tmp_root): + pkg_id = "org.example.ig" + version = "2.1.0" + nested = os.path.join(tmp_root, "packages", "sub", "nested") + os.makedirs(nested) + open(os.path.join(nested, f"{pkg_id}#{version}.tgz"), "wb").close() + + assert install_packages.check_package_locally(pkg_id, version, tmp_root) is True + + +# =========================================================================== +# download_package +# =========================================================================== + +class TestDownloadPackage: + def test_downloads_and_writes_tgz_on_success(self, tmp_root): + fake_content = b"tgz-binary-data" + mock_response = MagicMock(status_code=200, content=fake_content) + + with patch("install_packages.requests.get", return_value=mock_response): + result = install_packages.download_package( + "hl7.fhir.us.core", "5.0.1", tmp_root + ) + + assert result is True + output_path = os.path.join( + tmp_root, "packages", "hl7.fhir.us.core-5.0.1.tgz" + ) + assert os.path.exists(output_path) + with open(output_path, "rb") as f: + assert f.read() == fake_content + + def test_returns_false_on_404(self, tmp_root, capsys): + mock_response = MagicMock(status_code=404) + + with patch("install_packages.requests.get", return_value=mock_response): + result = install_packages.download_package( + "nonexistent.pkg", "1.0.0", tmp_root + ) + + assert result is False + captured = capsys.readouterr() + assert "not found on registry" in captured.out + + def test_calls_correct_simplifier_url(self, tmp_root): + mock_response = MagicMock(status_code=200, content=b"x") + + with patch("install_packages.requests.get", return_value=mock_response) as mock_get: + install_packages.download_package("my.pkg", "1.2.3", tmp_root) + + mock_get.assert_called_once_with( + "https://packages.simplifier.net/my.pkg/1.2.3" + ) + + +# =========================================================================== +# install_package +# =========================================================================== + +class TestInstallPackage: + def _make_response(self, status_code=200): + r = MagicMock() + r.status_code = status_code + return r + + def test_posts_to_correct_endpoint(self, mock_tgz, tmp_root): + server_url = "http://localhost:8080/fhir" + mock_resp = self._make_response(200) + + with patch("install_packages.requests.post", return_value=mock_resp) as mock_post: + install_packages.install_package( + "hl7.fhir.us.core", "5.0.1", tmp_root, server_url + ) + + mock_post.assert_called_once() + args, kwargs = mock_post.call_args + assert args[0] == f"{server_url}/ImplementationGuide/$install" + + def test_payload_contains_base64_encoded_tgz(self, mock_tgz, tmp_root): + with patch("install_packages.requests.post", return_value=self._make_response()) as mock_post: + install_packages.install_package( + "hl7.fhir.us.core", "5.0.1", tmp_root, "http://localhost:8080/fhir" + ) + + payload = mock_post.call_args.kwargs["json"] + assert payload["resourceType"] == "Parameters" + + params = {p["name"]: p for p in payload["parameter"]} + assert "npmContent" in params + + # Verify the value actually decodes back to our fake file content + decoded = base64.b64decode(params["npmContent"]["valueBase64Binary"]) + assert decoded == b"fake-tgz-content" + + def test_uses_fhir_json_content_type(self, mock_tgz, tmp_root): + with patch("install_packages.requests.post", return_value=self._make_response()) as mock_post: + install_packages.install_package( + "hl7.fhir.us.core", "5.0.1", tmp_root, "http://localhost:8080/fhir" + ) + + headers = mock_post.call_args.kwargs["headers"] + assert headers.get("Content-Type") == "application/fhir+json" + + def test_returns_response_object(self, mock_tgz, tmp_root): + mock_resp = self._make_response(201) + + with patch("install_packages.requests.post", return_value=mock_resp): + result = install_packages.install_package( + "hl7.fhir.us.core", "5.0.1", tmp_root, "http://localhost:8080/fhir" + ) + + assert result is mock_resp + + +# =========================================================================== +# main() +# =========================================================================== + +class TestMain: + # ---- helpers ----------------------------------------------------------- + + def _patch_env(self, tmp_root, package_json_content, monkeypatch): + """Write a package.json and point ROOT + PACKAGE_PATH at it.""" + test_dir = os.path.join(tmp_root, "Validation-github-action", "test") + os.makedirs(test_dir) + pkg_path = os.path.join(test_dir, "package.json") + with open(pkg_path, "w") as f: + json.dump(package_json_content, f) + + monkeypatch.setattr(os, "getcwd", lambda: str(tmp_root)) + + packages_dir = os.path.join( + tmp_root, "Validation-github-action", "packages" + ) + os.makedirs(packages_dir, exist_ok=True) + return packages_dir + + # ---- tests ------------------------------------------------------------- + + def test_returns_0_when_no_package_json(self, tmp_path, monkeypatch, capsys): + monkeypatch.setattr(os, "getcwd", lambda: str(tmp_path)) + result = install_packages.main() + assert result == 0 + assert "skipping" in capsys.readouterr().out.lower() + + def test_returns_0_when_no_dependencies(self, tmp_path, monkeypatch, capsys): + self._patch_env(tmp_path, {"dependencies": {}}, monkeypatch) + result = install_packages.main() + assert result == 0 + assert "no dependencies" in capsys.readouterr().out.lower() + + def test_skips_hl7_fhir_r4_core(self, tmp_path, monkeypatch): + packages_dir = self._patch_env( + tmp_path, + {"dependencies": {"hl7.fhir.r4.core": "4.0.1"}}, + monkeypatch, + ) + with ( + patch("install_packages.check_package_locally", return_value=True), + patch("install_packages.install_package") as mock_install, + patch("install_packages.time.sleep"), + ): + result = install_packages.main() + + mock_install.assert_not_called() + assert result == 0 + + def test_installs_non_core_packages(self, tmp_path, monkeypatch): + packages_dir = self._patch_env( + tmp_path, + { + "dependencies": { + "hl7.fhir.r4.core": "4.0.1", + "hl7.fhir.us.core": "5.0.1", + } + }, + monkeypatch, + ) + mock_resp = MagicMock() # truthy → not a failure + + with ( + patch("install_packages.check_package_locally", return_value=True), + patch("install_packages.install_package", return_value=mock_resp) as mock_install, + patch("install_packages.time.sleep"), + ): + result = install_packages.main() + + mock_install.assert_called_once() + call_args = mock_install.call_args + assert call_args.args[0] == "hl7.fhir.us.core" + assert result == 0 + + def test_downloads_package_when_not_cached(self, tmp_path, monkeypatch): + self._patch_env( + tmp_path, + {"dependencies": {"hl7.fhir.us.core": "5.0.1"}}, + monkeypatch, + ) + mock_resp = MagicMock() + + with ( + patch("install_packages.check_package_locally", return_value=False), + patch("install_packages.download_package") as mock_dl, + patch("install_packages.install_package", return_value=mock_resp), + patch("install_packages.time.sleep"), + ): + install_packages.main() + + mock_dl.assert_called_once_with("hl7.fhir.us.core", "5.0.1", pytest.approx) + + def test_skips_download_when_package_cached(self, tmp_path, monkeypatch): + self._patch_env( + tmp_path, + {"dependencies": {"hl7.fhir.us.core": "5.0.1"}}, + monkeypatch, + ) + mock_resp = MagicMock() + + with ( + patch("install_packages.check_package_locally", return_value=True), + patch("install_packages.download_package") as mock_dl, + patch("install_packages.install_package", return_value=mock_resp), + patch("install_packages.time.sleep"), + ): + install_packages.main() + + mock_dl.assert_not_called() + + def test_returns_1_and_lists_failed_packages(self, tmp_path, monkeypatch, capsys): + self._patch_env( + tmp_path, + {"dependencies": {"hl7.fhir.us.core": "5.0.1"}}, + monkeypatch, + ) + with ( + patch("install_packages.check_package_locally", return_value=True), + patch("install_packages.install_package", return_value=False), # falsy = failure + patch("install_packages.time.sleep"), + ): + result = install_packages.main() + + assert result == 1 + output = capsys.readouterr().out + assert "failed" in output.lower() + assert "hl7.fhir.us.core" in output + + def test_sleeps_between_package_installations(self, tmp_path, monkeypatch): + self._patch_env( + tmp_path, + { + "dependencies": { + "hl7.fhir.us.core": "5.0.1", + "hl7.terminology.r4": "5.3.0", + } + }, + monkeypatch, + ) + mock_resp = MagicMock() + + with ( + patch("install_packages.check_package_locally", return_value=True), + patch("install_packages.install_package", return_value=mock_resp), + patch("install_packages.time.sleep") as mock_sleep, + ): + install_packages.main() + + assert mock_sleep.call_count == 2 + mock_sleep.assert_called_with(2) + + def test_reports_correct_installed_count(self, tmp_path, monkeypatch, capsys): + """num_packages should exclude hl7.fhir.r4.core from the success count.""" + self._patch_env( + tmp_path, + { + "dependencies": { + "hl7.fhir.r4.core": "4.0.1", + "hl7.fhir.us.core": "5.0.1", + "hl7.terminology.r4": "5.3.0", + } + }, + monkeypatch, + ) + mock_resp = MagicMock() + + with ( + patch("install_packages.check_package_locally", return_value=True), + patch("install_packages.install_package", return_value=mock_resp), + patch("install_packages.time.sleep"), + ): + result = install_packages.main() + + assert result == 0 + assert "2" in capsys.readouterr().out # 3 total − 1 core = 2 diff --git a/FHIRValidationAction/scripts/upload-assets.py b/FHIRValidationAction/scripts/upload-assets.py new file mode 100644 index 0000000..1c4f0af --- /dev/null +++ b/FHIRValidationAction/scripts/upload-assets.py @@ -0,0 +1,250 @@ +#!/usr/bin/env python3 +"""Upload FHIR conformance resources (StructureDefinitions, ValueSets, CodeSystems, etc.)""" + +import json +import requests +import sys +from pathlib import Path +import xml.etree.ElementTree as ET +import os +from common import append_failure, dump_json + +script_dir = os.path.dirname(os.path.abspath(__file__)) +config_path = os.path.join(script_dir, "config.json") + +with open(config_path,"r") as f: + config = json.load(f) +#ROOT = './test' #used for local testing +ROOT = Path.cwd() #used for github actions +SERVER_URL = config["fhir-validator"]["base_url"] + +IGNORE_FOLDERS = {"validation", "validation-service-fhir-r4"} + +ASSETS_FOLDERS = [ + "CapabilityStatement", + "StructureDefinition", + "ImplementationGuide", + "SearchParameter", + "MessageDefinition", + "OperationDefinition", + "CompartmentDefinition", + "StructureMap", + "GraphDefinition", + "ExampleScenario", + "CodeSystem", + "ValueSet", + "ConceptMap", + "NamingSystem", + "TerminologyCapabilities", + "Conformance-resources" +] +EXAMPLES_FOLDERS = ["Examples"] + + +def get_json_info(file_path, failed): + try: + with open(file_path) as f: + resource = json.load(f) + + resource_type = resource.get('resourceType') + resource_id = resource.get('id') + + return resource, resource_id, resource_type + + except Exception as e: + print(f"Error getting resource id and resource type for {str(file_path)}: {e}") + append_failure(str(file_path), e, failed) + return False + +def get_xml_info(file_path, failed): + try: + # Parse just to extract id and resourceType + tree = ET.parse(file_path) + root = tree.getroot() + + NS = "{http://hl7.org/fhir}" + resource_type = root.tag.replace(NS, "") + + id_element = root.find(f"{NS}id") + resource_id = id_element.get("value") + + # Read raw bytes instead of re-serialising via ET + with open(file_path, 'rb') as f: + resource = f.read() + + return resource, resource_id, resource_type + + except Exception as e: + print(f"Error getting resource id and/or resource type for {file_path}: {e}") + append_failure(str(file_path), str(e), failed) + return False + +def upload_resource(file_path,resource, resource_id, resource_type, format, failed): + """Upload a single FHIR resource""" + try: + # Use PUT with id for idempotency + url = f"{SERVER_URL}/{resource_type}/{resource_id}" + if format == "xml": + response = requests.put( + url, + data=resource, + headers={ + "Content-Type": "application/fhir+xml;charset=utf-8", + "Accept": "application/fhir+json" + } + ) + else: + response = requests.put( + url, + json=resource, + headers={ + "Content-Type": "application/fhir+json", + "Accept": "application/fhir+json"} + ) + + + if response.status_code in [200, 201]: + print(f"Uploaded {resource_type}/{resource_id}") + return True + else: + print(f"Failed to upload {resource_type}/{resource_id}: {response.status_code}") + print(f" File: {str(file_path)}") + print(f" Response: {response.text}") + append_failure(str(file_path), f"{response.status_code}: {response.text}", failed) + return False + + except Exception as e: + print(f"Error uploading {str(file_path)}: {e}") + append_failure(str(file_path), str(e), failed) + return False + +def validate_resource(file_path, resource, resource_id, resource_type, format, operation_outcomes, failed): + try: + url = f"{SERVER_URL}/{resource_type}/$validate" + + if format == "xml": + response = requests.post( + url, + data=resource, # raw XML string of the resource + headers={ + "Content-Type": "application/fhir+xml;charset=utf-8", + "Accept": "application/fhir+json" + } + ) + else: + params = { + "resourceType": "Parameters", + "parameter": [ + { + "name": "resource", + "resource": resource + } + ] + } + response = requests.post( + url, + json=params, + headers={ + "Content-Type": "application/fhir+json", + "Accept": "application/fhir+json" + } + ) + + # $validate always returns an OperationOutcome + outcome = response.json() + operation_outcomes.update({str(file_path):outcome}) + + return True + + except Exception as e: + print(f"Error validating {str(file_path)}: {e}") + append_failure(str(file_path), str(e), failed) + return False + + + + +def main(): + failed = {} + total_num_files = 0 + operation_outcomes = {} + + asset_json_files = set() + asset_xml_files = set() + example_json_files = set() + example_xml_files = set() + + # find all folders that contain string in ASSET_FOLDERS and EXAMPLES and then find all xml/json files within them recursively + for folder in Path(ROOT).iterdir(): + if folder.is_dir() and folder.name in IGNORE_FOLDERS: + continue + + if folder.is_dir() and any(asset.lower() in folder.name.lower() for asset in ASSETS_FOLDERS): + print(f"{folder} found. Gathering assets") + asset_json_files.update(folder.rglob("*.json")) + asset_xml_files.update(folder.rglob("*.xml")) + + if folder.is_dir() and any(asset.lower() in folder.name.lower() for asset in EXAMPLES_FOLDERS): + print(f"{folder} found. Gathering examples") + example_json_files.update(folder.rglob("*.json")) + example_xml_files.update(folder.rglob("*.xml")) + + # Convert back to list if needed + asset_json_files = list(asset_json_files) + asset_xml_files = list(asset_xml_files) + example_json_files = list(example_json_files) + example_xml_files = list(example_xml_files) + + all_asset_files = [(f, "json") for f in sorted(asset_json_files)] + [(f, "xml") for f in sorted(asset_xml_files)] + all_example_files = [(f, "json") for f in sorted(example_json_files)] + [(f, "xml") for f in sorted(example_xml_files)] + all_files = all_asset_files + all_example_files + total_num_files += len(all_files) + + if len(all_files) == 0: + return 0 + + print(f"Uploading {len(all_asset_files)} FHIR assets and {len(all_example_files)} FHIR examples...") + + + for file_path, format in all_asset_files: + get_info = get_json_info if format == "json" else get_xml_info + result = get_info(file_path, failed) + + if result is False: + total_num_files -= 1 + continue + + resource, resource_id, resource_type = result + + + if not upload_resource(file_path, resource, resource_id, resource_type, format, failed): + total_num_files -= 1 + continue + + + + for file_path, format in all_files: + get_info = get_json_info if format == "json" else get_xml_info + result = get_info(file_path, failed) + + if result is False: + continue + + resource, resource_id, resource_type = result + + validate_resource(file_path, resource, resource_id, resource_type, format, operation_outcomes, failed) + + dump_json('operation_outcomes.json',failed) + dump_json('operation_outcomes.json',operation_outcomes) + + + if failed: + print(f"\nFailed to upload {len(failed)} assets / examples:") + for f in failed: + print(f" - {f}") + print(f"\nSuccessfully uploaded {len(all_asset_files)} FHIR assets and {len(all_example_files)} FHIR examples") + return 0 + +if __name__ == "__main__": + sys.exit(main()) + \ No newline at end of file diff --git a/FHIRValidationAction/test/Conformance-resources/CapabilityStatement/CapabilityStatement-pathology.xml b/FHIRValidationAction/test/Conformance-resources/CapabilityStatement/CapabilityStatement-pathology.xml new file mode 100644 index 0000000..b62a3a6 --- /dev/null +++ b/FHIRValidationAction/test/Conformance-resources/CapabilityStatement/CapabilityStatement-pathology.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FHIRValidationAction/test/Conformance-resources/codesystems/CodeSystem-England-DeviatingResultIndicator.xml b/FHIRValidationAction/test/Conformance-resources/codesystems/CodeSystem-England-DeviatingResultIndicator.xml new file mode 100644 index 0000000..9be22cf --- /dev/null +++ b/FHIRValidationAction/test/Conformance-resources/codesystems/CodeSystem-England-DeviatingResultIndicator.xml @@ -0,0 +1,33 @@ + + + + + + + <status value="draft" /> + <date value="2026-01-26" /> + <publisher value="NHS England" /> + <contact> + <name value="NHS England" /> + <telecom> + <system value="email" /> + <value value="interoperabilityteam@nhs.net" /> + <use value="work" /> + <rank value="1" /> + </telecom> + </contact> + <description value="A set of codes that mirror those in the value set for the EDIFACT Deviating Result Indicator (also known as the Result Normalcy Indicator). The relevant sections from the PMIP EDIFACT (NHS003) specification are included below for reference:\n- ‘LSR_04_A_001.doc’\n- ‘LSR_03_B_001.doc’ :" /> + <copyright value="Copyright © 2024+ NHS England Licensed under the Apache License, Version 2.0 (the \"License\"); 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 \"AS IS\" 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® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." /> + <caseSensitive value="true" /> + <content value="complete" /> + <concept> + <code value="OR" /> + <display value="Outside reference range" /> + <definition value="The result for a quantitative (i.e. numeric) observation is outside the reference range (as defined for the respective test procedure)."/> + </concept> + <concept> + <code value="PA" /> + <display value="Potentially abnormal" /> + <definition value="The result for a qualitative (i.e. non-numeric/free text) observation is potentially abnormal."/> + </concept> +</CodeSystem> diff --git a/FHIRValidationAction/test/Conformance-resources/conceptmaps/ConceptMap-England-DeviatingResultIndicator.xml b/FHIRValidationAction/test/Conformance-resources/conceptmaps/ConceptMap-England-DeviatingResultIndicator.xml new file mode 100644 index 0000000..4d2a828 --- /dev/null +++ b/FHIRValidationAction/test/Conformance-resources/conceptmaps/ConceptMap-England-DeviatingResultIndicator.xml @@ -0,0 +1,46 @@ +<ConceptMap xmlns="http://hl7.org/fhir"> + <id value="England-DeviatingResultIndicator" /> + <url value="https://fhir.nhs.uk/England/ConceptMap/England-DeviatingResultIndicator" /> + <version value="0.1.0" /> + <name value="EnglandDeviatingResultIndicator" /> + <title value="England Deviating Result Indicator" /> + <status value="draft" /> + <date value="2026-01-26" /> + <publisher value="NHS England" /> + <contact> + <name value="NHS England" /> + <telecom> + <system value="email" /> + <value value="interoperabilityteam@nhs.net" /> + <use value="work" /> + <rank value="1" /> + </telecom> + </contact> + <description value="A set of codes that convert those in the value set for the EDIFACT Deviating Result Indicator (also known as the Result Normalcy Indicator) to FHIR ObservationInterpretation. The relevant sections from the PMIP EDIFACT (NHS003) specification are included below for reference:\n- ‘LSR_04_A_001.doc’\n- ‘LSR_03_B_001.doc’ :" /> + <copyright value="Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \"License\"); 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 \"AS IS\" 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® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." /> + <sourceUri value = "https://webarchive.nationalarchives.gov.uk/ukgwa/20150107145848/http://www.isb.nhs.uk/documents/isb-1557/amd-39-2003" /> + <targetCanonical value = "http://hl7.org/fhir/ValueSet/observation-interpretation" /> + <group> + <source value = "https://webarchive.nationalarchives.gov.uk/ukgwa/20150107145848/http://www.isb.nhs.uk/documents/isb-1557/amd-39-2003" /> + <target value = "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation" /> + <element> + <code value = "HI" /> + <display value = "High" /> + <target> + <code value = "H" /> + <display value = "High" /> + <equivalence value = "equivalent" /> + </target> + </element> + <element> + <code value = "LO" /> + <display value = "Low" /> + <target> + <code value = "L" /> + <display value = "Low" /> + <equivalence value = "equivalent" /> + </target> + </element> + </group> +</ConceptMap> + diff --git a/FHIRValidationAction/test/Conformance-resources/structuredefinitions/England-Observation-Lab-Pathology.xml b/FHIRValidationAction/test/Conformance-resources/structuredefinitions/England-Observation-Lab-Pathology.xml new file mode 100644 index 0000000..bfaff55 --- /dev/null +++ b/FHIRValidationAction/test/Conformance-resources/structuredefinitions/England-Observation-Lab-Pathology.xml @@ -0,0 +1,239 @@ +<StructureDefinition xmlns="http://hl7.org/fhir"> + <id value="England-Observation-Lab-Pathology" /> + <url value="https://fhir.nhs.uk/England/StructureDefinition/England-Observation-Lab-Pathology" /> + <version value="0.2.1" /> + <name value="EnglandObservationLabPathology" /> + <title value="England Observation Lab Pathology" /> + <status value="draft" /> + <date value="2026-01-26" /> + <publisher value="NHS England" /> + <contact> + <name value="NHS England" /> + <telecom> + <system value="email" /> + <value value="interoperabilityteam@nhs.net" /> + <use value="work" /> + <rank value="1" /> + </telecom> + </contact> + <description value="This profile defines the NHSE constraints and extensions on the UK FHIR resource, in order to represent an individual laboratory test and result value." /> + <purpose value="To provide the minimum expectations for each individual laboratory test. This includes the NHSE requirements for PaLM and PBCL Codes in Observation.code" /> + <copyright value="Copyright © 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the "License"); 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 "AS IS" 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® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="Observation" /> + <baseDefinition value="http://hl7.eu/fhir/laboratory/StructureDefinition/Observation-resultslab-eu-lab" /> + <derivation value="constraint" /> + <differential> + <element id="Observation.extension:extensionUKCoreObservationOrganizer"> + <path value="Observation.extension" /> + <sliceName value="extensionUKCoreObservationOrganizer" /> + <type> + <code value="Extension" /> + <profile value="http://hl7.org/fhir/6.0/StructureDefinition/extension-Observation.organizer" /> + </type> + <isModifier value="false" /> + </element> + <element id="Observation.category.coding.display.extension:translation"> + <path value="Observation.category.coding.display.extension" /> + <sliceName value="translation" /> + </element> + <element id="Observation.category.coding.display.extension:translation.extension"> + <path value="Observation.category.coding.display.extension.extension" /> + <min value="2" /> + </element> + <element id="Observation.category.text.extension:translation"> + <path value="Observation.category.text.extension" /> + <sliceName value="translation" /> + </element> + <element id="Observation.category.text.extension:translation.extension"> + <path value="Observation.category.text.extension.extension" /> + <min value="2" /> + </element> + <element id="Observation.code.coding"> + <path value="Observation.code.coding" /> + <slicing> + <description value="Slicing for Pathology to differentiate between the SNOMED CT ValueSets, PaLM and PCBL" /> + <rules value="open" /> + </slicing> + </element> + <element id="Observation.code.coding.extension:reference"> + <path value="Observation.code.coding.extension" /> + <sliceName value="reference" /> + <type> + <code value="Extension" /> + <profile value="http://hl7.org/fhir/StructureDefinition/valueset-reference" /> + </type> + </element> + <element id="Observation.code.coding.display.extension:translation"> + <path value="Observation.code.coding.display.extension" /> + <sliceName value="translation" /> + </element> + <element id="Observation.code.coding.display.extension:translation.extension"> + <path value="Observation.code.coding.display.extension.extension" /> + <min value="2" /> + </element> + <element id="Observation.code.coding:pathology-PaLM"> + <path value="Observation.code.coding" /> + <sliceName value="pathology-PaLM" /> + <binding> + <strength value="extensible" /> + <description value="This slice is to denote the code comes from the Pathology and laboratory medicine observable entity simple reference set" /> + <valueSet value="https://fhir.nhs.uk/England/ValueSet/England-PathologyAndLaboratoryMedicineObservables" /> + </binding> + </element> + <element id="Observation.code.coding:pathology-PaLM.extension:reference-palm-observables"> + <path value="Observation.code.coding.extension" /> + <sliceName value="reference-palm-observables" /> + <type> + <code value="Extension" /> + <profile value="http://hl7.org/fhir/StructureDefinition/valueset-reference" /> + </type> + </element> + <element id="Observation.code.coding:pathology-PaLM.extension:reference-palm-observables.value[x]"> + <path value="Observation.code.coding.extension.value[x]" /> + <fixedUri value="https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyAndLaboratoryMedicineObservables" /> + </element> + <element id="Observation.code.coding:pathology-PaLM.display.extension:translation"> + <path value="Observation.code.coding.display.extension" /> + <sliceName value="translation" /> + </element> + <element id="Observation.code.coding:pathology-PaLM.display.extension:translation.extension"> + <path value="Observation.code.coding.display.extension.extension" /> + <min value="2" /> + </element> + <element id="Observation.code.coding:pathology-PBCL"> + <path value="Observation.code.coding" /> + <sliceName value="pathology-PBCL" /> + <binding> + <strength value="extensible" /> + <description value="This slice is to denote the code comes from the Pathology Bounded Code List observables simple reference set" /> + <valueSet value="https://fhir.nhs.uk/England/ValueSet/England-PathologyBoundedCodeListObservables" /> + </binding> + </element> + <element id="Observation.code.coding:pathology-PBCL.extension:reference-pbcl-observables"> + <path value="Observation.code.coding.extension" /> + <sliceName value="reference-pbcl-observables" /> + <type> + <code value="Extension" /> + <profile value="http://hl7.org/fhir/StructureDefinition/valueset-reference" /> + </type> + </element> + <element id="Observation.code.coding:pathology-PBCL.extension:reference-pbcl-observables.value[x]"> + <path value="Observation.code.coding.extension.value[x]" /> + <fixedUri value="https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyBoundedCodeListObservables" /> + </element> + <element id="Observation.code.coding:pathology-PBCL.display.extension:translation"> + <path value="Observation.code.coding.display.extension" /> + <sliceName value="translation" /> + </element> + <element id="Observation.code.coding:pathology-PBCL.display.extension:translation.extension"> + <path value="Observation.code.coding.display.extension.extension" /> + <min value="2" /> + </element> + <element id="Observation.code.text.extension:translation"> + <path value="Observation.code.text.extension" /> + <sliceName value="translation" /> + </element> + <element id="Observation.code.text.extension:translation.extension"> + <path value="Observation.code.text.extension.extension" /> + <min value="2" /> + </element> + <element id="Observation.value[x]:valueCodeableConcept"> + <path value="Observation.value[x]" /> + <sliceName value="valueCodeableConcept" /> + </element> + <element id="Observation.value[x]:valueCodeableConcept.coding.display.extension:translation"> + <path value="Observation.value[x].coding.display.extension" /> + <sliceName value="translation" /> + </element> + <element id="Observation.value[x]:valueCodeableConcept.coding.display.extension:translation.extension"> + <path value="Observation.value[x].coding.display.extension.extension" /> + <min value="2" /> + </element> + <element id="Observation.value[x]:valueCodeableConcept.text.extension:translation"> + <path value="Observation.value[x].text.extension" /> + <sliceName value="translation" /> + </element> + <element id="Observation.value[x]:valueCodeableConcept.text.extension:translation.extension"> + <path value="Observation.value[x].text.extension.extension" /> + <min value="2" /> + </element> + <element id="Observation.interpretation"> + <path value="Observation.interpretation" /> + <binding> + <strength value="extensible" /> + <valueSet value="https://fhir.nhs.uk/England/ValueSet/England-DeviatingResultIndicator" /> + </binding> + </element> + <element id="Observation.interpretation.coding.display.extension:translation"> + <path value="Observation.interpretation.coding.display.extension" /> + <sliceName value="translation" /> + </element> + <element id="Observation.interpretation.coding.display.extension:translation.extension"> + <path value="Observation.interpretation.coding.display.extension.extension" /> + <min value="2" /> + </element> + <element id="Observation.interpretation.text.extension:translation"> + <path value="Observation.interpretation.text.extension" /> + <sliceName value="translation" /> + </element> + <element id="Observation.interpretation.text.extension:translation.extension"> + <path value="Observation.interpretation.text.extension.extension" /> + <min value="2" /> + </element> + <element id="Observation.method.coding.display.extension:translation"> + <path value="Observation.method.coding.display.extension" /> + <sliceName value="translation" /> + </element> + <element id="Observation.method.coding.display.extension:translation.extension"> + <path value="Observation.method.coding.display.extension.extension" /> + <min value="2" /> + </element> + <element id="Observation.method.text.extension:translation"> + <path value="Observation.method.text.extension" /> + <sliceName value="translation" /> + </element> + <element id="Observation.method.text.extension:translation.extension"> + <path value="Observation.method.text.extension.extension" /> + <min value="2" /> + </element> + <element id="Observation.component.code.coding.display.extension:translation"> + <path value="Observation.component.code.coding.display.extension" /> + <sliceName value="translation" /> + </element> + <element id="Observation.component.code.coding.display.extension:translation.extension"> + <path value="Observation.component.code.coding.display.extension.extension" /> + <min value="2" /> + </element> + <element id="Observation.component.code.text.extension:translation"> + <path value="Observation.component.code.text.extension" /> + <sliceName value="translation" /> + </element> + <element id="Observation.component.code.text.extension:translation.extension"> + <path value="Observation.component.code.text.extension.extension" /> + <min value="2" /> + </element> + <element id="Observation.component.value[x]:valueCodeableConcept"> + <path value="Observation.component.value[x]" /> + <sliceName value="valueCodeableConcept" /> + </element> + <element id="Observation.component.value[x]:valueCodeableConcept.coding.display.extension:translation"> + <path value="Observation.component.value[x].coding.display.extension" /> + <sliceName value="translation" /> + </element> + <element id="Observation.component.value[x]:valueCodeableConcept.coding.display.extension:translation.extension"> + <path value="Observation.component.value[x].coding.display.extension.extension" /> + <min value="2" /> + </element> + <element id="Observation.component.value[x]:valueCodeableConcept.text.extension:translation"> + <path value="Observation.component.value[x].text.extension" /> + <sliceName value="translation" /> + </element> + <element id="Observation.component.value[x]:valueCodeableConcept.text.extension:translation.extension"> + <path value="Observation.component.value[x].text.extension.extension" /> + <min value="2" /> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/FHIRValidationAction/test/Conformance-resources/structuredefinitions/StructureDefintion-extension-Observation-organizer.xml b/FHIRValidationAction/test/Conformance-resources/structuredefinitions/StructureDefintion-extension-Observation-organizer.xml new file mode 100644 index 0000000..fe56230 --- /dev/null +++ b/FHIRValidationAction/test/Conformance-resources/structuredefinitions/StructureDefintion-extension-Observation-organizer.xml @@ -0,0 +1,55 @@ +<StructureDefinition xmlns="http://hl7.org/fhir"> +<id value="Extension-UKCore-ObservationOrganizer" /> +<url value="http://hl7.org/fhir/6.0/StructureDefinition/extension-Observation.organizer" /> +<version value="0.0.1" /> +<name value="ExtensionUKCoreObservationOrganizer" /> +<title value="Extension UK Core Observation Organizer" /> +<status value="draft" /> +<date value="2025-08-05" /> +<publisher value="HL7 UK" /> +<contact> +<name value="HL7 UK" /> +<telecom> +<system value="email" /> +<value value="ukcore@hl7.org.uk" /> +<use value="work" /> +<rank value="1" /> +</telecom> +</contact> +<description value="An extension to replicate the changes within R6 to support adding the organizer element to denote if the Observation instance is an organizer (other names are grouper / panel)." /> +<purpose value="This is a Pathology use case to support the backporting of R6 functionality." /> +<copyright value="Copyright © 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the "License"); 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 "AS IS" 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® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." /> +<fhirVersion value="4.0.1" /> +<mapping> +<identity value="rim" /> +<uri value="http://hl7.org/v3" /> +<name value="RIM Mapping" /> +</mapping> +<kind value="complex-type" /> +<abstract value="false" /> +<context> +<type value="element" /> +<expression value="Observation" /> +</context> +<type value="Extension" /> +<baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension" /> +<derivation value="constraint" /> +<differential> +<element id="Extension"> +<path value="Extension" /> +<max value="1" /> +</element> +<element id="Extension.url"> +<path value="Extension.url" /> +<fixedUri value="http://hl7.org/fhir/6.0/StructureDefinition/extension-Observation.organizer" /> +</element> +<element id="Extension.value[x]"> +<path value="Extension.value[x]" /> +<min value="1" /> +<max value="1" /> +<type> +<code value="boolean" /> +</type> +</element> +</differential> +</StructureDefinition> diff --git a/FHIRValidationAction/test/Conformance-resources/valuesets/ValueSet-England-DeviatingResultIndicator.xml b/FHIRValidationAction/test/Conformance-resources/valuesets/ValueSet-England-DeviatingResultIndicator.xml new file mode 100644 index 0000000..dac7bda --- /dev/null +++ b/FHIRValidationAction/test/Conformance-resources/valuesets/ValueSet-England-DeviatingResultIndicator.xml @@ -0,0 +1,42 @@ +<ValueSet xmlns="http://hl7.org/fhir"> + <id value="England-DeviatingResultIndicator" /> + <url value="https://fhir.nhs.uk/England/ValueSet/England-DeviatingResultIndicator" /> + <version value="0.1.0" /> + <name value="EnglandDeviatingResultIndicator" /> + <title value="England Deviating Result Indicator" /> + <status value="draft" /> + <date value="2026-01-26" /> + <publisher value="NHS England" /> + <contact> + <name value="NHS England" /> + <telecom> + <system value="email" /> + <value value="interoperabilityteam@nhs.net" /> + <use value="work" /> + <rank value="1" /> + </telecom> + </contact> + <description value="A set of codes that mirror those in the value set for the EDIFACT Deviating Result Indicator (also known as the Result Normalcy Indicator). The relevant sections from the PMIP EDIFACT (NHS003) specification are included below for reference:\n- ‘LSR_04_A_001.doc’\n- ‘LSR_03_B_001.doc’ :" /> + <copyright value="Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \"License\"); 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 \"AS IS\" 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® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® 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> + <system value="http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation"/> + <filter> + <property value="H"/> + <op value="="/> + <value value="true"/> + </filter> + </include> + <include> + <system value="http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation"/> + <filter> + <property value="L"/> + <op value="="/> + <value value="true"/> + </filter> + </include> + <include> + <system value="https://fhir.nhs.uk/England/CodeSystem/England-DeviatingResultIndicator"/> + </include> + </compose> +</ValueSet> \ No newline at end of file diff --git a/FHIRValidationAction/test/Conformance-resources/valuesets/ValueSet-England-PathologyAndLaboratoryMedicineObservables.xml b/FHIRValidationAction/test/Conformance-resources/valuesets/ValueSet-England-PathologyAndLaboratoryMedicineObservables.xml new file mode 100644 index 0000000..69db7a1 --- /dev/null +++ b/FHIRValidationAction/test/Conformance-resources/valuesets/ValueSet-England-PathologyAndLaboratoryMedicineObservables.xml @@ -0,0 +1,33 @@ +<ValueSet xmlns="http://hl7.org/fhir"> + <id value="England-PathologyAndLaboratoryMedicineObservables" /> + <url value="https://fhir.nhs.uk/England/ValueSet/England-PathologyAndLaboratoryMedicineObservables" /> + <version value="0.1.0" /> + <name value="EnglandPathologyAndLaboratoryMedicineObservables" /> + <title value="England Pathology And Laboratory Medicine Observables" /> + <status value="draft" /> + <date value="2025-12-15" /> + <publisher value="NHS England" /> + <contact> + <name value="NHS England" /> + <telecom> + <system value="email" /> + <value value="interoperabilityteam@nhs.net" /> + <use value="work" /> + <rank value="1" /> + </telecom> + </contact> + <description value="A set of codes regarding laboratory medicine test results intended for use by pathology services and their users. Selected from the SNOMED CT UK coding system: + - memberOf 1853551000000106 | Pathology and laboratory medicine observable entity simple reference set |" /> + <copyright value="Copyright © 2024+ NHS England Licensed under the Apache License, Version 2.0 (the "License"); 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 "AS IS" 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® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® 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> + <system value="http://snomed.info/sct" /> + <filter> + <property value="constraint" /> + <op value="=" /> + <value value="memberOf 1853551000000106" /> + </filter> + </include> + </compose> +</ValueSet> + diff --git a/FHIRValidationAction/test/Conformance-resources/valuesets/ValueSet-England-PathologyBoundedCodeListObservables.xml b/FHIRValidationAction/test/Conformance-resources/valuesets/ValueSet-England-PathologyBoundedCodeListObservables.xml new file mode 100644 index 0000000..50a82c3 --- /dev/null +++ b/FHIRValidationAction/test/Conformance-resources/valuesets/ValueSet-England-PathologyBoundedCodeListObservables.xml @@ -0,0 +1,33 @@ +<ValueSet xmlns="http://hl7.org/fhir"> + <id value="England-PathologyBoundedCodeListObservables" /> + <url value="https://fhir.nhs.uk/England/ValueSet/England-PathologyBoundedCodeListObservables" /> + <version value="0.1.0" /> + <name value="EnglandPathologyBoundedCodeListObservables" /> + <title value="England Pathology Bounded Code List Observables" /> + <status value="draft" /> + <date value="2025-12-15" /> + <publisher value="NHS England" /> + <contact> + <name value="NHS England" /> + <telecom> + <system value="email" /> + <value value="interoperabilityteam@nhs.net" /> + <use value="work" /> + <rank value="1" /> + </telecom> + </contact> + <description value="A set of codes regarding laboratory medicine test results intended for use by pathology services and their users. Selected from the SNOMED CT UK coding system: + - memberOf 999002881000000100 | Pathology Bounded Code List observables simple reference set |" /> + <copyright value="Copyright © 2024+ NHS England Licensed under the Apache License, Version 2.0 (the "License"); 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 "AS IS" 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® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® 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> + <system value="http://snomed.info/sct" /> + <filter> + <property value="constraint" /> + <op value="=" /> + <value value="memberOf 999002881000000100" /> + </filter> + </include> + </compose> +</ValueSet> + diff --git a/FHIRValidationAction/test/Examples/Pathology-Bundle-CRP-Report-Document-Example.json b/FHIRValidationAction/test/Examples/Pathology-Bundle-CRP-Report-Document-Example.json new file mode 100644 index 0000000..ea45544 --- /dev/null +++ b/FHIRValidationAction/test/Examples/Pathology-Bundle-CRP-Report-Document-Example.json @@ -0,0 +1,522 @@ +{ + "resourceType": "Bundle", + "id": "37f33326-b5fb-4067-bb9a-298b55eda12a", + "meta": { + "profile": [ + "http://hl7.eu/fhir/laboratory/StructureDefinition/Bundle-eu-lab" + ] + }, + "identifier": { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:37f33326-b5fb-4067-bb9a-298b55eda12a" + }, + "type": "document", + "timestamp": "2022-03-08T12:09:00+00:00", + "entry": [ + { + "fullUrl": "urn:uuid:ce2073cd-7f19-4fd8-9956-f30ef7b4bd44", + "resource": { + "resourceType": "Composition", + "id": "ce2073cd-7f19-4fd8-9956-f30ef7b4bd44", + "meta": { + "profile": [ + "http://hl7.eu/fhir/laboratory/StructureDefinition/Composition-eu-lab" + ] + }, + "extension": [ + { + "url": "http://hl7.eu/fhir/StructureDefinition/composition-basedOn-order-or-requisition", + "valueReference": { + "reference": "urn:uuid:1c38d507-9ad7-4b49-ba91-7da204842cac" + } + }, + { + "url": "http://hl7.eu/fhir/laboratory/StructureDefinition/composition-diagnosticReportReference", + "valueReference": { + "reference": "urn:uuid:35d46ca1-f253-4c97-b7ee-fb5fccdf6c20" + } + } + ], + "identifier": { + "system": "http://Y8J7D-pathlab001.com/report", + "value": "REP-20220308-004205" + }, + "status": "final", + "type": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "721981007", + "display": "Diagnostic studies report" + } + ] + }, + "category": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "394915009", + "display": "General pathology (specialty)" + } + ] + } + ], + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710638" + } + }, + "date": "2022-03-08T12:09:00+00:00", + "author": [ + { + "reference": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" + } + ], + "title": "Laboratory Report", + "section": [ + { + "title": "CRP (C reactive protein) mass concentration in serum", + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "1106741000000105", + "display": "CRP (C reactive protein) mass concentration in serum" + } + ] + }, + "entry": [ + { + "reference": "urn:uuid:8697e1ea-a15d-4cab-95d9-7335f4b57e22" + } + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338", + "resource": { + "resourceType": "Organization", + "id": "8a6d85b8-9837-4fed-a257-4cf207988338", + "meta": { + "profile": [ + "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization" + ] + }, + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "Y8J7D" + } + ], + "name": "TD008362 PATH LAB 001", + "address": [ + { + "line": [ + "PATHOLOGY LAB", + "7-8 WELLINGTON PLACE" + ], + "city": "LEEDS", + "district": "WEST YORKSHIRE", + "postalCode": "LS1 4AP" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3c43b5b3-06d6-445f-ae9a-48d5f05df434", + "resource": { + "resourceType": "Organization", + "id": "3c43b5b3-06d6-445f-ae9a-48d5f05df434", + "meta": { + "profile": [ + "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization" + ] + }, + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B82033" + } + ], + "name": "PICKERING MEDICAL PRACTICE", + "address": [ + { + "line": [ + "SOUTHGATE" + ], + "city": "PICKERING", + "district": "NORTH YORKSHIRE", + "postalCode": "YO18 8BL" + } + ] + } + }, + { + "fullUrl": "urn:uuid:9a835acf-d715-4d84-8dcf-a8435f6417fe", + "resource": { + "resourceType": "Practitioner", + "id": "9a835acf-d715-4d84-8dcf-a8435f6417fe", + "meta": { + "profile": [ + "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Practitioner" + ] + }, + "identifier": [ + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "C1008215" + } + ], + "name": [ + { + "use": "official", + "family": "GASKELL", + "given": [ + "Gale" + ], + "prefix": [ + "Dr" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:d4f5e6a1-2b3c-4d5e-9f6a-7b8c9d0e1f2a", + "resource": { + "resourceType": "PractitionerRole", + "id": "d4f5e6a1-2b3c-4d5e-9f6a-7b8c9d0e1f2a", + "meta": { + "profile": [ + "https://fhir.hl7.org.uk/StructureDefinition/UKCore-PractitionerRole" + ] + }, + "practitioner": { + "reference": "urn:uuid:9a835acf-d715-4d84-8dcf-a8435f6417fe" + }, + "organization": { + "reference": "urn:uuid:3c43b5b3-06d6-445f-ae9a-48d5f05df434" + }, + "code": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "62247001", + "display": "General practitioner" + } + ] + } + ], + "specialty": [ + { + "coding": [ + { + "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-PracticeSettingCode", + "code": "600", + "display": "General Medical Practice" + } + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "resource": { + "resourceType": "Patient", + "id": "ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "meta": { + "profile": [ + "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient" + ] + }, + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710638" + } + ], + "name": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/data-absent-reason", + "valueCode": "unsupported" + } + ] + } + ], + "_birthDate": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/data-absent-reason", + "valueCode": "unsupported" + } + ] + } + } + }, + { + "fullUrl": "urn:uuid:1c38d507-9ad7-4b49-ba91-7da204842cac", + "resource": { + "resourceType": "ServiceRequest", + "id": "1c38d507-9ad7-4b49-ba91-7da204842cac", + "meta": { + "profile": [ + "http://hl7.eu/fhir/laboratory/StructureDefinition/ServiceRequest-eu-lab" + ] + }, + "identifier": [ + { + "system": "http://B82033-pickeringmedicalpractice.com/labrequest", + "value": "REQ-20220307-000142" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "108252007", + "display": "Laboratory procedure" + } + ] + } + ], + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710638" + } + }, + "authoredOn": "2022-01-29T10:24:00+00:00", + "requester": { + "reference": "urn:uuid:d4f5e6a1-2b3c-4d5e-9f6a-7b8c9d0e1f2a" + }, + "performer": [ + { + "reference": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" + } + ], + "specimen": [ + { + "reference": "urn:uuid:bab0eaec-1ec5-4598-b660-90bb38a1030d" + } + ] + } + }, + { + "fullUrl": "urn:uuid:35d46ca1-f253-4c97-b7ee-fb5fccdf6c20", + "resource": { + "resourceType": "DiagnosticReport", + "id": "35d46ca1-f253-4c97-b7ee-fb5fccdf6c20", + "meta": { + "profile": [ + "http://hl7.eu/fhir/laboratory/StructureDefinition/DiagnosticReport-eu-lab" + ] + }, + "identifier": [ + { + "system": "http://Y8J7D-pathlab001.com/report", + "value": "REP-20220308-004205" + } + ], + "basedOn": [ + { + "reference": "urn:uuid:1c38d507-9ad7-4b49-ba91-7da204842cac" + } + ], + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "394915009", + "display": "General pathology (specialty)" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "721981007", + "display": "Diagnostic studies report" + } + ] + }, + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710638" + } + }, + "issued": "2022-03-08T12:09:00+00:00", + "performer": [ + { + "reference": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" + } + ], + "specimen": [ + { + "reference": "urn:uuid:bab0eaec-1ec5-4598-b660-90bb38a1030d" + } + ], + "result": [ + { + "reference": "urn:uuid:8697e1ea-a15d-4cab-95d9-7335f4b57e22" + } + ] + } + }, + { + "fullUrl": "urn:uuid:bab0eaec-1ec5-4598-b660-90bb38a1030d", + "resource": { + "resourceType": "Specimen", + "id": "bab0eaec-1ec5-4598-b660-90bb38a1030d", + "meta": { + "profile": [ + "http://hl7.eu/fhir/laboratory/StructureDefinition/Specimen-eu-lab" + ] + }, + "identifier": [ + { + "system": "http://B82033-pickeringmedicalpractice.com/specimen", + "value": "SPC-REQ-20220307-000105" + } + ], + "accessionIdentifier": { + "system": "http://Y8J7D-pathlab001.com/specimen", + "value": "SPC-Lab-20220307-007856" + }, + "status": "available", + "type": { + "text": "Venous blood specimen" + }, + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710638" + } + }, + "receivedTime": "2022-03-07T14:58:00+00:00", + "collection": { + "collectedDateTime": "2022-03-07T11:42:00+00:00" + } + } + }, + { + "fullUrl": "urn:uuid:8697e1ea-a15d-4cab-95d9-7335f4b57e22", + "resource": { + "resourceType": "Observation", + "id": "8697e1ea-a15d-4cab-95d9-7335f4b57e22", + "meta": { + "profile": [ + "https://fhir.nhs.uk/England/StructureDefinition/England-Observation-Lab-Pathology" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:8697e1ea-a15d-4cab-95d9-7335f4b57e22" + } + ], + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory", + "display": "Laboratory" + } + ] + } + ], + "code": { + "coding": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyBoundedCodeListObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1001371000000100", + "display": "Serum CRP (C reactive protein) level" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyAndLaboratoryMedicineObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1106741000000105", + "display": "CRP (C reactive protein) mass concentration in serum" + } + ] + }, + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710638" + } + }, + "effectiveDateTime": "2022-03-07T11:42:00+00:00", + "issued": "2022-03-08T12:09:00+00:00", + "performer": [ + { + "reference": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" + } + ], + "valueQuantity": { + "value": 200, + "unit": "mg/L" + }, + "interpretation": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation", + "code": "H", + "display": "High" + } + ] + } + ], + "specimen": { + "reference": "urn:uuid:bab0eaec-1ec5-4598-b660-90bb38a1030d" + }, + "referenceRange": [ + { + "low": { + "value": 0, + "unit": "mg/L" + }, + "high": { + "value": 5, + "unit": "mg/L" + } + } + ] + } + } + ] +} \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/Pathology-Bundle-FBC-Report-Document-Example.json b/FHIRValidationAction/test/Examples/Pathology-Bundle-FBC-Report-Document-Example.json new file mode 100644 index 0000000..1a37fe5 --- /dev/null +++ b/FHIRValidationAction/test/Examples/Pathology-Bundle-FBC-Report-Document-Example.json @@ -0,0 +1,1735 @@ +{ + "resourceType": "Bundle", + "id": "e96634d8-0fe6-4954-b2d5-755a7787b987", + "meta": { + "profile": [ + "http://hl7.eu/fhir/laboratory/StructureDefinition/Bundle-eu-lab" + ] + }, + "identifier": { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:e96634d8-0fe6-4954-b2d5-755a7787b987" + }, + "type": "document", + "timestamp": "2022-02-09T11:17:00+00:00", + "entry": [ + { + "fullUrl": "urn:uuid:604765c4-0e8a-4cd6-96a0-a2651fb5ab19", + "resource": { + "resourceType": "Composition", + "id": "604765c4-0e8a-4cd6-96a0-a2651fb5ab19", + "meta": { + "profile": [ + "http://hl7.eu/fhir/laboratory/StructureDefinition/Composition-eu-lab" + ] + }, + "extension": [ + { + "url": "http://hl7.eu/fhir/StructureDefinition/composition-basedOn-order-or-requisition", + "valueReference": { + "reference": "urn:uuid:1c38d507-9ad7-4b49-ba91-7da204842cac" + } + }, + { + "url": "http://hl7.eu/fhir/laboratory/StructureDefinition/composition-diagnosticReportReference", + "valueReference": { + "reference": "urn:uuid:35d46ca1-f253-4c97-b7ee-fb5fccdf6c20" + } + } + ], + "identifier": { + "system": "http://Y8J7D-pathlab001.com/report", + "value": "REP-20220209-001369" + }, + "status": "final", + "type": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "721981007", + "display": "Diagnostic studies report" + } + ] + }, + "category": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "394915009", + "display": "General pathology (specialty)" + } + ] + } + ], + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710859" + } + }, + "date": "2022-03-08T12:09:00+00:00", + "author": [ + { + "reference": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" + } + ], + "title": "Laboratory Report", + "section": [ + { + "title": "FBC - full blood count", + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "1022441000000101", + "display": "FBC - full blood count" + } + ] + }, + "entry": [ + { + "reference": "urn:uuid:ad717ae8-cb35-4d66-ba51-e22a76b1d158" + } + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338", + "resource": { + "resourceType": "Organization", + "id": "8a6d85b8-9837-4fed-a257-4cf207988338", + "meta": { + "profile": [ + "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization" + ] + }, + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "Y8J7D" + } + ], + "name": "TD008362 PATH LAB 001", + "address": [ + { + "line": [ + "PATHOLOGY LAB", + "7-8 WELLINGTON PLACE" + ], + "city": "LEEDS", + "district": "WEST YORKSHIRE", + "postalCode": "LS1 4AP" + } + ] + } + }, + { + "fullUrl": "urn:uuid:3c43b5b3-06d6-445f-ae9a-48d5f05df434", + "resource": { + "resourceType": "Organization", + "id": "3c43b5b3-06d6-445f-ae9a-48d5f05df434", + "meta": { + "profile": [ + "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization" + ] + }, + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/ods-organization-code", + "value": "B82033" + } + ], + "name": "PICKERING MEDICAL PRACTICE", + "address": [ + { + "line": [ + "SOUTHGATE" + ], + "city": "PICKERING", + "district": "NORTH YORKSHIRE", + "postalCode": "YO18 8BL" + } + ] + } + }, + { + "fullUrl": "urn:uuid:9a835acf-d715-4d84-8dcf-a8435f6417fe", + "resource": { + "resourceType": "Practitioner", + "id": "9a835acf-d715-4d84-8dcf-a8435f6417fe", + "meta": { + "profile": [ + "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Practitioner" + ] + }, + "identifier": [ + { + "system": "https://fhir.hl7.org.uk/Id/gmc-number", + "value": "C1008215" + } + ], + "name": [ + { + "use": "official", + "family": "GASKELL", + "given": [ + "Gale" + ], + "prefix": [ + "Dr" + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:e1f4d3c2-5b6a-4f7e-9d8c-0b1a2c3d4e5f", + "resource": { + "resourceType": "PractitionerRole", + "id": "e1f4d3c2-5b6a-4f7e-9d8c-0b1a2c3d4e5f", + "meta": { + "profile": [ + "https://fhir.hl7.org.uk/StructureDefinition/UKCore-PractitionerRole" + ] + }, + "practitioner": { + "reference": "urn:uuid:9a835acf-d715-4d84-8dcf-a8435f6417fe" + }, + "organization": { + "reference": "urn:uuid:3c43b5b3-06d6-445f-ae9a-48d5f05df434" + }, + "code": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "62247001", + "display": "General practitioner" + } + ] + } + ], + "specialty": [ + { + "coding": [ + { + "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-PracticeSettingCode", + "code": "600", + "display": "General Medical Practice" + } + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "resource": { + "resourceType": "Patient", + "id": "ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "meta": { + "profile": [ + "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient" + ] + }, + "identifier": [ + { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710859" + } + ], + "name": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/data-absent-reason", + "valueCode": "unsupported" + } + ] + } + ], + "_birthDate": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/data-absent-reason", + "valueCode": "unsupported" + } + ] + } + } + }, + { + "fullUrl": "urn:uuid:1c38d507-9ad7-4b49-ba91-7da204842cac", + "resource": { + "resourceType": "ServiceRequest", + "id": "1c38d507-9ad7-4b49-ba91-7da204842cac", + "meta": { + "profile": [ + "http://hl7.eu/fhir/laboratory/StructureDefinition/ServiceRequest-eu-lab" + ] + }, + "identifier": [ + { + "system": "http://B82033-pickeringmedicalpractice.com/labrequest", + "value": "REQ-20220129-000012" + } + ], + "status": "active", + "intent": "order", + "category": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "108252007", + "display": "Laboratory procedure" + } + ] + } + ], + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710859" + } + }, + "authoredOn": "2022-02-07T09:17:00+00:00", + "requester": { + "reference": "urn:uuid:e1f4d3c2-5b6a-4f7e-9d8c-0b1a2c3d4e5f" + }, + "performer": [ + { + "reference": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" + } + ], + "reasonCode": [ + { + "text": "Tired all the time, shortness of breath, arrhythmia" + } + ] + } + }, + { + "fullUrl": "urn:uuid:35d46ca1-f253-4c97-b7ee-fb5fccdf6c20", + "resource": { + "resourceType": "DiagnosticReport", + "id": "35d46ca1-f253-4c97-b7ee-fb5fccdf6c20", + "meta": { + "profile": [ + "http://hl7.eu/fhir/laboratory/StructureDefinition/DiagnosticReport-eu-lab" + ] + }, + "identifier": [ + { + "system": "http://Y8J7D-pathlab001.com/report", + "value": "REP-20220209-001369" + } + ], + "basedOn": [ + { + "reference": "urn:uuid:1c38d507-9ad7-4b49-ba91-7da204842cac" + } + ], + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "394915009", + "display": "General pathology (specialty)" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "721981007", + "display": "Diagnostic studies report" + } + ] + }, + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710859" + } + }, + "issued": "2022-02-09T11:17:00+00:00", + "performer": [ + { + "reference": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" + } + ], + "specimen": [ + { + "reference": "urn:uuid:bab0eaec-1ec5-4598-b660-90bb38a1030d" + } + ], + "result": [ + { + "reference": "urn:uuid:ad717ae8-cb35-4d66-ba51-e22a76b1d158" + } + ] + } + }, + { + "fullUrl": "urn:uuid:bab0eaec-1ec5-4598-b660-90bb38a1030d", + "resource": { + "resourceType": "Specimen", + "id": "bab0eaec-1ec5-4598-b660-90bb38a1030d", + "meta": { + "profile": [ + "http://hl7.eu/fhir/laboratory/StructureDefinition/Specimen-eu-lab" + ] + }, + "identifier": [ + { + "system": "http://B82033-pickeringmedicalpractice.com/specimen", + "value": "SPC-REQ-20220208-000016" + } + ], + "accessionIdentifier": { + "system": "http://Y8J7D-pathlab001.com/specimen", + "value": "SPC-Lab-20220208-001397" + }, + "status": "available", + "type": { + "text": "Venous blood specimen" + }, + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710859" + } + }, + "receivedTime": "2022-02-08T16:03:00+00:00", + "request": [ + { + "reference": "urn:uuid:1c38d507-9ad7-4b49-ba91-7da204842cac" + } + ], + "collection": { + "collectedDateTime": "2022-02-08T10:23:00+00:00" + } + } + }, + { + "fullUrl": "urn:uuid:ad717ae8-cb35-4d66-ba51-e22a76b1d158", + "resource": { + "resourceType": "Observation", + "id": "ad717ae8-cb35-4d66-ba51-e22a76b1d158", + "meta": { + "profile": [ + "https://fhir.nhs.uk/England/StructureDefinition/England-Observation-Lab-Pathology" + ] + }, + "extension": [ + { + "url": "http://hl7.org/fhir/6.0/StructureDefinition/extension-Observation.organizer", + "valueBoolean": true + } + ], + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:ad717ae8-cb35-4d66-ba51-e22a76b1d158" + } + ], + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory", + "display": "Laboratory" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "1022441000000101", + "display": "FBC - full blood count" + } + ] + }, + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710859" + } + }, + "issued": "2022-02-09T11:17:00+00:00", + "performer": [ + { + "reference": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" + } + ], + "specimen": { + "reference": "urn:uuid:bab0eaec-1ec5-4598-b660-90bb38a1030d" + }, + "hasMember": [ + { + "reference": "urn:uuid:f8c185fc-0993-4b80-9d33-4c9ae11c3afe" + }, + { + "reference": "urn:uuid:78afe41f-4689-41a2-b10d-351a991b261a" + }, + { + "reference": "urn:uuid:b7849f25-3c44-4542-805f-ba769b7cfe04" + }, + { + "reference": "urn:uuid:b483a0bf-c332-4dde-b606-ec29aab33583" + }, + { + "reference": "urn:uuid:9e44a75d-e676-4497-aeb3-da72a08a3641" + }, + { + "reference": "urn:uuid:ba423cce-bf8c-440c-8061-086055a1799b" + }, + { + "reference": "urn:uuid:af52170f-763a-40a6-9363-dc58cd72602e" + }, + { + "reference": "urn:uuid:298306aa-4a5e-4442-8f60-9153c19c6333" + }, + { + "reference": "urn:uuid:69d08add-5ab8-46a3-be08-fb15e550da75" + }, + { + "reference": "urn:uuid:d5995ac0-55d8-4f2f-9058-6235a13fc1fe" + }, + { + "reference": "urn:uuid:42d1c079-777a-4878-b568-af6f297dbecb" + }, + { + "reference": "urn:uuid:56f9a606-221b-462b-b134-154c72db9c66" + }, + { + "reference": "urn:uuid:d719524b-993c-455c-9c18-36e3dfe6f71e" + } + ] + } + }, + { + "fullUrl": "urn:uuid:f8c185fc-0993-4b80-9d33-4c9ae11c3afe", + "resource": { + "resourceType": "Observation", + "id": "f8c185fc-0993-4b80-9d33-4c9ae11c3afe", + "meta": { + "profile": [ + "https://fhir.nhs.uk/England/StructureDefinition/England-Observation-Lab-Pathology" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:f8c185fc-0993-4b80-9d33-4c9ae11c3afe" + } + ], + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory", + "display": "Laboratory" + } + ] + } + ], + "code": { + "coding": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyBoundedCodeListObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1022541000000102", + "display": "Total white cell count" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyAndLaboratoryMedicineObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1110441000000100", + "display": "White blood cell count in blood" + } + ] + }, + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710859" + } + }, + "effectiveDateTime": "2022-02-08T10:23:00+00:00", + "issued": "2022-02-09T11:17:00+00:00", + "performer": [ + { + "reference": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" + } + ], + "valueQuantity": { + "value": 4.76, + "unit": "10*9/L" + }, + "specimen": { + "reference": "urn:uuid:bab0eaec-1ec5-4598-b660-90bb38a1030d" + }, + "referenceRange": [ + { + "low": { + "value": 4, + "unit": "10*9/L" + }, + "high": { + "value": 11, + "unit": "10*9/L" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:78afe41f-4689-41a2-b10d-351a991b261a", + "resource": { + "resourceType": "Observation", + "id": "78afe41f-4689-41a2-b10d-351a991b261a", + "meta": { + "profile": [ + "https://fhir.nhs.uk/England/StructureDefinition/England-Observation-Lab-Pathology" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:78afe41f-4689-41a2-b10d-351a991b261a" + } + ], + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory", + "display": "Laboratory" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "1022451000000103", + "display": "Red blood cell count" + } + ] + }, + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710859" + } + }, + "effectiveDateTime": "2022-02-08T10:23:00+00:00", + "issued": "2022-02-09T11:17:00+00:00", + "performer": [ + { + "reference": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" + } + ], + "valueQuantity": { + "value": 3.63, + "unit": "10*12/L" + }, + "interpretation": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation", + "code": "L", + "display": "Low" + } + ] + } + ], + "specimen": { + "reference": "urn:uuid:bab0eaec-1ec5-4598-b660-90bb38a1030d" + }, + "referenceRange": [ + { + "low": { + "value": 4.1, + "unit": "10*12/L" + }, + "high": { + "value": 5.1, + "unit": "10*12/L" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:b7849f25-3c44-4542-805f-ba769b7cfe04", + "resource": { + "resourceType": "Observation", + "id": "b7849f25-3c44-4542-805f-ba769b7cfe04", + "meta": { + "profile": [ + "https://fhir.nhs.uk/England/StructureDefinition/England-Observation-Lab-Pathology" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:b7849f25-3c44-4542-805f-ba769b7cfe04" + } + ], + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory", + "display": "Laboratory" + } + ] + } + ], + "code": { + "coding": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyBoundedCodeListObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1022431000000105", + "display": "Haemoglobin estimation" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyAndLaboratoryMedicineObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1107511000000100", + "display": "Haemoglobin mass concentration in blood" + } + ] + }, + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710859" + } + }, + "effectiveDateTime": "2022-02-08T10:23:00+00:00", + "issued": "2022-02-09T11:17:00+00:00", + "performer": [ + { + "reference": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" + } + ], + "valueQuantity": { + "value": 108, + "unit": "g/L" + }, + "interpretation": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation", + "code": "L", + "display": "Low" + } + ] + } + ], + "specimen": { + "reference": "urn:uuid:bab0eaec-1ec5-4598-b660-90bb38a1030d" + }, + "referenceRange": [ + { + "low": { + "value": 120, + "unit": "g/L" + }, + "high": { + "value": 150, + "unit": "g/L" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:b483a0bf-c332-4dde-b606-ec29aab33583", + "resource": { + "resourceType": "Observation", + "id": "b483a0bf-c332-4dde-b606-ec29aab33583", + "meta": { + "profile": [ + "https://fhir.nhs.uk/England/StructureDefinition/England-Observation-Lab-Pathology" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:b483a0bf-c332-4dde-b606-ec29aab33583" + } + ], + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory", + "display": "Laboratory" + } + ] + } + ], + "code": { + "coding": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyBoundedCodeListObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1022291000000105", + "display": "Haematocrit" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyAndLaboratoryMedicineObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1111571000000101", + "display": "Haematocrit volume fraction of blood" + } + ] + }, + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710859" + } + }, + "effectiveDateTime": "2022-02-08T10:23:00+00:00", + "issued": "2022-02-09T11:17:00+00:00", + "performer": [ + { + "reference": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" + } + ], + "valueQuantity": { + "value": 0.352, + "unit": "l/l" + }, + "interpretation": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation", + "code": "L", + "display": "Low" + } + ] + } + ], + "specimen": { + "reference": "urn:uuid:bab0eaec-1ec5-4598-b660-90bb38a1030d" + }, + "referenceRange": [ + { + "low": { + "value": 0.36, + "unit": "l/l" + }, + "high": { + "value": 0.46, + "unit": "l/l" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:9e44a75d-e676-4497-aeb3-da72a08a3641", + "resource": { + "resourceType": "Observation", + "id": "9e44a75d-e676-4497-aeb3-da72a08a3641", + "meta": { + "profile": [ + "https://fhir.nhs.uk/England/StructureDefinition/England-Observation-Lab-Pathology" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:9e44a75d-e676-4497-aeb3-da72a08a3641" + } + ], + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory", + "display": "Laboratory" + } + ] + } + ], + "code": { + "coding": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyBoundedCodeListObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1022491000000106", + "display": "MCV - Mean corpuscular volume" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyAndLaboratoryMedicineObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1491000237105", + "display": "Erythrocytes MCV (mean corpuscular volume) in blood" + } + ] + }, + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710859" + } + }, + "effectiveDateTime": "2022-02-08T10:23:00+00:00", + "issued": "2022-02-09T11:17:00+00:00", + "performer": [ + { + "reference": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" + } + ], + "valueQuantity": { + "value": 97, + "unit": "fL" + }, + "specimen": { + "reference": "urn:uuid:bab0eaec-1ec5-4598-b660-90bb38a1030d" + }, + "referenceRange": [ + { + "low": { + "value": 80, + "unit": "fL" + }, + "high": { + "value": 100, + "unit": "fL" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:ba423cce-bf8c-440c-8061-086055a1799b", + "resource": { + "resourceType": "Observation", + "id": "ba423cce-bf8c-440c-8061-086055a1799b", + "meta": { + "profile": [ + "https://fhir.nhs.uk/England/StructureDefinition/England-Observation-Lab-Pathology" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:ba423cce-bf8c-440c-8061-086055a1799b" + } + ], + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory", + "display": "Laboratory" + } + ] + } + ], + "code": { + "coding": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyBoundedCodeListObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1022471000000107", + "display": "MCH - Mean corpuscular haemoglobin" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyAndLaboratoryMedicineObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1022471000000107", + "display": "MCH - Mean corpuscular haemoglobin" + } + ] + }, + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710859" + } + }, + "effectiveDateTime": "2022-02-08T10:23:00+00:00", + "issued": "2022-02-09T11:17:00+00:00", + "performer": [ + { + "reference": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" + } + ], + "valueQuantity": { + "value": 29.8, + "unit": "pg" + }, + "specimen": { + "reference": "urn:uuid:bab0eaec-1ec5-4598-b660-90bb38a1030d" + }, + "referenceRange": [ + { + "low": { + "value": 27, + "unit": "pg" + }, + "high": { + "value": 32, + "unit": "pg" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:af52170f-763a-40a6-9363-dc58cd72602e", + "resource": { + "resourceType": "Observation", + "id": "af52170f-763a-40a6-9363-dc58cd72602e", + "meta": { + "profile": [ + "https://fhir.nhs.uk/England/StructureDefinition/England-Observation-Lab-Pathology" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuidaf52170f-763a-40a6-9363-dc58cd72602e" + } + ], + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory", + "display": "Laboratory" + } + ] + } + ], + "code": { + "coding": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyAndLaboratoryMedicineObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1022481000000109", + "display": "MCHC - Mean corpuscular haemoglobin concentration" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyBoundedCodeListObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1022481000000109", + "display": "MCHC - Mean corpuscular haemoglobin concentration" + } + ] + }, + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710859" + } + }, + "effectiveDateTime": "2022-02-08T10:23:00+00:00", + "issued": "2022-02-09T11:17:00+00:00", + "performer": [ + { + "reference": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" + } + ], + "valueQuantity": { + "value": 307, + "unit": "g/L" + }, + "interpretation": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation", + "code": "L", + "display": "Low" + } + ] + } + ], + "specimen": { + "reference": "urn:uuid:bab0eaec-1ec5-4598-b660-90bb38a1030d" + }, + "referenceRange": [ + { + "low": { + "value": 315, + "unit": "g/L" + }, + "high": { + "value": 345, + "unit": "g/L" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:298306aa-4a5e-4442-8f60-9153c19c6333", + "resource": { + "resourceType": "Observation", + "id": "298306aa-4a5e-4442-8f60-9153c19c6333", + "meta": { + "profile": [ + "https://fhir.nhs.uk/England/StructureDefinition/England-Observation-Lab-Pathology" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:298306aa-4a5e-4442-8f60-9153c19c6333" + } + ], + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory", + "display": "Laboratory" + } + ] + } + ], + "code": { + "coding": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyBoundedCodeListObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1022651000000100", + "display": "Platelet count" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyAndLaboratoryMedicineObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1108041000000107", + "display": "Platelet count in blood" + } + ] + }, + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710859" + } + }, + "effectiveDateTime": "2022-02-08T10:23:00+00:00", + "issued": "2022-02-09T11:17:00+00:00", + "performer": [ + { + "reference": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" + } + ], + "valueQuantity": { + "value": 143, + "unit": "10*9/L" + }, + "specimen": { + "reference": "urn:uuid:bab0eaec-1ec5-4598-b660-90bb38a1030d" + }, + "referenceRange": [ + { + "low": { + "value": 140, + "unit": "10*9/L" + }, + "high": { + "value": 400, + "unit": "10*9/L" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:69d08add-5ab8-46a3-be08-fb15e550da75", + "resource": { + "resourceType": "Observation", + "id": "69d08add-5ab8-46a3-be08-fb15e550da75", + "meta": { + "profile": [ + "https://fhir.nhs.uk/England/StructureDefinition/England-Observation-Lab-Pathology" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:69d08add-5ab8-46a3-be08-fb15e550da75" + } + ], + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory", + "display": "Laboratory" + } + ] + } + ], + "code": { + "coding": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyBoundedCodeListObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1022551000000104", + "display": "Neutrophil count" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyAndLaboratoryMedicineObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1108071000000101", + "display": "Neutrophil count in blood" + } + ] + }, + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710859" + } + }, + "effectiveDateTime": "2022-02-08T10:23:00+00:00", + "issued": "2022-02-09T11:17:00+00:00", + "performer": [ + { + "reference": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" + } + ], + "valueQuantity": { + "value": 2.66, + "unit": "10*9/L" + }, + "specimen": { + "reference": "urn:uuid:bab0eaec-1ec5-4598-b660-90bb38a1030d" + }, + "referenceRange": [ + { + "low": { + "value": 2, + "unit": "10*9/L" + }, + "high": { + "value": 7, + "unit": "10*9/L" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:d5995ac0-55d8-4f2f-9058-6235a13fc1fe", + "resource": { + "resourceType": "Observation", + "id": "d5995ac0-55d8-4f2f-9058-6235a13fc1fe", + "meta": { + "profile": [ + "https://fhir.nhs.uk/England/StructureDefinition/England-Observation-Lab-Pathology" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:d5995ac0-55d8-4f2f-9058-6235a13fc1fe" + } + ], + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory", + "display": "Laboratory" + } + ] + } + ], + "code": { + "coding": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyBoundedCodeListObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1022581000000105", + "display": "Lymphocyte count" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyAndLaboratoryMedicineObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "67541000237108", + "display": "Lymphocyte count in blood" + } + ] + }, + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710859" + } + }, + "effectiveDateTime": "2022-02-08T10:23:00+00:00", + "issued": "2022-02-09T11:17:00+00:00", + "performer": [ + { + "reference": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" + } + ], + "valueQuantity": { + "value": 0.7, + "unit": "10*9/L" + }, + "interpretation": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation", + "code": "L", + "display": "Low" + } + ] + } + ], + "specimen": { + "reference": "urn:uuid:bab0eaec-1ec5-4598-b660-90bb38a1030d" + }, + "referenceRange": [ + { + "low": { + "value": 1, + "unit": "10*9/L" + }, + "high": { + "value": 3, + "unit": "10*9/L" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:42d1c079-777a-4878-b568-af6f297dbecb", + "resource": { + "resourceType": "Observation", + "id": "42d1c079-777a-4878-b568-af6f297dbecb", + "meta": { + "profile": [ + "https://fhir.nhs.uk/England/StructureDefinition/England-Observation-Lab-Pathology" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:42d1c079-777a-4878-b568-af6f297dbecb" + } + ], + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory", + "display": "Laboratory" + } + ] + } + ], + "code": { + "coding": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyBoundedCodeListObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1022591000000107", + "display": "Monocyte count" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyAndLaboratoryMedicineObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1107991000000100", + "display": "Monocyte count in blood" + } + ] + }, + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710859" + } + }, + "effectiveDateTime": "2022-02-08T10:23:00+00:00", + "issued": "2022-02-09T11:17:00+00:00", + "performer": [ + { + "reference": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" + } + ], + "valueQuantity": { + "value": 1.3, + "unit": "10*9/L" + }, + "interpretation": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation", + "code": "H", + "display": "High" + } + ] + } + ], + "specimen": { + "reference": "urn:uuid:bab0eaec-1ec5-4598-b660-90bb38a1030d" + }, + "referenceRange": [ + { + "low": { + "value": 0.2, + "unit": "10*9/L" + }, + "high": { + "value": 1, + "unit": "10*9/L" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:56f9a606-221b-462b-b134-154c72db9c66", + "resource": { + "resourceType": "Observation", + "id": "56f9a606-221b-462b-b134-154c72db9c66", + "meta": { + "profile": [ + "https://fhir.nhs.uk/England/StructureDefinition/England-Observation-Lab-Pathology" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:56f9a606-221b-462b-b134-154c72db9c66" + } + ], + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory", + "display": "Laboratory" + } + ] + } + ], + "code": { + "coding": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyBoundedCodeListObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1022561000000101", + "display": "Eosinophil count" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyAndLaboratoryMedicineObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1107391000000104", + "display": "Eosinophil count in blood" + } + ] + }, + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710859" + } + }, + "effectiveDateTime": "2022-02-08T10:23:00+00:00", + "issued": "2022-02-09T11:17:00+00:00", + "performer": [ + { + "reference": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" + } + ], + "valueQuantity": { + "value": 0.07, + "unit": "10*9/L" + }, + "specimen": { + "reference": "urn:uuid:bab0eaec-1ec5-4598-b660-90bb38a1030d" + }, + "referenceRange": [ + { + "low": { + "value": 0.02, + "unit": "10*9/L" + }, + "high": { + "value": 0.5, + "unit": "10*9/L" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:d719524b-993c-455c-9c18-36e3dfe6f71e", + "resource": { + "resourceType": "Observation", + "id": "d719524b-993c-455c-9c18-36e3dfe6f71e", + "meta": { + "profile": [ + "https://fhir.nhs.uk/England/StructureDefinition/England-Observation-Lab-Pathology" + ] + }, + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:d719524b-993c-455c-9c18-36e3dfe6f71e" + } + ], + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory", + "display": "Laboratory" + } + ] + } + ], + "code": { + "coding": [ + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyBoundedCodeListObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1022571000000108", + "display": "Basophil count" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/valueset-reference", + "valueUri": "https://fhir.hl7.org.uk/ValueSet/UKCore-PathologyAndLaboratoryMedicineObservables" + } + ], + "system": "http://snomed.info/sct", + "code": "1106091000000103", + "display": "Basophil count in blood" + } + ] + }, + "subject": { + "reference": "urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4", + "identifier": { + "system": "https://fhir.nhs.uk/Id/nhs-number", + "value": "9727710859" + } + }, + "effectiveDateTime": "2022-02-08T10:23:00+00:00", + "issued": "2022-02-09T11:17:00+00:00", + "performer": [ + { + "reference": "urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" + } + ], + "valueQuantity": { + "value": 0.03, + "unit": "10*9/L" + }, + "specimen": { + "reference": "urn:uuid:bab0eaec-1ec5-4598-b660-90bb38a1030d" + }, + "referenceRange": [ + { + "low": { + "value": 0.01, + "unit": "10*9/L" + }, + "high": { + "value": 0.1, + "unit": "10*9/L" + } + } + ] + } + } + ] +} \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-AdditionalContact-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-AdditionalContact-Example.xml new file mode 100644 index 0000000..792b158 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-AdditionalContact-Example.xml @@ -0,0 +1,22 @@ +<ServiceRequest xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-AdditionalContact-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate sending a reference to an additional contact with a service request</div> + </text> + <!-- ***************extension start*************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-AdditionalContact"> + <valueReference> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </valueReference> + </extension> + <!-- **************extension end ****************** --> + <status value="active" /> + <intent value="order" /> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <requester> + <reference value="Practitioner/UKCore-Practitioner-DoctorPaulRastall-Example" /> + </requester> +</ServiceRequest> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-AddressKey-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-AddressKey-Example.xml new file mode 100644 index 0000000..a0f22b5 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-AddressKey-Example.xml @@ -0,0 +1,28 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-AddressKey-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the use of an address key used with the address datatype</div> + </text> + <address> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-AddressKey"> + <extension url="type"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-AddressKeyType" /> + <code value="PAF" /> + <display value="Postcode Address File" /> + </coding> + </valueCodeableConcept> + </extension> + <extension url="value"> + <valueString value="LS10ABC" /> + </extension> + </extension> + <!-- *************extension end *****************--> + <line value="4 Sandmoor Drive" /> + <city value="LEEDS" /> + <postalCode value="LS17 7DF" /> + </address> +</Patient> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-AdmissionMethod-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-AdmissionMethod-Example.xml new file mode 100644 index 0000000..8da6558 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-AdmissionMethod-Example.xml @@ -0,0 +1,26 @@ +<Encounter xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-AdmissionMethod-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension for an encounter to support the method by which an individual was admitted into hospital </div> + </text> + <status value="finished" /> + <class> + <system value="http://terminology.hl7.org/CodeSystem/v3-ActCode" /> + <code value="IMP" /> + <display value="inpatient encounter" /> + </class> + <hospitalization> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-AdmissionMethod"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-AdmissionMethodEngland" /> + <code value="13" /> + <display value="Elective Admission: Planned" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- **************extension end************** --> + </hospitalization> +</Encounter> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-AllergyIntolEnd-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-AllergyIntolEnd-Example.xml new file mode 100644 index 0000000..2dfe38f --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-AllergyIntolEnd-Example.xml @@ -0,0 +1,51 @@ +<AllergyIntolerance xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-AllergyIntolEnd-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the date when the allergy or intolerance was no longer valid, and/or, the reason why the allergy or intolerance is no longer valid</div> + </text> + <clinicalStatus> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-AllergyIntoleranceEnd"> + <extension url="endDate"> + <valueDateTime value="2021-07-20T17:10:00+00:00" /> + </extension> + <extension url="reasonEnded"> + <valueString value="Administrative error corrected on patient record - confirmed that allergy not experienced with the patient." /> + </extension> + </extension> + <!-- **************extension end************** --> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical" /> + <code value="inactive" /> + <display value="Inactive" /> + </coding> + </clinicalStatus> + <verificationStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-verification" /> + <code value="confirmed" /> + <display value="Confirmed" /> + </coding> + </verificationStatus> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="372687004" /> + <display value="Amoxicillin" /> + </coding> + </code> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> + <encounter> + <reference value="Encounter/UKCore-Encounter-InpatientEncounter-Example" /> + </encounter> + <recordedDate value="2019-12-10T13:00:00+00:00" /> + <recorder> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </recorder> + <asserter> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </asserter> +</AllergyIntolerance> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-AssociatedEncounter-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-AssociatedEncounter-Example.xml new file mode 100644 index 0000000..0be9868 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-AssociatedEncounter-Example.xml @@ -0,0 +1,50 @@ +<FamilyMemberHistory xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-AssociatedEncounter-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate sending an associated encounter with family member history</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-AssociatedEncounter"> + <valueReference> + <reference value="Encounter/UKCore-Encounter-InpatientEncounter-Example" /> + </valueReference> + </extension> + <!-- **************extension end************** --> + <status value="partial" /> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + <display value="Richard Smith" /> + </patient> + <date value="2023-05-09" /> + <relationship> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-RoleCode" /> + <code value="FTH" /> + <display value="father" /> + </coding> + </relationship> + <sex> + <coding> + <system value="http://hl7.org/fhir/administrative-gender" /> + <code value="male" /> + <display value="Male" /> + </coding> + </sex> + <bornDate value="1949-12-13" /> + <condition> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="275121006" /> + <display value="Family history: Angina" /> + </coding> + </code> + <onsetAge> + <value value="64" /> + <unit value="year" /> + <system value="http://unitsofmeasure.org" /> + <code value="a" /> + </onsetAge> + </condition> +</FamilyMemberHistory> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-BirthPlace-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-BirthPlace-Example.xml new file mode 100644 index 0000000..e708bd0 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-BirthPlace-Example.xml @@ -0,0 +1,19 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-BirthPlace-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the registered place of birth of the patient using the core-defined extension</div> + </text> + <!-- **************extension start************** --> + <extension url="http://hl7.org/fhir/StructureDefinition/patient-birthPlace"> + <valueAddress> + <line value="MATERNITY UNIT" /> + <line value="LENVILLE UNIVERSITY HOSPITAL" /> + <line value="BEWLEY STREET" /> + <city value="LENVILLE" /> + <postalCode value="LEN 7TF" /> + <country value="ENGLAND" /> + </valueAddress> + </extension> + <!-- **************extension end************** --> +</Patient> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-BirthSex-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-BirthSex-Example.xml new file mode 100644 index 0000000..307f9c8 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-BirthSex-Example.xml @@ -0,0 +1,18 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-BirthSex-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension for a patient's birth sex</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-BirthSex"> + <valueCodeableConcept> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-AdministrativeGender" /> + <code value="F" /> + <display value="Female" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- **************extension end************** --> +</Patient> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-BirthTime-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-BirthTime-Example.xml new file mode 100644 index 0000000..1d4c14f --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-BirthTime-Example.xml @@ -0,0 +1,14 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-BirthTime-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the patient's birth time using the core-defined extension</div> + </text> + <birthDate> + <!-- **************extension start************** --> + <extension url="http://hl7.org/fhir/StructureDefinition/patient-birthTime"> + <valueDateTime value="2002-03-11T15:39:00+00:00" /> + </extension> + <!-- **************extension end************** --> + </birthDate> +</Patient> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-BookingOrganization-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-BookingOrganization-Example.xml new file mode 100644 index 0000000..b4271e3 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-BookingOrganization-Example.xml @@ -0,0 +1,64 @@ +<Appointment xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-BookingOrganization-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the booking organization extension associated with an appointment</div> + </text> + <!-- ***************extension start*************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-BookingOrganization"> + <valueReference> + <reference value="Organization/UKCore-Organization-WhiteRoseMedicalCentre-Example" /> + <type value="Organization" /> + <identifier> + <use value="official" /> + <type> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v2-0203" /> + <code value="PRN" /> + <display value="Provider number" /> + </coding> + </type> + <system value="https://fhir.nhs.uk/Id/ods-site-code" /> + <value value="GP8D7" /> + <period> + <start value="2022-03-11T10:46:00+00:00" /> + <end value="2022-03-11T13:20:00+00:00" /> + </period> + </identifier> + </valueReference> + </extension> + <!-- **************extension end ****************** --> + <status value="booked" /> + <start value="2022-03-11T10:46:00+00:00" /> + <end value="2022-03-11T13:20:00+00:00" /> + <participant> + <actor> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + <display value="Richard Smith" /> + </actor> + <required value="required" /> + <status value="accepted" /> + </participant> + <participant> + <type> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-ParticipationType" /> + <code value="ATND" /> + </coding> + </type> + <actor> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + <display value="Dr Sandra Gose" /> + </actor> + <required value="required" /> + <status value="accepted" /> + </participant> + <participant> + <actor> + <reference value="Location/UKCore-Location-HospitalSJUH-Example" /> + <display value="Orthopaedic Trauma Department, St James' University Hospital, Leeds" /> + </actor> + <required value="required" /> + <status value="accepted" /> + </participant> +</Appointment> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CadavericDonor-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CadavericDonor-Example.xml new file mode 100644 index 0000000..0ba5bd3 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CadavericDonor-Example.xml @@ -0,0 +1,12 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-CadavericDonor-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate whether the patient authorised the donation of body parts after death using the core-defined extension</div> + </text> + <!-- **************extension start************** --> + <extension url="http://hl7.org/fhir/StructureDefinition/patient-cadavericDonor"> + <valueBoolean value="true" /> + </extension> + <!-- **************extension end************** --> +</Patient> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CareSettingType-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CareSettingType-Example.xml new file mode 100644 index 0000000..b5c01dd --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CareSettingType-Example.xml @@ -0,0 +1,29 @@ +<Composition xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-CareSettingType-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the care setting of a FHIR document</div> + </text> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CareSettingType"> + <valueCodeableConcept> + <coding> + <system value="http://snomed.info/sct" /> + <code value="789718008" /> + <display value="Cardiology service" /> + </coding> + </valueCodeableConcept> + </extension> + <status value="final" /> + <type> + <coding> + <system value="http://snomed.info/sct" /> + <code value="373942005" /> + <display value="Discharge summary" /> + </coding> + </type> + <date value="2020-11-11T21:30:00+00:00" /> + <author> + <reference value="urn:uuid:6555b7a7-380d-46ff-a1c5-7abc4e68f8bc" /> + </author> + <title value="Discharge summary" /> +</Composition> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCT-CodeUnknown-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCT-CodeUnknown-Example.xml new file mode 100644 index 0000000..6348bea --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCT-CodeUnknown-Example.xml @@ -0,0 +1,13 @@ +<Condition xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-CodingSCT-CodeUnknown-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the use of the CodeableConcept.text field only if the coding system and code is unknown</div> + </text> + <code> + <text value="Myocardial infarction" /> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> +</Condition> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCT-Heart-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCT-Heart-Example.xml new file mode 100644 index 0000000..0ee94bf --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCT-Heart-Example.xml @@ -0,0 +1,24 @@ +<Condition xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-CodingSCT-Heart-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the use of an extension to represent a SNOMED CT concept with a specific Description ID — typically to preserve or specify which synonym or preferred term was originally used in a clinical system</div> + </text> + <code> + <coding> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay"> + <valueString value="Heart attack" /> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/coding-sctdescid"> + <valueId value="37443015" /> + </extension> + <system value="http://snomed.info/sct" /> + <code value="22298006" /> + <display value="Myocardial infarction" /> + <userSelected value="true" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> +</Condition> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCT-IllicitDrugs-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCT-IllicitDrugs-Example.xml new file mode 100644 index 0000000..ac4702c --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCT-IllicitDrugs-Example.xml @@ -0,0 +1,28 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-CodingSCT-IllicitDrugs-Example" /> + <status value="final" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the use of two extensions, one to represent a SNOMED CT concept with a specific Description ID, the other to represent the associated SNOMED CT Term (text description) — typically to preserve or specify which synonym or preferred term was originally used in a clinical system</div> + </text> + <code> + <coding> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay"> + <valueString value="Illicit medication use unknown" /> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/coding-sctdescid"> + <valueId value="3449865011" /> + </extension> + <system value="http://snomed.info/sct" /> + <code value="702771005" /> + <display value="Illicit drug use unknown" /> + <userSelected value="true" /> + </coding> + <text value="Not known whether uses illicit drugs" /> + <!-- what the user saw on screen, from a data entry template --> + </code> + <!-- **************Snippet end************** --> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> +</Observation> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCT-Myocardial-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCT-Myocardial-Example.xml new file mode 100644 index 0000000..4316e84 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCT-Myocardial-Example.xml @@ -0,0 +1,23 @@ +<Condition xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-CodingSCT-Myocardial-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">This FHIR Condition resource records that the patient has had a myocardial infarction (heart attack), using the SNOMED code 22298006 with user-selected terminology.</div> + </text> + <!-- **************Snippet start************** --> + <code> + <coding> + <extension url="http://hl7.org/fhir/StructureDefinition/coding-sctdescid"> + <valueId value="37436014" /> + </extension> + <system value="http://snomed.info/sct" /> + <code value="22298006" /> + <display value="Myocardial infarction" /> + <userSelected value="true" /> + </coding> + </code> + <!-- **************Snippet end************** --> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> +</Condition> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCT-Potassium-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCT-Potassium-Example.xml new file mode 100644 index 0000000..4fbae26 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCT-Potassium-Example.xml @@ -0,0 +1,30 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-CodingSCT-Potassium-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the use of two extensions, one to represent a SNOMED CT concept with a specific Description ID, the other to represent the associated SNOMED CT Term (text description) — typically to preserve or specify which synonym or preferred term was originally used in a clinical system</div> + </text> + <status value="final" /> + <!-- **************Snippet start************** --> + <code> + <coding> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay"> + <valueString value="Serum potassium measurement" /> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/coding-sctdescid"> + <valueId value="405941011" /> + </extension> + <system value="http://snomed.info/sct" /> + <code value="1000651000000109" /> + <display value="Serum potassium level" /> + <userSelected value="true" /> + <!--flags the coding originally actually selected by the user --> + </coding> + <text value="Serum Potassium" /> + <!-- what the user saw on screen, from a data entry template --> + </code> + <!-- **************Snippet end************** --> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> +</Observation> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCT-Weight-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCT-Weight-Example.xml new file mode 100644 index 0000000..ef68d92 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCT-Weight-Example.xml @@ -0,0 +1,29 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-CodingSCT-Weight-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the use of an extension to represent a SNOMED CT concept with a specific Description ID — typically to preserve or specify which synonym or preferred term was originally used in a clinical system</div> + </text> + <status value="final" /> + <!-- **************Snippet start************** --> + <code> + <coding> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay"> + <valueString value="Ideal weight" /> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/coding-sctdescid"> + <valueId value="787121000006116" /> + <!-- descriptionId from a GP system namespace --> + </extension> + <system value="http://snomed.info/sct" /> + <code value="170804003" /> + <!-- conceptId from SNOMED International CORE --> + <display value="Ideal body weight" /> + <userSelected value="true" /> + </coding> + </code> + <!-- **************Snippet end************** --> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> +</Observation> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCTAndCTV3-MoleOfSkin-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCTAndCTV3-MoleOfSkin-Example.xml new file mode 100644 index 0000000..44e2935 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCTAndCTV3-MoleOfSkin-Example.xml @@ -0,0 +1,28 @@ +<Condition xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-CodingSCTAndCTV3-MoleOfSkin-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">This is a FHIR Condition resource recording that the patient has a benign mole (melanocytic naevus) on the skin. It includes both CTV3 and SNOMED codes.</div> + </text> + <!-- **************Snippet start************** --> + <code> + <coding> + <system value="http://read.info/ctv3" /> + <code value="X78Uv" /> + <!-- no term code, so CTV3 PT is implied? --> + <display value="Benign melanocytic naevus skin" /> + <!-- text of V3 PT --> + </coding> + <coding> + <system value="http://snomed.info/sct" /> + <code value="400010006" /> + <!-- SNOMED conceptId --> + <display value="Melanocytic naevus of skin" /> + <!-- text of SNOMED PT --> + </coding> + </code> + <!-- **************Snippet end************** --> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> +</Condition> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCTDescId-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCTDescId-Example.xml new file mode 100644 index 0000000..466a37d --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CodingSCTDescId-Example.xml @@ -0,0 +1,24 @@ +<Condition xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-CodingSCTDescId-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension which adds a SNOMED CT description ID to CodeableConcept</div> + </text> + <code> + <coding> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay"> + <valueString value="Bronchial asthma" /> + </extension> + <extension url="http://hl7.org/fhir/StructureDefinition/coding-sctdescid"> + <valueId value="301480018" /> + </extension> + <system value="http://snomed.info/sct" /> + <code value="195967001" /> + <display value="Asthma" /> + <userSelected value="true" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> +</Condition> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CompositionReference-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CompositionReference-Example.xml new file mode 100644 index 0000000..c33ac15 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CompositionReference-Example.xml @@ -0,0 +1,33 @@ +<DiagnosticReport xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-CompositionReference-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate referencing a composition within a diagnostic report</div> + </text> + <!-- **************extension start************** --> + <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.composition"> + <valueReference> + <reference value="Composition/UKCore-Composition-Discharge-Example" /> + </valueReference> + </extension> + <!-- **************extension end************** --> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="ce1913bf-ead4-4d04-904f-714cbc1636ef" /> + </identifier> + <status value="final" /> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="252275004" /> + <display value="Hematology test" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + <display value="LEEDS TEACHING HOSPITALS NHS TRUST" /> + </performer> +</DiagnosticReport> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-ConditionEpisode-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-ConditionEpisode-Example.xml new file mode 100644 index 0000000..32cd9b5 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-ConditionEpisode-Example.xml @@ -0,0 +1,20 @@ +<Condition xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-ConditionEpisode-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension which is used to indicate the episodicity status of a condition</div> + </text> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ConditionEpisode"> + <valueCode value="new" /> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-ConditionEpisodicity" /> + <code value="new" /> + <display value="New" /> + </coding> + </valueCodeableConcept> + </extension> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> +</Condition> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-ContactPreference-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-ContactPreference-Example.xml new file mode 100644 index 0000000..b7f8185 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-ContactPreference-Example.xml @@ -0,0 +1,42 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-ContactPreference-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension for a patient's contact preferences</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ContactPreference"> + <extension url="PreferredContactMethod"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-PreferredContactMethod" /> + <code value="3" /> + <display value="Telephone" /> + </coding> + </valueCodeableConcept> + </extension> + <extension url="PreferredContactTimes"> + <valueTiming> + <repeat> + <frequency value="1" /> + <period value="1" /> + <periodUnit value="d" /> + <dayOfWeek value="mon" /> + <dayOfWeek value="wed" /> + <dayOfWeek value="fri" /> + <when value="MORN" /> + </repeat> + </valueTiming> + </extension> + <extension url="PreferredWrittenCommunicationFormat"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-PreferredWrittenCommunicationFormat" /> + <code value="11" /> + <display value="Large print" /> + </coding> + </valueCodeableConcept> + </extension> + </extension> + <!-- **************extension end************** --> +</Patient> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-ContactRank-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-ContactRank-Example.xml new file mode 100644 index 0000000..025ab19 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-ContactRank-Example.xml @@ -0,0 +1,24 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-ContactRank-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension for the patient's contact ranking</div> + </text> + <contact> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ContactRank"> + <valuePositiveInt value="1" /> + </extension> + <!-- **************extension end************** --> + <name> + <use value="official" /> + <family value="CARTER" /> + <given value="Emily" /> + </name> + <telecom> + <system value="phone" /> + <value value="01131231288" /> + </telecom> + <gender value="female" /> + </contact> +</Patient> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CopyCorrespondenceIndicator-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CopyCorrespondenceIndicator-Example.xml new file mode 100644 index 0000000..d7fc35f --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CopyCorrespondenceIndicator-Example.xml @@ -0,0 +1,24 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-CopyCorrespondenceIndicator-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension for copy correspondence indicators</div> + </text> + <contact> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CopyCorrespondenceIndicator"> + <valueBoolean value="true" /> + </extension> + <!-- **************extension end************** --> + <name> + <use value="official" /> + <family value="CARTER" /> + <given value="Emily" /> + </name> + <telecom> + <system value="phone" /> + <value value="01131231288" /> + </telecom> + <gender value="female" /> + </contact> +</Patient> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-Coverage-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-Coverage-Example.xml new file mode 100644 index 0000000..8b59789 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-Coverage-Example.xml @@ -0,0 +1,23 @@ +<ServiceRequest xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-Coverage-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate sending an NHS or Private funding category with a service request</div> + </text> + <!-- ***************extension start*************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-Coverage"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-FundingCategory" /> + <code value="private" /> + <display value="Private" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- **************extension end ****************** --> + <status value="active" /> + <intent value="order" /> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> +</ServiceRequest> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CuffSize-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CuffSize-Example.xml new file mode 100644 index 0000000..7d52bd4 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-CuffSize-Example.xml @@ -0,0 +1,26 @@ +<Device xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-CuffSize-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate recording a blood pressure device with a large cuff</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CuffSize"> + <valueCodeableConcept> + <coding> + <system value="http://snomed.info/sct" /> + <code value="990191000000101" /> + <display value="Large adult size blood pressure cuff" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- **************extension end************** --> + <status value="active" /> + <type> + <coding> + <system value="http://snomed.info/sct" /> + <code value="39690000" /> + <display value="Sphygmomanometer" /> + </coding> + </type> +</Device> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-DeathNotificationStatus-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-DeathNotificationStatus-Example.xml new file mode 100644 index 0000000..0d1d03d --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-DeathNotificationStatus-Example.xml @@ -0,0 +1,23 @@ +<Patient xmlns="http://hl7.org/fhir"> +<id value="Extension-UKCore-DeathNotificationStatus-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension to indicate the death notification status of the patient</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeathNotificationStatus"> + <extension url="deathNotificationStatus"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-DeathNotificationStatus" /> + <code value="U" /> + <display value="Removed" /> + </coding> + </valueCodeableConcept> + </extension> + <extension url="systemEffectiveDate"> + <valueDateTime value="2019-08-01T00:00:00.000Z" /> + </extension> + </extension> + <!-- **************extension end************** --> +</Patient> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-DeliveryChannel-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-DeliveryChannel-Example.xml new file mode 100644 index 0000000..5bc57f0 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-DeliveryChannel-Example.xml @@ -0,0 +1,51 @@ +<Appointment xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-DeliveryChannel-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the delivery channel associated with an appointment</div> + </text> + <!-- ***************extension start*************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeliveryChannel"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-DeliveryChannel" /> + <code value="In-person" /> + <display value="In person" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- **************extension end ****************** --> + <status value="booked" /> + <start value="2022-03-11T10:46:00+00:00" /> + <end value="2022-03-11T13:20:00+00:00" /> + <participant> + <actor> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + <display value="Richard Smith" /> + </actor> + <required value="required" /> + <status value="accepted" /> + </participant> + <participant> + <type> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-ParticipationType" /> + <code value="ATND" /> + </coding> + </type> + <actor> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + <display value="Dr Sandra Gose" /> + </actor> + <required value="required" /> + <status value="accepted" /> + </participant> + <participant> + <actor> + <reference value="Location/UKCore-Location-HospitalSJUH-Example" /> + <display value="Orthopaedic Trauma Department, St James' University Hospital, Leeds" /> + </actor> + <required value="required" /> + <status value="accepted" /> + </participant> +</Appointment> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-DeviceReference-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-DeviceReference-Example.xml new file mode 100644 index 0000000..e94f5af --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-DeviceReference-Example.xml @@ -0,0 +1,44 @@ +<DiagnosticReport xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-DeviceReference-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a device performing a diagnostic report</div> + </text> + <status value="final" /> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="721981007" /> + <display value="Diagnostic studies report" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <performer> + <!-- ***************extension start*************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeviceReference"> + <valueReference> + <reference value="Device/UKCore-Device-SoftwareAsAMedicalDevice-Example" /> + </valueReference> + </extension> + <display value="Software as a medical device" /> + <!-- ***************extension end*************** --> + </performer> + <resultsInterpreter> + <!-- ***************extension start*************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeviceReference"> + <valueReference> + <reference value="Device/UKCore-Device-SoftwareAsAMedicalDevice-Example" /> + </valueReference> + </extension> + <display value="Software as a medical device" /> + <!-- ***************extension end*************** --> + </resultsInterpreter> + <specimen> + <reference value="Specimen/UKCore-Specimen-BloodSpecimen-Example" /> + </specimen> + <result> + <reference value="Observation/UKCore-Observation-WhiteCellCount-Example" /> + </result> +</DiagnosticReport> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-DischargeMethod-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-DischargeMethod-Example.xml new file mode 100644 index 0000000..d4c4998 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-DischargeMethod-Example.xml @@ -0,0 +1,24 @@ +<Encounter xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-DischargeMethod-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension for an encounter to support the method of discharge from a hospital</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DischargeMethod"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-DischargeMethodEngland" /> + <code value="1" /> + <display value="Patient discharged on clinical advice or with clinical consent" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- **************extension end************** --> + <status value="finished" /> + <class> + <system value="http://terminology.hl7.org/CodeSystem/v3-ActCode" /> + <code value="IMP" /> + <display value="inpatient encounter" /> + </class> +</Encounter> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-EffectivePeriod-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-EffectivePeriod-Example.xml new file mode 100644 index 0000000..54f3ff0 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-EffectivePeriod-Example.xml @@ -0,0 +1,17 @@ +<RelatedPerson xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-EffectivePeriod-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the recording of effective start and end dates for any resource</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-EffectivePeriod"> + <valuePeriod> + <start value="2007-03-04T00:00:00.000Z" /> + </valuePeriod> + </extension> + <!-- **************extension end************** --> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> +</RelatedPerson> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-EmergencyCareDischargeStatus-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-EmergencyCareDischargeStatus-Example.xml new file mode 100644 index 0000000..ef2b9fe --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-EmergencyCareDischargeStatus-Example.xml @@ -0,0 +1,24 @@ +<Encounter xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-EmergencyCareDischargeStatus-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension which is used to indicate the status of an individual on discharge from an Emergency Care Department</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-EmergencyCareDischargeStatus"> + <valueCodeableConcept> + <coding> + <system value="http://snomed.info/sct" /> + <code value="182992009" /> + <display value="Treatment completed" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- **************extension end************** --> + <status value="finished" /> + <class> + <system value="http://terminology.hl7.org/CodeSystem/v3-ActCode" /> + <code value="IMP" /> + <display value="inpatient encounter" /> + </class> +</Encounter> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-EthnicCategory-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-EthnicCategory-Example.xml new file mode 100644 index 0000000..affd29e --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-EthnicCategory-Example.xml @@ -0,0 +1,18 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-EthnicCategory-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension which shows the ethnic category for a patient</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-EthnicCategory"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-EthnicCategoryEngland" /> + <code value="A" /> + <display value="White - British" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- *************extension end *****************--> +</Patient> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-Evidence-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-Evidence-Example.xml new file mode 100644 index 0000000..78fa30d --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-Evidence-Example.xml @@ -0,0 +1,59 @@ +<AllergyIntolerance xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-Evidence-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a reference to results of investigations that confirmed the certainty of the diagnosis for an allergy or intolerance</div> + </text> + <!-- ***************extension start*************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-Evidence"> + <valueReference> + <reference value="DiagnosticReport/UKCore-DiagnosticReport-DiagnosticStudiesReport-Example" /> + <type value="DiagnosticReport" /> + </valueReference> + </extension> + <!-- ***************extension end*************** --> + <clinicalStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical" /> + <code value="active" /> + <display value="Active" /> + </coding> + </clinicalStatus> + <verificationStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-verification" /> + <code value="confirmed" /> + <display value="Confirmed" /> + </coding> + </verificationStatus> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="372687004" /> + <display value="Amoxicillin" /> + </coding> + </code> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> + <encounter> + <reference value="Encounter/UKCore-Encounter-InpatientEncounter-Example" /> + </encounter> + <recordedDate value="2019-12-10T13:00:00+00:00" /> + <recorder> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </recorder> + <asserter> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </asserter> + <reaction> + <manifestation> + <coding> + <system value="http://snomed.info/sct" /> + <code value="247472004" /> + <display value="Urticarial rash" /> + </coding> + </manifestation> + <severity value="mild" /> + </reaction> +</AllergyIntolerance> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-InterpreterRequired-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-InterpreterRequired-Example.xml new file mode 100644 index 0000000..fa37559 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-InterpreterRequired-Example.xml @@ -0,0 +1,12 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-InterpreterRequired-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the core-defined extension which is used to indicate that a person requires an interpreter</div> + </text> + <!-- **************extension start************** --> + <extension url="http://hl7.org/fhir/StructureDefinition/patient-interpreterRequired"> + <valueBoolean value="true" /> + </extension> + <!-- **************extension end************** --> +</Patient> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-LegalStatus-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-LegalStatus-Example.xml new file mode 100644 index 0000000..8c54868 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-LegalStatus-Example.xml @@ -0,0 +1,35 @@ +<Encounter xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-LegalStatus-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension which is used to indicate a patient's legal status on admission or discharge</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-LegalStatus"> + <extension url="legalStatusContext"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-LegalStatusContext" /> + <code value="admission" /> + <display value="Admission" /> + </coding> + </valueCodeableConcept> + </extension> + <extension url="legalStatusClassification"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-LegalStatusClassificationWales" /> + <code value="02" /> + <display value="Formally detained under Mental Health Act Section 2 (Admission for assessment)" /> + </coding> + </valueCodeableConcept> + </extension> + </extension> + <!-- **************extension end************** --> + <status value="finished" /> + <class> + <system value="http://terminology.hl7.org/CodeSystem/v3-ActCode" /> + <code value="IMP" /> + <display value="inpatient encounter" /> + </class> +</Encounter> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-ListWarningCode-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-ListWarningCode-Example.xml new file mode 100644 index 0000000..f2833bc --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-ListWarningCode-Example.xml @@ -0,0 +1,31 @@ +<List xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-ListWarningCode-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a warning being provided in a list resource</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ListWarningCode"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-ListWarningCode" /> + <code value="data-in-transit" /> + <display value="Data in Transit" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- **************extension end************** --> + <status value="current" /> + <mode value="working" /> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="826501000000100" /> + <display value="Miscellaneous record" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <date value="2021-12-10T13:00:00+00:00" /> +</List> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-MainLocation-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-MainLocation-Example.xml new file mode 100644 index 0000000..a13ff4b --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-MainLocation-Example.xml @@ -0,0 +1,26 @@ +<Organization xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-MainLocation-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension which shows an organisation's main location</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MainLocation"> + <valueReference> + <reference value="Location/UKCore-Location-HospitalSJUH-Example" /> + <type value="Location" /> + <identifier> + <use value="official" /> + <system value="https://fhir.nhs.uk/Id/ods-site-code" /> + <value value="RR813" /> + </identifier> + </valueReference> + </extension> + <!-- *************extension end *****************--> + <identifier> + <use value="official" /> + <system value="https://fhir.nhs.uk/Id/ods-organization-code" /> + <value value="RR8" /> + </identifier> + <name value="LEEDS TEACHING HOSPITALS NHS TRUST" /> +</Organization> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-MedicalApplianceSupplier-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-MedicalApplianceSupplier-Example.xml new file mode 100644 index 0000000..fcd87be --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-MedicalApplianceSupplier-Example.xml @@ -0,0 +1,14 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-MedicalApplianceSupplier-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension to record the patients nominated medical appliance supplier</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicalApplianceSupplier"> + <valueReference> + <reference value="Organization/UKCore-Organization-WhiteRoseMedicalSupply-Example" /> + </valueReference> + </extension> + <!-- **************extension end**************** --> +</Patient> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-MedicationPrescribingOrganizationType-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-MedicationPrescribingOrganizationType-Example.xml new file mode 100644 index 0000000..efa0117 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-MedicationPrescribingOrganizationType-Example.xml @@ -0,0 +1,29 @@ +<MedicationStatement xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-MedicationPrescribingOrganizationType-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the type of organisation or setting responsible for authorising and issuing a medication, but not the organisation or setting delivering the patient care</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationPrescribingOrganizationType"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-MedicationPrescribingOrganizationType" /> + <code value="prescribed-at-gp-practice" /> + <display value="Prescribed at GP practice" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- **************extension end************** --> + <status value="active" /> + <medicationCodeableConcept> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="39732311000001104" /> + <display value="Amoxicillin 250mg capsules" /> + </coding> + </medicationCodeableConcept> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> +</MedicationStatement> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-MedicationStatementLastIssueDate-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-MedicationStatementLastIssueDate-Example.xml new file mode 100644 index 0000000..2110381 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-MedicationStatementLastIssueDate-Example.xml @@ -0,0 +1,23 @@ +<MedicationStatement xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-MedicationStatementLastIssueDate-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the date the medication were last issued</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationStatementLastIssueDate"> + <valueDateTime value="2017-02-24" /> + </extension> + <!-- **************extension end************** --> + <status value="active" /> + <medicationCodeableConcept> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="39732311000001104" /> + <display value="Amoxicillin 250mg capsules" /> + </coding> + </medicationCodeableConcept> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> +</MedicationStatement> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-MedicationTradeFamily-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-MedicationTradeFamily-Example.xml new file mode 100644 index 0000000..d5b8cac --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-MedicationTradeFamily-Example.xml @@ -0,0 +1,25 @@ +<Medication xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-MedicationTradeFamily-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the use of a trade family or brand</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationTradeFamily"> + <valueCodeableConcept> + <coding> + <system value="http://snomed.info/sct" /> + <code value="9298001000001101" /> + <display value="Panadol Extra" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- **************extension end************** --> + <code> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="18677911000001109" /> + <display value="Panadol Extra Advance 500mg/65mg tablets (Haleon UK Trading Ltd)" /> + </coding> + </code> +</Medication> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-NHSNumberUnavailableReason-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-NHSNumberUnavailableReason-Example.xml new file mode 100644 index 0000000..37e2e6f --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-NHSNumberUnavailableReason-Example.xml @@ -0,0 +1,23 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-NHSNumberUnavailableReason-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension which states the reason a patient does not have a NHS number</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberUnavailableReason"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-NHSNumberUnavailableReason" /> + <code value="overseas-patient" /> + <display value="Overseas patient" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- **************extension end************** --> + <name> + <use value="official" /> + <family value="BAPTISTE" /> + <given value="Jean" /> + </name> +</Patient> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-NHSNumberVerificationStatus-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-NHSNumberVerificationStatus-Example.xml new file mode 100644 index 0000000..a59bf1f --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-NHSNumberVerificationStatus-Example.xml @@ -0,0 +1,20 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-NHSNumberVerificationStatus-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension which states the patient's NHS number verification status</div> + </text> + <identifier> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberVerificationStatus"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-NHSNumberVerificationStatusEngland" /> + <code value="01" /> + <display value="Number present and verified" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- **************extension end************** --> + </identifier> +</Patient> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-Note-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-Note-Example.xml new file mode 100644 index 0000000..11e883d --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-Note-Example.xml @@ -0,0 +1,38 @@ +<DiagnosticReport xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-Note-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate sending a note with a diagnostic report</div> + </text> + <!-- ***************extension start*************** --> + <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.note"> + <valueAnnotation> + <authorReference> + <reference value="Practitioner/UKCore-Practitioner-DoctorPaulRastall-Example" /> + </authorReference> + <time value="2023-05-10T10:39:12+00:00" /> + <text value="Page Dr Watson on receipt of results." /> + </valueAnnotation> + </extension> + <!-- ***************extension end*************** --> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="957d702f-7e9e-43c2-b783-978f2c164b3c" /> + </identifier> + <status value="final" /> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="104177005" /> + <display value="Blood culture for bacteria, including anaerobic screen" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + <display value="LEEDS TEACHING HOSPITALS NHS TRUST" /> + </performer> + <conclusion value="Inconclusive finding of staphylococcus, no evidence of bacteremia." /> +</DiagnosticReport> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-OtherContactSystem-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-OtherContactSystem-Example.xml new file mode 100644 index 0000000..fc164b4 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-OtherContactSystem-Example.xml @@ -0,0 +1,24 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-OtherContactSystem-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension to indicate other contact system(s) for a patient Richard Smith</div> + </text> + <telecom> + <system value="other"> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-OtherContactSystem"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-OtherContactSystem" /> + <code value="textphone" /> + <display value="Minicom (Textphone)" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- *************extension end *****************--> + </system> + <value value="+4413513341777" /> + <use value="home" /> + </telecom> +</Patient> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-OutcomeOfAttendance-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-OutcomeOfAttendance-Example.xml new file mode 100644 index 0000000..e72c99e --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-OutcomeOfAttendance-Example.xml @@ -0,0 +1,24 @@ +<Encounter xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-OutcomeOfAttendance-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension which is used to indicate the outcome of an outpatient attendance</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-OutcomeOfAttendance"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-OutcomeOfAttendanceEngland" /> + <code value="1" /> + <display value="Discharged from consultant's care (last attendance)" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- **************extension end************** --> + <status value="finished" /> + <class> + <system value="http://terminology.hl7.org/CodeSystem/v3-ActCode" /> + <code value="IMP" /> + <display value="inpatient encounter" /> + </class> +</Encounter> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-OverseasVisitorChargingCategory-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-OverseasVisitorChargingCategory-Example.xml new file mode 100644 index 0000000..163900e --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-OverseasVisitorChargingCategory-Example.xml @@ -0,0 +1,18 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-OverseasVisitorChargingCategory-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a patients charging category</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-OverseasVisitorChargingCategory"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-OverseasVisitorChargingCategory" /> + <code value="D" /> + <display value="Chargeable European Economic Area patient" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- **************extension end************** --> +</Patient> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-ParentPresent-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-ParentPresent-Example.xml new file mode 100644 index 0000000..131f138 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-ParentPresent-Example.xml @@ -0,0 +1,24 @@ +<Immunization xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-ParentPresent-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension for a vaccination procedure where the parent of the patient is present</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ParentPresent"> + <valueBoolean value="true" /> + </extension> + <!-- **************extension end************** --> + <status value="completed" /> + <vaccineCode> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="10245211000001108" /> + <display value="Pneumococcal polysaccharide conjugated vaccine (adsorbed) suspension for injection 0.5ml pre-filled syringes" /> + </coding> + </vaccineCode> + <patient> + <reference value="Patient/UKCore-Patient-BabyPatient-Example" /> + </patient> + <occurrenceDateTime value="2021-07-20" /> +</Immunization> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-Participant-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-Participant-Example.xml new file mode 100644 index 0000000..7a1844d --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-Participant-Example.xml @@ -0,0 +1,61 @@ +<FamilyMemberHistory xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-Participant-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate sending the participant involved in recording the activities relating to this family member history</div> + </text> + <!-- ***************extension start*************** --> + <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-FamilyMemberHistory.participant"> + <extension url="function"> + <valueCodeableConcept> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/provenance-participant-type" /> + <code value="enterer" /> + <display value="Enterer" /> + </coding> + </valueCodeableConcept> + </extension> + <extension url="actor"> + <valueReference> + <reference value="Practitioner/UKCore-Practitioner-DoctorPaulRastall-Example" /> + </valueReference> + </extension> + </extension> + <!-- ***************extension ebd*************** --> + <status value="partial" /> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + <display value="Richard Smith" /> + </patient> + <date value="2023-05-10" /> + <relationship> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-RoleCode" /> + <code value="FTH" /> + <display value="father" /> + </coding> + </relationship> + <sex> + <coding> + <system value="http://hl7.org/fhir/administrative-gender" /> + <code value="male" /> + <display value="Male" /> + </coding> + </sex> + <bornDate value="1949-12-13" /> + <condition> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="160308005" /> + <display value="Family history: Gout" /> + </coding> + </code> + <onsetAge> + <value value="64" /> + <unit value="year" /> + <system value="http://unitsofmeasure.org" /> + <code value="a" /> + </onsetAge> + </condition> +</FamilyMemberHistory> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-Period-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-Period-Example.xml new file mode 100644 index 0000000..014fd59 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-Period-Example.xml @@ -0,0 +1,20 @@ +<Organization xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-Period-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate sending a period</div> + </text> + <!-- **************extension start************** --> + <extension url="http://hl7.org/fhir/StructureDefinition/organization-period"> + <valuePeriod> + <start value="2017-01-01T00:00:00.000Z" /> + </valuePeriod> + </extension> + <!-- *************extension end *****************--> + <identifier> + <use value="official" /> + <system value="https://fhir.nhs.uk/Id/ods-organization-code" /> + <value value="RR8" /> + </identifier> + <name value="LEEDS TEACHING HOSPITALS NHS TRUST" /> +</Organization> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-PharmacistVerifiedIndicator-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-PharmacistVerifiedIndicator-Example.xml new file mode 100644 index 0000000..22d6cae --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-PharmacistVerifiedIndicator-Example.xml @@ -0,0 +1,23 @@ +<MedicationStatement xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-PharmacistVerifiedIndicator-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate whether a pharmacist verified a medication</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-PharmacistVerifiedIndicator"> + <valueBoolean value="true" /> + </extension> + <!-- **************extension end************** --> + <status value="active" /> + <medicationCodeableConcept> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="39732311000001104" /> + <display value="Amoxicillin 250mg capsules" /> + </coding> + </medicationCodeableConcept> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> +</MedicationStatement> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-PreferredDispenserOrganization-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-PreferredDispenserOrganization-Example.xml new file mode 100644 index 0000000..9a3722a --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-PreferredDispenserOrganization-Example.xml @@ -0,0 +1,14 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-PreferredDispenserOrganization-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a preferred dispenser</div> + </text> + <!-- ***************extension start*************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-PreferredDispenserOrganization"> + <valueReference> + <reference value="Organization/UKCore-Organization-WhiteRoseMedicalCentre-Example" /> + </valueReference> + </extension> + <!-- ***************extension end*************** --> +</Patient> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-PriorityReason-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-PriorityReason-Example.xml new file mode 100644 index 0000000..4f5491d --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-PriorityReason-Example.xml @@ -0,0 +1,28 @@ +<ServiceRequest xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-PriorityReason-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate sending a priority reason for an urgent ServiceRequest, using a SNOMED CT concept</div> + </text> + <status value="active" /> + <intent value="order" /> + <priority value="urgent"> + <!-- ***************extension start*************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-PriorityReason"> + <valueCodeableConcept> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1321851000000109" /> + <display value="Provision of advice, assessment or treatment delayed due to COVID-19 pandemic" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- **************extension end ****************** --> + </priority> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <requester> + <reference value="Practitioner/UKCore-Practitioner-DoctorPaulRastall-Example" /> + </requester> +</ServiceRequest> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-PriorityReason-SendingAsText-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-PriorityReason-SendingAsText-Example.xml new file mode 100644 index 0000000..175af27 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-PriorityReason-SendingAsText-Example.xml @@ -0,0 +1,24 @@ +<ServiceRequest xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-PriorityReason-SendingAsText-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate sending a priority reason for an urgent ServiceRequest, using plain text</div> + </text> + <status value="active" /> + <intent value="order" /> + <priority value="urgent"> + <!-- ***************extension start*************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-PriorityReason"> + <valueCodeableConcept> + <text value="Original assessment was delayed due to COVID-19 pandemic" /> + </valueCodeableConcept> + </extension> + <!-- **************extension end ****************** --> + </priority> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <requester> + <reference value="Practitioner/UKCore-Practitioner-DoctorPaulRastall-Example" /> + </requester> +</ServiceRequest> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-RecordingSetting-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-RecordingSetting-Example.xml new file mode 100644 index 0000000..46c77d8 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-RecordingSetting-Example.xml @@ -0,0 +1,88 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-RecordingSetting-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate sending the setting a vital signs observation was recorded in</div> + </text> + <!-- ***************extension start*************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-RcordingSetting"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-RecordingSetting" /> + <code value="residential" /> + <display value="Residential" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- ***************extension end*************** --> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="75367002" /> + <display value="Blood pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="85354-9" /> + <display value="Blood pressure panel with all children optional" /> + </coding> + <text value="Blood pressure" /> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2023-09-10" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="72313002" /> + <display value="Systolic arterial pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="8480-6" /> + <display value="Systolic blood pressure" /> + </coding> + <text value="Systolic blood pressure" /> + </code> + <valueQuantity> + <value value="108" /> + <unit value="millimeter of mercury" /> + <system value="http://unitsofmeasure.org" /> + <code value="mm[Hg]" /> + </valueQuantity> + </component> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1091811000000102" /> + <display value="Diastolic arterial pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="8462-4" /> + <display value="Diastolic blood pressure" /> + </coding> + <text value="Diastolic blood pressure" /> + </code> + <valueQuantity> + <value value="82" /> + <unit value="millimeter of mercury" /> + <system value="http://unitsofmeasure.org" /> + <code value="mm[Hg]" /> + </valueQuantity> + </component> +</Observation> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-RepeatInformation-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-RepeatInformation-Example.xml new file mode 100644 index 0000000..f9e606c --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-RepeatInformation-Example.xml @@ -0,0 +1,73 @@ +<MedicationRequest xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-RepeatInformation-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the specific repeat information of a medication item</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation"> + <extension url="numberOfPrescriptionsIssued"> + <valueUnsignedInt value="1" /> + </extension> + <extension url="authorisationExpiryDate"> + <valueDateTime value="2022-09-10T19:00:00.000Z" /> + </extension> + </extension> + <!-- **************extension end************** --> + <status value="completed" /> + <intent value="order" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-category" /> + <code value="outpatient" /> + <display value="Outpatient" /> + </coding> + </category> + <priority value="routine" /> + <medicationReference> + <reference value="Medication/UKCore-Medication-TimoptolEyeDrops-Example" /> + </medicationReference> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <requester> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </requester> + <recorder> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </recorder> + <courseOfTherapyType> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-MedicationRequestCourseOfTherapy" /> + <code value="continuous-repeating-dispensing" /> + <display value="Continuous long term (repeat dispensing)" /> + </coding> + </courseOfTherapyType> + <dosageInstruction> + <text value="1 drop in each affected eye twice daily, approximately 12 hours apart." /> + <timing> + <repeat> + <frequency value="1" /> + <period value="12" /> + <periodUnit value="h" /> + </repeat> + </timing> + <site> + <coding> + <system value="http://snomed.info/sct" /> + <code value="362508001" /> + <display value="Both eyes, entire" /> + </coding> + </site> + <method> + <coding> + <system value="http://snomed.info/sct" /> + <code value="421984009" /> + <display value="Until finished" /> + </coding> + </method> + </dosageInstruction> + <substitution> + <allowedBoolean value="true" /> + </substitution> +</MedicationRequest> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-ResidentialStatus-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-ResidentialStatus-Example.xml new file mode 100644 index 0000000..1c1e49d --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-ResidentialStatus-Example.xml @@ -0,0 +1,18 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-ResidentialStatus-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension to show the patient's residential status</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ResidentialStatus"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-ResidentialStatus" /> + <code value="H" /> + <display value="UK Resident" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- **************extension end************** --> +</Patient> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-ResponseRequest-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-ResponseRequest-Example.xml new file mode 100644 index 0000000..c2319d8 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-ResponseRequest-Example.xml @@ -0,0 +1,36 @@ +<MessageHeader xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-ResponseRequest-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the HL7 extension ResponseRequest</div> + </text> + <!-- **************extension start************** --> + <extension url="http://hl7.org/fhir/StructureDefinition/messageheader-response-request"> + <valueCode value="always" /> + </extension> + <!-- **************extension end************** --> + <eventCoding> + <system value="http://snomed.info/sct" /> + <code value="306689006" /> + <display value="Discharge to home" /> + </eventCoding> + <destination> + <endpoint value="urn:nhs:addressing:asid:477121007825" /> + <receiver> + <identifier> + <system value="https://fhir.nhs.uk/Id/ods-organization-code" /> + <value value="RY6" /> + </identifier> + <display value="LEEDS COMMUNITY HEALTHCARE NHS TRUST" /> + </receiver> + </destination> + <sender> + <reference value="https://directory.spineservices.nhs.uk/Organization/X26" /> + </sender> + <source> + <endpoint value="NOROT003" /> + </source> + <focus> + <reference value="Encounter/UKCore-Encounter-InpatientEncounter-Example" /> + </focus> +</MessageHeader> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-SampleCategory-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-SampleCategory-Example.xml new file mode 100644 index 0000000..e41c9a7 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-SampleCategory-Example.xml @@ -0,0 +1,36 @@ +<Specimen xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-SampleCategory-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the use of the Sample Category extension</div> + </text> + <!-- ***************extension start*************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-SampleCategory"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-SampleCategory" /> + <code value="germline" /> + <display value="Germline" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- ***************extension end*************** --> + <status value="available" /> + <type> + <coding> + <system value="http://snomed.info/sct" /> + <code value="4635002" /> + <display value="Arterial blood" /> + </coding> + </type> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <receivedTime value="2022-11-25T11:10:00Z" /> + <collection> + <collector> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </collector> + <collectedDateTime value="2022-11-25T16:00:00Z" /> + </collection> +</Specimen> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-SampleCategory-PheobeSmitham-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-SampleCategory-PheobeSmitham-Example.xml new file mode 100644 index 0000000..4c12d96 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-SampleCategory-PheobeSmitham-Example.xml @@ -0,0 +1,48 @@ +<Specimen xmlns='http://hl7.org/fhir'> + <id value='Extension-UKCore-SampleCategory-PheobeSmitham-Example'/> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the use of the Sample Category extension</div> + </text> + <extension url='https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-SampleCategory'> + <valueCodeableConcept> + <coding> + <system value='https://fhir.hl7.org.uk/CodeSystem/UKCore-SampleCategory'/> + <code value='germline'/> + <display value='Germline'/> + </coding> + </valueCodeableConcept> + </extension> + <identifier> + <system value='https://fhir.leedssth.nhs.uk//Id/specimenId'/> + <value value='RGD-69050-P-RR12764'/> + </identifier> + <status value='available'/> + <type> + <coding> + <system value='http://snomed.info/sct'/> + <code value='445295009'/> + <display value='Blood specimen with EDTA'/> + </coding> + </type> + <subject> + <reference value='Patient/Patient-PheobeSmitham-Example'/> + <identifier> + <system value='https://fhir.nhs.uk/Id/nhs-number'/> + <value value='9449307539'/> + </identifier> + </subject> + <request> + <reference value='ServiceRequest/ServiceRequest-WGSTestOrderForm-TrioTestingProband-Example'/> + </request> + <collection> + <collector> + <identifier> + <system value='https://fhir.nhs.uk/Id/sds-user-id'/> + <value value='9999999998'/> + </identifier> + <display value='Phletobomist-Lois Lane'/> + </collector> + <collectedDateTime value='2023-09-17'/> + </collection> +</Specimen> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-SourceOfServiceRequest-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-SourceOfServiceRequest-Example.xml new file mode 100644 index 0000000..14fdcb8 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-SourceOfServiceRequest-Example.xml @@ -0,0 +1,23 @@ +<ServiceRequest xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-SourceOfServiceRequest-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the source of service request extension associated with a service request</div> + </text> + <!-- ***************extension start*************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-SourceOfServiceRequest"> + <valueCodeableConcept> + <coding> + <system value="http://snomed.info/sct" /> + <code value="108161000000109" /> + <display value="Referred by general practitioner" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- **************extension end ****************** --> + <status value="active" /> + <intent value="order" /> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> +</ServiceRequest> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-SpecialHandling-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-SpecialHandling-Example.xml new file mode 100644 index 0000000..dcfab85 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-SpecialHandling-Example.xml @@ -0,0 +1,39 @@ +<Specimen xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-SpecialHandling-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the use of the HL7 core-defined Extension specimen-specialHandling</div> + </text> + <status value="available" /> + <type> + <coding> + <system value="http://snomed.info/sct" /> + <code value="431234000" /> + <display value="Specimen from fetus obtained by biopsy" /> + </coding> + </type> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <receivedTime value="2023-04-23T17:02:00Z" /> + <collection> + <!-- ***************extension start*************** --> + <extension url="http://hl7.org/fhir/StructureDefinition/specimen-specialHandling"> + <valueCodeableConcept> + <text value="Mother was infected with suspected viral haemorrhagic fever." /> + </valueCodeableConcept> + </extension> + <!-- **************extension end ****************** --> + <collector> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </collector> + <collectedDateTime value="2023-04-23T17:02:00Z" /> + <method> + <coding> + <system value="http://snomed.info/sct" /> + <code value="129314006" /> + <display value="Biopsy - action" /> + </coding> + </method> + </collection> +</Specimen> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-Translation-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-Translation-Example.xml new file mode 100644 index 0000000..03ffd38 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-Translation-Example.xml @@ -0,0 +1,26 @@ +<Condition xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-Translation-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the translation extension from one language to another</div> + </text> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="22298006" /> + <display value="Myocardial infarction"> + <extension url="http://hl7.org/fhir/StructureDefinition/translation"> + <extension url="lang"> + <valueCode value="fr" /> + </extension> + <extension url="content"> + <valueString value="Infarctus du myocarde" /> + </extension> + </extension> + </display> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> +</Condition> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-TriggeredBy-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-TriggeredBy-Example.xml new file mode 100644 index 0000000..90370c3 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-TriggeredBy-Example.xml @@ -0,0 +1,50 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-TriggeredBy-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustration observation triggered by another observation</div> + </text> + <!-- ***************extension start*************** --> + <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.triggeredBy"> + <extension url="observation"> + <valueReference> + <reference value="Observation/UKCore-Observation-DrugUse-Example" /> + </valueReference> + </extension> + <extension url="type"> + <valueCode value="reflex" /> + </extension> + <extension url="reason"> + <valueString value="Patient admitted to recreational drug use." /> + </extension> + </extension> + <!-- ***************extension end*************** --> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="293a6418-9dcf-4d42-b97a-b119afd200ba" /> + </identifier> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="laboratory" /> + <display value="Laboratory" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1014801000000101" /> + <display value="Urine tricyclic drug screen" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <specimen> + <reference value="Specimen/UKCore-Specimen-UrineSpecimen-Example" /> + </specimen> +</Observation> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-VaccinationProcedure-COVID-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-VaccinationProcedure-COVID-Example.xml new file mode 100644 index 0000000..a6d91ef --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-VaccinationProcedure-COVID-Example.xml @@ -0,0 +1,30 @@ +<Immunization xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-VaccinationProcedure-COVID-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension for a vaccination procedure for COVID-19</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure"> + <valueCodeableConcept> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1324681000000101" /> + <display value="Administration of first dose of severe acute respiratory syndrome coronavirus 2 vaccine (procedure)" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- **************extension end************** --> + <status value="completed" /> + <vaccineCode> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="39116211000001106" /> + <display value="Generic COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials" /> + </coding> + </vaccineCode> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> + <occurrenceDateTime value="2021-07-20" /> +</Immunization> diff --git a/FHIRValidationAction/test/Examples/examples/Extension-UKCore-VaccinationProcedure-Example.xml b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-VaccinationProcedure-Example.xml new file mode 100644 index 0000000..a0cbae6 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/Extension-UKCore-VaccinationProcedure-Example.xml @@ -0,0 +1,30 @@ +<Immunization xmlns="http://hl7.org/fhir"> + <id value="Extension-UKCore-VaccinationProcedure-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the extension for a vaccination procedure</div> + </text> + <!-- **************extension start************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure"> + <valueCodeableConcept> + <coding> + <system value="http://snomed.info/sct" /> + <code value="73701000119109" /> + <display value="Influenza vaccination given" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- **************extension end************** --> + <status value="completed" /> + <vaccineCode> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="11278411000001109" /> + <display value="Influenza vaccine (split virion, inactivated) suspension for injection 0.5ml pre-filled syringes (Pfizer Ltd)" /> + </coding> + </vaccineCode> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> + <occurrenceDateTime value="2013-01-10" /> +</Immunization> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-AllergyIntolerance-Amoxicillin-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-AllergyIntolerance-Amoxicillin-Example.xml new file mode 100644 index 0000000..bf1af9e --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-AllergyIntolerance-Amoxicillin-Example.xml @@ -0,0 +1,51 @@ +<AllergyIntolerance xmlns="http://hl7.org/fhir"> + <id value="UKCore-AllergyIntolerance-Amoxicillin-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate an allergy to Amoxicillin</div> + </text> + <clinicalStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical" /> + <code value="active" /> + <display value="Active" /> + </coding> + </clinicalStatus> + <verificationStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-verification" /> + <code value="confirmed" /> + <display value="Confirmed" /> + </coding> + </verificationStatus> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="372687004" /> + <display value="Amoxicillin" /> + </coding> + </code> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> + <encounter> + <reference value="Encounter/UKCore-Encounter-InpatientEncounter-Example" /> + </encounter> + <recordedDate value="2019-12-10T13:00:00+00:00" /> + <recorder> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </recorder> + <asserter> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </asserter> + <reaction> + <manifestation> + <coding> + <system value="http://snomed.info/sct" /> + <code value="247472004" /> + <display value="Urticarial rash" /> + </coding> + </manifestation> + <severity value="mild" /> + </reaction> +</AllergyIntolerance> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-AllergyIntolerance-EnteredInError-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-AllergyIntolerance-EnteredInError-Example.xml new file mode 100644 index 0000000..7c5b408 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-AllergyIntolerance-EnteredInError-Example.xml @@ -0,0 +1,34 @@ +<AllergyIntolerance xmlns="http://hl7.org/fhir"> + <id value="UKCore-AllergyIntolerance-EnteredInError-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate an allergy that was entered in error</div> + </text> + <verificationStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-verification" /> + <code value="entered-in-error" /> + <display value="Entered in Error" /> + </coding> + </verificationStatus> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="372687004" /> + <display value="Amoxicillin" /> + </coding> + </code> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> + <encounter> + <reference value="Encounter/UKCore-Encounter-InpatientEncounter-Example" /> + </encounter> + <recordedDate value="2019-12-10T13:00:00+00:00" /> + <recorder> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </recorder> + <asserter> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </asserter> +</AllergyIntolerance> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-AllergyIntolerance-Sn-DrugAllergy-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-AllergyIntolerance-Sn-DrugAllergy-Example.xml new file mode 100644 index 0000000..d8e5fad --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-AllergyIntolerance-Sn-DrugAllergy-Example.xml @@ -0,0 +1,30 @@ +<AllergyIntolerance xmlns="http://hl7.org/fhir"> + <id value="UKCore-AllergyIntolerance-Sn-DrugAllergy-Example" /> + <clinicalStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical" /> + <code value="active" /> + <display value="Active" /> + </coding> + </clinicalStatus> + <verificationStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-verification" /> + <code value="confirmed" /> + <display value="Confirmed" /> + </coding> + </verificationStatus> + <!-- **************Snippet start************** --> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="196461000000101" /> + <display value="Transfer-degraded drug allergy (record artifact)" /> + </coding> + <text value="9339101000001105 | Septrin" /> + </code> + <!-- **************Snippet end************** --> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> +</AllergyIntolerance> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-AllergyIntolerance-Sn-DrugAllergyToEggProtein-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-AllergyIntolerance-Sn-DrugAllergyToEggProtein-Example.xml new file mode 100644 index 0000000..5a3b43a --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-AllergyIntolerance-Sn-DrugAllergyToEggProtein-Example.xml @@ -0,0 +1,30 @@ +<AllergyIntolerance xmlns="http://hl7.org/fhir"> + <id value="UKCore-AllergyIntolerance-Sn-DrugAllergyToEggProtein-Example" /> + <clinicalStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical" /> + <code value="active" /> + <display value="Active" /> + </coding> + </clinicalStatus> + <verificationStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-verification" /> + <code value="confirmed" /> + <display value="Confirmed" /> + </coding> + </verificationStatus> + <!-- **************Snippet start************** --> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="196461000000101" /> + <display value="Transfer-degraded drug allergy (record artifact)" /> + </coding> + <text value="213020009 | Allergy to egg protein" /> + </code> + <!-- **************Snippet end************** --> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> +</AllergyIntolerance> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-AllergyIntolerance-Sn-NegHandlNoKnownAllergies-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-AllergyIntolerance-Sn-NegHandlNoKnownAllergies-Example.xml new file mode 100644 index 0000000..6b4a769 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-AllergyIntolerance-Sn-NegHandlNoKnownAllergies-Example.xml @@ -0,0 +1,29 @@ +<AllergyIntolerance xmlns="http://hl7.org/fhir"> + <id value="UKCore-AllergyIntolerance-Sn-NegHandlNoKnownAllergies-Example" /> + <clinicalStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical" /> + <code value="active" /> + <display value="Active" /> + </coding> + </clinicalStatus> + <verificationStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-verification" /> + <code value="confirmed" /> + <display value="Confirmed" /> + </coding> + </verificationStatus> + <!-- **************Snippet start************** --> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="409137002" /> + <display value="No known drug allergy (situation)" /> + </coding> + </code> + <!-- **************Snippet end************** --> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> +</AllergyIntolerance> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-AllergyIntolerance-Sn-NonDrugAllergy-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-AllergyIntolerance-Sn-NonDrugAllergy-Example.xml new file mode 100644 index 0000000..7599195 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-AllergyIntolerance-Sn-NonDrugAllergy-Example.xml @@ -0,0 +1,30 @@ +<AllergyIntolerance xmlns="http://hl7.org/fhir"> + <id value="UKCore-AllergyIntolerance-Sn-NonDrugAllergy-Example" /> + <clinicalStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical" /> + <code value="active" /> + <display value="Active" /> + </coding> + </clinicalStatus> + <verificationStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-verification" /> + <code value="confirmed" /> + <display value="Confirmed" /> + </coding> + </verificationStatus> + <!-- **************Snippet start************** --> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="196471000000108" /> + <display value="Transfer-degraded non-drug allergy (record artifact)" /> + </coding> + <text value="Latex" /> + </code> + <!-- **************Snippet end************** --> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> +</AllergyIntolerance> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-AllergyIntolerance-Sn-TransferDegradedDrugAllergy-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-AllergyIntolerance-Sn-TransferDegradedDrugAllergy-Example.xml new file mode 100644 index 0000000..c9cbb5a --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-AllergyIntolerance-Sn-TransferDegradedDrugAllergy-Example.xml @@ -0,0 +1,30 @@ +<AllergyIntolerance xmlns="http://hl7.org/fhir"> + <id value="UKCore-AllergyIntolerance-Sn-TransferDegradedDrugAllergy-Example" /> + <clinicalStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical" /> + <code value="active" /> + <display value="Active" /> + </coding> + </clinicalStatus> + <verificationStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-verification" /> + <code value="confirmed" /> + <display value="Confirmed" /> + </coding> + </verificationStatus> + <!-- **************Snippet start************** --> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="196461000000101" /> + <display value="Transfer-degraded drug allergy" /> + </coding> + <text value="Amoxicillin 250mg capsules" /> + </code> + <!-- **************Snippet end************** --> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> +</AllergyIntolerance> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Appointment-OrthopaedicSurgery-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Appointment-OrthopaedicSurgery-Example.xml new file mode 100644 index 0000000..a185e6f --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Appointment-OrthopaedicSurgery-Example.xml @@ -0,0 +1,101 @@ +<Appointment xmlns="http://hl7.org/fhir"> + <id value="UKCore-Appointment-OrthopaedicSurgery-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate n orthopaedic surgery appointment</div> + </text> + <!--This supports the recording of the organisation booking the appointment.--> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-BookingOrganization"> + <valueReference> + <reference value="Organization/UKCore-Organization-WhiteRoseMedicalCentre-Example" /> + <type value="Organization" /> + </valueReference> + </extension> + <!--This describes the delivery channel of a scheduled appointment.--> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeliveryChannel"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-DeliveryChannel" /> + <code value="In-person" /> + <display value="In person" /> + </coding> + </valueCodeableConcept> + </extension> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="e7c54d06-c5b5-4ecb-91c3-5c1e68d3b923" /> + </identifier> + <status value="booked" /> + <serviceCategory> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/service-category" /> + <code value="31" /> + <display value="Specialist Surgical" /> + </coding> + </serviceCategory> + <serviceType> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/service-type" /> + <code value="218" /> + <display value="Orthopaedic Surgery" /> + </coding> + </serviceType> + <specialty> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-PracticeSettingCode" /> + <code value="110" /> + <display value="Trauma and Orthopaedics" /> + </coding> + </specialty> + <appointmentType> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v2-0276" /> + <code value="FOLLOWUP" /> + <display value="A follow up visit from a previous appointment" /> + </coding> + </appointmentType> + <reasonReference> + <reference value="Condition/UKCore-Condition-HipReplacement-Example" /> + <display value="Pain in both hips" /> + </reasonReference> + <priority value="1" /> + <description value="Appointment to investigate the pain in both hips" /> + <start value="2022-03-11T10:46:00+00:00" /> + <end value="2022-03-11T13:20:00+00:00" /> + <created value="2022-02-14" /> + <comment value="Further expand on the results of the X-ray and determine the next actions that may be appropriate." /> + <patientInstruction value="Please do not eat anything for 1 hour prior to the appointment." /> + <basedOn> + <reference value="ServiceRequest/UKCore-ServiceRequest-HipReplacement-Example" /> + </basedOn> + <participant> + <actor> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + <display value="Richard Smith" /> + </actor> + <required value="required" /> + <status value="accepted" /> + </participant> + <participant> + <type> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-ParticipationType" /> + <code value="ATND" /> + </coding> + </type> + <actor> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + <display value="Dr Sandra Gose" /> + </actor> + <required value="required" /> + <status value="accepted" /> + </participant> + <participant> + <actor> + <reference value="Location/UKCore-Location-HospitalSJUH-Example" /> + <display value="Orthopaedic Trauma Department, St James' University Hospital, Leeds" /> + </actor> + <required value="required" /> + <status value="accepted" /> + </participant> +</Appointment> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-AuditEvent-Query-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-AuditEvent-Query-Example.xml new file mode 100644 index 0000000..7a6a5e0 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-AuditEvent-Query-Example.xml @@ -0,0 +1,54 @@ +<AuditEvent xmlns="http://hl7.org/fhir"> + <id value="UKCore-AuditEvent-Query-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate an event made for purposes of maintaining a security log for a query search</div> + </text> + <type> + <system value="http://dicom.nema.org/resources/ontology/DCM" /> + <code value="110112" /> + <display value="Query" /> + </type> + <subtype> + <system value="http://hl7.org/fhir/restful-interaction" /> + <code value="search" /> + <display value="search" /> + </subtype> + <recorded value="2020-12-10T13:10:00+00:00" /> + <agent> + <role> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-RoleCode" /> + <code value="RESPRSN" /> + <display value="responsible party" /> + </coding> + </role> + <who> + <reference value="Practitioner/UKCore-Practitioner-DoctorPaulRastall-Example" /> + </who> + <requestor value="true" /> + <location> + <reference value="Location/UKCore-Location-CardiologySJUH-Example" /> + </location> + </agent> + <source> + <observer> + <reference value="Practitioner/UKCore-Practitioner-DoctorPaulRastall-Example" /> + </observer> + <type> + <system value="http://terminology.hl7.org/CodeSystem/security-source-type" /> + <code value="1" /> + <display value="User Device" /> + </type> + </source> + <entity> + <what> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </what> + <type> + <system value="http://hl7.org/fhir/resource-types" /> + <code value="Patient" /> + <display value="Patient" /> + </type> + </entity> +</AuditEvent> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-BodyStructure-MedianCubitalVein-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-BodyStructure-MedianCubitalVein-Example.xml new file mode 100644 index 0000000..de43d9b --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-BodyStructure-MedianCubitalVein-Example.xml @@ -0,0 +1,26 @@ +<BodyStructure xmlns="http://hl7.org/fhir"> + <id value="UKCore-BodyStructure-MedianCubitalVein-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a body structure of a vein</div> + </text> + <location> + <coding> + <system value="http://snomed.info/sct" /> + <code value="49852007" /> + <display value="Structure of median cubital vein" /> + </coding> + <text value="Forearm" /> + </location> + <locationQualifier> + <coding> + <system value="http://snomed.info/sct" /> + <code value="419161000" /> + <display value="Unilateral left" /> + </coding> + <text value="Left" /> + </locationQualifier> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> +</BodyStructure> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Bundle-AllergyList-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Bundle-AllergyList-Example.xml new file mode 100644 index 0000000..7818f4e --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Bundle-AllergyList-Example.xml @@ -0,0 +1,82 @@ +<Bundle xmlns="http://hl7.org/fhir"> + <id value="UKCore-Bundle-AllergyList-Example" /> + <type value="collection" /> + <entry> + <fullUrl value="urn:uuid:d043d2b6-5782-4536-88b6-e537973a09fb" /> + <resource> + <List> + <id value="UKCore-Allergy-List-Example" /> + <status value="current" /> + <mode value="snapshot" /> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="886921000000105" /> + <display value="Allergies and adverse reactions" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <date value="2019-12-10T13:00:00+00:00" /> + <entry> + <item> + <reference value="urn:uuid:efae5859-28df-4e7d-be91-6df56d8215e4" /> + </item> + </entry> + </List> + </resource> + </entry> + <entry> + <fullUrl value="urn:uuid:efae5859-28df-4e7d-be91-6df56d8215e4" /> + <resource> + <AllergyIntolerance> + <id value="efae5859-28df-4e7d-be91-6df56d8215e4" /> + <clinicalStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical" /> + <code value="active" /> + <display value="Active" /> + </coding> + </clinicalStatus> + <verificationStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-verification" /> + <code value="confirmed" /> + <display value="Confirmed" /> + </coding> + </verificationStatus> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="372687004" /> + <display value="Amoxicillin" /> + </coding> + </code> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> + <encounter> + <reference value="Encounter/UKCore-Encounter-InpatientEncounter-Example" /> + </encounter> + <recordedDate value="2019-12-10T13:00:00+00:00" /> + <recorder> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </recorder> + <asserter> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </asserter> + <reaction> + <manifestation> + <coding> + <system value="http://snomed.info/sct" /> + <code value="247472004" /> + <display value="Urticarial rash" /> + </coding> + </manifestation> + <severity value="mild" /> + </reaction> + </AllergyIntolerance> + </resource> + </entry> +</Bundle> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Bundle-Batch-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Bundle-Batch-Example.xml new file mode 100644 index 0000000..22fe550 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Bundle-Batch-Example.xml @@ -0,0 +1,22 @@ +<Bundle xmlns="http://hl7.org/fhir"> + <id value="UKCore-Bundle-Batch-Example" /> + <type value="batch" /> + <entry> + <request> + <method value="GET" /> + <url value="https://fhir.hl7.org.uk/Patient/UKCore-Patient-RichardSmith-Example" /> + </request> + </entry> + <entry> + <request> + <method value="GET" /> + <url value="https://fhir.hl7.org.uk/Condition?UKCore-Patient-RichardSmith-Example" /> + </request> + </entry> + <entry> + <request> + <method value="GET" /> + <url value="https://fhir.hl7.org.uk/MedicationStatement?UKCore-Patient-RichardSmith-Example" /> + </request> + </entry> +</Bundle> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Bundle-BatchPOST-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Bundle-BatchPOST-Example.xml new file mode 100644 index 0000000..5197955 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Bundle-BatchPOST-Example.xml @@ -0,0 +1,394 @@ +<Bundle xmlns='http://hl7.org/fhir'> + <id value="UKCore-Bundle-BatchPOST-Example" /> + <type value='batch'/> + <entry> + <fullUrl value="urn:uuid:857d3c72-1672-4c8f-b6a1-4d04b44b0d7a" /> + <resource> + <Observation> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="75367002" /> + <display value="Blood pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="85354-9" /> + <display value="Blood pressure panel with all children optional" /> + </coding> + <text value="Blood pressure" /> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2024-03-25T12:20:00+00:00" /> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="72313002" /> + <display value="Systolic arterial pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="8480-6" /> + <display value="Systolic blood pressure" /> + </coding> + <text value="Systolic blood pressure" /> + </code> + <valueQuantity> + <value value="120" /> + <unit value="millimeter of mercury" /> + <system value="http://unitsofmeasure.org" /> + <code value="mm[Hg]" /> + </valueQuantity> + </component> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1091811000000102" /> + <display value="Diastolic arterial pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="8462-4" /> + <display value="Diastolic blood pressure" /> + </coding> + <text value="Diastolic blood pressure" /> + </code> + <valueQuantity> + <value value="95" /> + <unit value="millimeter of mercury" /> + <system value="http://unitsofmeasure.org" /> + <code value="mm[Hg]" /> + </valueQuantity> + </component> + </Observation> + </resource> + <request> + <method value='POST'/> + <url value='Observation'/> + </request> + </entry> + <entry> + <fullUrl value="urn:uuid:c93bf88e-bea2-44db-a89c-c89c8363778b" /> + <resource> + <Observation> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="75367002" /> + <display value="Blood pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="85354-9" /> + <display value="Blood pressure panel with all children optional" /> + </coding> + <text value="Blood pressure" /> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2024-03-25T12:21:00+00:00" /> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="72313002" /> + <display value="Systolic arterial pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="8480-6" /> + <display value="Systolic blood pressure" /> + </coding> + <text value="Systolic blood pressure" /> + </code> + <valueQuantity> + <value value="121" /> + <unit value="millimeter of mercury" /> + <system value="http://unitsofmeasure.org" /> + <code value="mm[Hg]" /> + </valueQuantity> + </component> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1091811000000102" /> + <display value="Diastolic arterial pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="8462-4" /> + <display value="Diastolic blood pressure" /> + </coding> + <text value="Diastolic blood pressure" /> + </code> + <valueQuantity> + <value value="95" /> + <unit value="millimeter of mercury" /> + <system value="http://unitsofmeasure.org" /> + <code value="mm[Hg]" /> + </valueQuantity> + </component> + </Observation> + </resource> + <request> + <method value='POST'/> + <url value='Observation'/> + </request> + </entry> + <entry> + <fullUrl value="urn:uuid:c32d8504-c144-4931-99f0-c940b4ec0a3e" /> + <resource> + <Observation> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="75367002" /> + <display value="Blood pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="85354-9" /> + <display value="Blood pressure panel with all children optional" /> + </coding> + <text value="Blood pressure" /> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2024-03-25T12:22:00+00:00" /> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="72313002" /> + <display value="Systolic arterial pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="8480-6" /> + <display value="Systolic blood pressure" /> + </coding> + <text value="Systolic blood pressure" /> + </code> + <valueQuantity> + <value value="125" /> + <unit value="millimeter of mercury" /> + <system value="http://unitsofmeasure.org" /> + <code value="mm[Hg]" /> + </valueQuantity> + </component> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1091811000000102" /> + <display value="Diastolic arterial pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="8462-4" /> + <display value="Diastolic blood pressure" /> + </coding> + <text value="Diastolic blood pressure" /> + </code> + <valueQuantity> + <value value="90" /> + <unit value="millimeter of mercury" /> + <system value="http://unitsofmeasure.org" /> + <code value="mm[Hg]" /> + </valueQuantity> + </component> + </Observation> + </resource> + <request> + <method value='POST'/> + <url value='Observation'/> + </request> + </entry> + <entry> + <fullUrl value="urn:uuid:8aeca335-c513-4fdb-9869-f148db15cb4b" /> + <resource> + <Observation> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="75367002" /> + <display value="Blood pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="85354-9" /> + <display value="Blood pressure panel with all children optional" /> + </coding> + <text value="Blood pressure" /> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2024-03-25T12:23:00+00:00" /> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="72313002" /> + <display value="Systolic arterial pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="8480-6" /> + <display value="Systolic blood pressure" /> + </coding> + <text value="Systolic blood pressure" /> + </code> + <valueQuantity> + <value value="122" /> + <unit value="millimeter of mercury" /> + <system value="http://unitsofmeasure.org" /> + <code value="mm[Hg]" /> + </valueQuantity> + </component> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1091811000000102" /> + <display value="Diastolic arterial pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="8462-4" /> + <display value="Diastolic blood pressure" /> + </coding> + <text value="Diastolic blood pressure" /> + </code> + <valueQuantity> + <value value="92" /> + <unit value="millimeter of mercury" /> + <system value="http://unitsofmeasure.org" /> + <code value="mm[Hg]" /> + </valueQuantity> + </component> + </Observation> + </resource> + <request> + <method value='POST'/> + <url value='Observation'/> + </request> + </entry> + <entry> + <fullUrl value="urn:uuid:09a48566-c337-410d-9133-9f5aed67b5b2" /> + <resource> + <Observation> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="75367002" /> + <display value="Blood pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="85354-9" /> + <display value="Blood pressure panel with all children optional" /> + </coding> + <text value="Blood pressure" /> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2024-03-25T12:24:00+00:00" /> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="72313002" /> + <display value="Systolic arterial pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="8480-6" /> + <display value="Systolic blood pressure" /> + </coding> + <text value="Systolic blood pressure" /> + </code> + <valueQuantity> + <value value="118" /> + <unit value="millimeter of mercury" /> + <system value="http://unitsofmeasure.org" /> + <code value="mm[Hg]" /> + </valueQuantity> + </component> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1091811000000102" /> + <display value="Diastolic arterial pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="8462-4" /> + <display value="Diastolic blood pressure" /> + </coding> + <text value="Diastolic blood pressure" /> + </code> + <valueQuantity> + <value value="94" /> + <unit value="millimeter of mercury" /> + <system value="http://unitsofmeasure.org" /> + <code value="mm[Hg]" /> + </valueQuantity> + </component> + </Observation> + </resource> + <request> + <method value='POST'/> + <url value='Observation'/> + </request> + </entry> +</Bundle> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Bundle-NEWS2Observations-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Bundle-NEWS2Observations-Example.xml new file mode 100644 index 0000000..4a72330 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Bundle-NEWS2Observations-Example.xml @@ -0,0 +1,534 @@ +<Bundle xmlns="http://hl7.org/fhir"> + <id value="UKCore-Bundle-NEWS2Observations-Example" /> + <type value="collection" /> + <entry> + <fullUrl value="Observation/21344a45-2660-45d1-9fb3-49e54d14b662" /> + <resource> + <Observation> + <id value="21344a45-2660-45d1-9fb3-49e54d14b662" /> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="7188c7ad-7802-4d43-9775-4d9d684600d5" /> + </identifier> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="survey" /> + <display value="Survey" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1104051000000101" /> + <display value="Royal College of Physicians NEWS2 (National Early Warning Score 2) total score" /> + </coding> + </code> + <subject> + <reference value="Patient/ad2c58ab-ffab-4366-9c76-b0322e22e881" /> + </subject> + <effectiveDateTime value="2018-10-04T14:17:59+01:00" /> + <performer> + <reference value="Practitioner/7096e518-2638-4c00-ab0e-504c20cd50b6" /> + </performer> + <performer> + <reference value="Organization/25d5ad55-5657-4cbe-9b8b-2e993f19286e" /> + </performer> + <valueQuantity> + <value value="6" /> + <unit value="ScoreOf" /> + <system value="http://unitsofmeasure.org" /> + <code value="{ScoreOf}" /> + </valueQuantity> + <derivedFrom> + <reference value="Observation/fc6c6fa5-d8e8-4634-a19a-985325077cb2" /> + </derivedFrom> + <derivedFrom> + <reference value="Observation/638c6821-eb51-4f1b-b8c0-5269d1df9b7c" /> + </derivedFrom> + <derivedFrom> + <reference value="Observation/5a1625e8-938e-4c19-9d3e-a235bfb4b37d" /> + </derivedFrom> + <derivedFrom> + <reference value="Observation/c756fd32-f04e-45a9-b02f-2461ed53c736" /> + </derivedFrom> + <derivedFrom> + <reference value="Observation/1a1273f4-dd78-4bb4-bb98-ed6456caa2a2" /> + </derivedFrom> + <derivedFrom> + <reference value="Observation/f0d26102-3a50-4993-9203-6089b625fc2f" /> + </derivedFrom> + <derivedFrom> + <reference value="Observation/dbf6ec86-ebd7-4490-8586-596328519ed2" /> + </derivedFrom> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1104301000000104" /> + <display value="Royal College of Physicians NEWS2 (National Early Warning Score 2) - respiration rate score" /> + </coding> + </code> + <valueQuantity> + <value value="2" /> + <unit value="ScoreOf" /> + <system value="http://unitsofmeasure.org" /> + <code value="{ScoreOf}" /> + </valueQuantity> + </component> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1104351000000103" /> + <display value="Royal College of Physicians NEWS2 (National Early Warning Score 2) - pulse score" /> + </coding> + </code> + <valueQuantity> + <value value="1" /> + <unit value="ScoreOf" /> + <system value="http://unitsofmeasure.org" /> + <code value="{ScoreOf}" /> + </valueQuantity> + </component> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1104311000000102" /> + <display value="Royal College of Physicians NEWS2 (National Early Warning Score 2) - oxygen saturation scale 1 score" /> + </coding> + </code> + <valueQuantity> + <value value="2" /> + <unit value="ScoreOf" /> + <system value="http://unitsofmeasure.org" /> + <code value="{ScoreOf}" /> + </valueQuantity> + </component> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1104331000000105" /> + <display value="Royal College of Physicians NEWS2 (National Early Warning Score 2) - air or oxygen score" /> + </coding> + </code> + <valueQuantity> + <value value="0" /> + <unit value="ScoreOf" /> + <system value="http://unitsofmeasure.org" /> + <code value="{ScoreOf}" /> + </valueQuantity> + </component> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1104371000000107" /> + <display value="Royal College of Physicians NEWS2 (National Early Warning Score 2) - temperature score" /> + </coding> + </code> + <valueQuantity> + <value value="1" /> + <unit value="ScoreOf" /> + <system value="http://unitsofmeasure.org" /> + <code value="{ScoreOf}" /> + </valueQuantity> + </component> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1104341000000101" /> + <display value="Royal College of Physicians NEWS2 (National Early Warning Score 2) - systolic blood pressure score" /> + </coding> + </code> + <valueQuantity> + <value value="0" /> + <unit value="ScoreOf" /> + <system value="http://unitsofmeasure.org" /> + <code value="{ScoreOf}" /> + </valueQuantity> + </component> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1104361000000100" /> + <display value="Royal College of Physicians NEWS2 (National Early Warning Score 2) - consciousness score" /> + </coding> + </code> + <valueQuantity> + <value value="0" /> + <unit value="ScoreOf" /> + <system value="http://unitsofmeasure.org" /> + <code value="{ScoreOf}" /> + </valueQuantity> + </component> + </Observation> + </resource> + </entry> + <entry> + <fullUrl value="Observation/dbf6ec86-ebd7-4490-8586-596328519ed2" /> + <resource> + <Observation> + <id value="dbf6ec86-ebd7-4490-8586-596328519ed2" /> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="2936d52c-5ae3-434b-8978-bfa7563ed31a" /> + </identifier> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="86290005" /> + <display value="Respiratory rate" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="9279-1" /> + <display value="Respiratory Rate" /> + </coding> + </code> + <subject> + <reference value="Patient/ad2c58ab-ffab-4366-9c76-b0322e22e881" /> + </subject> + <effectiveDateTime value="2018-10-04T14:17:59+01:00" /> + <performer> + <reference value="Practitioner/7096e518-2638-4c00-ab0e-504c20cd50b6" /> + </performer> + <performer> + <reference value="Organization/25d5ad55-5657-4cbe-9b8b-2e993f19286e" /> + </performer> + <valueQuantity> + <value value="21" /> + <unit value="Breaths / minute" /> + <system value="http://unitsofmeasure.org" /> + <code value="{Breaths}/min" /> + </valueQuantity> + </Observation> + </resource> + </entry> + <entry> + <fullUrl value="Observation/f0d26102-3a50-4993-9203-6089b625fc2f" /> + <resource> + <Observation> + <id value="f0d26102-3a50-4993-9203-6089b625fc2f" /> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="99a2f708-66aa-4e7f-a09c-5742600f376d" /> + </identifier> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="364075005" /> + <display value="Heart rate" /> + </coding> + <coding> + <system value="http://snomed.info/sct" /> + <code value="78564009" /> + <display value="Pulse rate" /> + <userSelected value="true" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="8867-4" /> + <display value="Heart rate" /> + </coding> + </code> + <subject> + <reference value="Patient/ad2c58ab-ffab-4366-9c76-b0322e22e881" /> + </subject> + <effectiveDateTime value="2018-10-04T14:17:59+01:00" /> + <performer> + <reference value="Practitioner/7096e518-2638-4c00-ab0e-504c20cd50b6" /> + </performer> + <performer> + <reference value="Organization/25d5ad55-5657-4cbe-9b8b-2e993f19286e" /> + </performer> + <valueQuantity> + <value value="95" /> + <unit value="heart beats per minute" /> + <system value="http://unitsofmeasure.org" /> + <code value="{beats}/min" /> + </valueQuantity> + </Observation> + </resource> + </entry> + <entry> + <fullUrl value="Observation/1a1273f4-dd78-4bb4-bb98-ed6456caa2a2" /> + <resource> + <Observation> + <id value="1a1273f4-dd78-4bb4-bb98-ed6456caa2a2" /> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="de2273eb-ecb0-4205-862e-6a43b8f71ec1" /> + </identifier> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="103228002" /> + <display value="Hemoglobin saturation with oxygen" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="2708-6" /> + <display value="Oxygen saturation in Arterial blood" /> + </coding> + </code> + <subject> + <reference value="Patient/ad2c58ab-ffab-4366-9c76-b0322e22e881" /> + </subject> + <effectiveDateTime value="2018-10-04T14:17:59+01:00" /> + <performer> + <reference value="Practitioner/7096e518-2638-4c00-ab0e-504c20cd50b6" /> + </performer> + <performer> + <reference value="Organization/25d5ad55-5657-4cbe-9b8b-2e993f19286e" /> + </performer> + <valueQuantity> + <value value="93" /> + <unit value="percent" /> + <system value="http://unitsofmeasure.org" /> + <code value="%" /> + </valueQuantity> + </Observation> + </resource> + </entry> + <entry> + <fullUrl value="Observation/c756fd32-f04e-45a9-b02f-2461ed53c736" /> + <resource> + <Observation> + <id value="c756fd32-f04e-45a9-b02f-2461ed53c736" /> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="ce084616-c540-4032-aeb3-ef35347600c5" /> + </identifier> + <status value="final" /> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="722742002" /> + <display value="Breathing room air" /> + </coding> + </code> + <subject> + <reference value="Patient/ad2c58ab-ffab-4366-9c76-b0322e22e881" /> + </subject> + <effectiveDateTime value="2018-10-04T14:17:59+01:00" /> + <performer> + <reference value="Practitioner/7096e518-2638-4c00-ab0e-504c20cd50b6" /> + </performer> + <performer> + <reference value="Organization/25d5ad55-5657-4cbe-9b8b-2e993f19286e" /> + </performer> + </Observation> + </resource> + </entry> + <entry> + <fullUrl value="Observation/5a1625e8-938e-4c19-9d3e-a235bfb4b37d" /> + <resource> + <Observation> + <id value="5a1625e8-938e-4c19-9d3e-a235bfb4b37d" /> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="cff7c586-5a41-403b-a276-fc2cce24bf3b" /> + </identifier> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="276885007" /> + <display value="Core body temperature" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="8310-5" /> + <display value="Body temperature" /> + </coding> + </code> + <subject> + <reference value="Patient/ad2c58ab-ffab-4366-9c76-b0322e22e881" /> + </subject> + <effectiveDateTime value="2018-10-04T14:17:59+01:00" /> + <performer> + <reference value="Practitioner/7096e518-2638-4c00-ab0e-504c20cd50b6" /> + </performer> + <performer> + <reference value="Organization/25d5ad55-5657-4cbe-9b8b-2e993f19286e" /> + </performer> + <valueQuantity> + <value value="37.5" /> + <unit value="degree Celsius" /> + <system value="http://unitsofmeasure.org" /> + <code value="Cel" /> + </valueQuantity> + </Observation> + </resource> + </entry> + <entry> + <fullUrl value="Observation/638c6821-eb51-4f1b-b8c0-5269d1df9b7c" /> + <resource> + <Observation> + <id value="638c6821-eb51-4f1b-b8c0-5269d1df9b7c" /> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="8b77f37d-eb6b-427c-9cd5-b1a2166b8fdb" /> + </identifier> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="75367002" /> + <display value="Blood pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="85354-9" /> + <display value="Blood pressure panel with all children optional" /> + </coding> + </code> + <subject> + <reference value="Patient/ad2c58ab-ffab-4366-9c76-b0322e22e881" /> + </subject> + <effectiveDateTime value="2018-10-04T14:17:59+01:00" /> + <performer> + <reference value="Practitioner/7096e518-2638-4c00-ab0e-504c20cd50b6" /> + </performer> + <performer> + <reference value="Organization/25d5ad55-5657-4cbe-9b8b-2e993f19286e" /> + </performer> + <bodySite> + <coding> + <system value="http://snomed.info/sct" /> + <code value="368209003" /> + <display value="Right upper arm structure" /> + </coding> + </bodySite> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="72313002" /> + <display value="Systolic arterial pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="8480-6" /> + <display value="Systolic blood pressure" /> + </coding> + </code> + <valueQuantity> + <value value="120" /> + <unit value="millimeter of mercury" /> + <system value="http://unitsofmeasure.org" /> + <code value="mm[Hg]" /> + </valueQuantity> + </component> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1091811000000102" /> + <display value="Diastolic arterial pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="8462-4" /> + <display value="Diastolic blood pressure" /> + </coding> + </code> + <valueQuantity> + <value value="60" /> + <unit value="millimeter of mercury" /> + <system value="http://unitsofmeasure.org" /> + <code value="mm[Hg]" /> + </valueQuantity> + </component> + </Observation> + </resource> + </entry> + <entry> + <fullUrl value="Observation/fc6c6fa5-d8e8-4634-a19a-985325077cb2" /> + <resource> + <Observation> + <id value="fc6c6fa5-d8e8-4634-a19a-985325077cb2" /> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="2d16bf3f-4369-446c-8ceb-a0e103296208" /> + </identifier> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="survey" /> + <display value="Survey" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1104441000000107" /> + <display value="ACVPU (Alert Confusion Voice Pain Unresponsive) scale score" /> + </coding> + </code> + <subject> + <reference value="Patient/ad2c58ab-ffab-4366-9c76-b0322e22e881" /> + </subject> + <effectiveDateTime value="2018-10-04T14:17:59+01:00" /> + <performer> + <reference value="Practitioner/7096e518-2638-4c00-ab0e-504c20cd50b6" /> + </performer> + <performer> + <reference value="Organization/25d5ad55-5657-4cbe-9b8b-2e993f19286e" /> + </performer> + <valueCodeableConcept> + <coding> + <system value="http://snomed.info/sct" /> + <code value="248234008" /> + <display value="Mentally alert" /> + </coding> + </valueCodeableConcept> + </Observation> + </resource> + </entry> +</Bundle> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Bundle-Sn-NoAllergyData-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Bundle-Sn-NoAllergyData-Example.xml new file mode 100644 index 0000000..25281d6 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Bundle-Sn-NoAllergyData-Example.xml @@ -0,0 +1,9 @@ +<Bundle xmlns="http://hl7.org/fhir"> + <id value="UKCore-Bundle-Sn-NoAllergyData-Example" /> + <type value="searchset" /> + <total value="0" /> + <link> + <relation value="self" /> + <url value="https://[base]/AllergyIntolerance?patient%3Aidentifier=9912003888" /> + </link> +</Bundle> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-CarePlan-WellnessPlan-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-CarePlan-WellnessPlan-Example.xml new file mode 100644 index 0000000..c3182e4 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-CarePlan-WellnessPlan-Example.xml @@ -0,0 +1,70 @@ +<CarePlan xmlns="http://hl7.org/fhir"> + <id value="UKCore-CarePlan-WellnessPlan-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a wellness plan for the management of Type 2 diabetes</div> + </text> + <identifier> + <value value="7d9955bc-afe0-11ea-b3de-0242ac130004" /> + </identifier> + <basedOn> + <display value="Management of Type 2 Diabetes" /> + </basedOn> + <partOf> + <display value="Overall wellness plan" /> + </partOf> + <status value="active" /> + <intent value="plan" /> + <category> + <text value="Weight management plan" /> + </category> + <description value="Manage obesity and weight loss" /> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + <type value="Patient" /> + <display value="Richard SMITH" /> + </subject> + <period> + <end value="2020-01-01" /> + </period> + <created value="2020-02-01" /> + <author> + <reference value="Practitioner/UKCore-Practitioner-PaulRastall-Example" /> + </author> + <activity> + <outcomeCodeableConcept> + <coding> + <system value="http://snomed.info/sct" /> + <code value="161832001" /> + <display value="Progressive weight loss" /> + </coding> + </outcomeCodeableConcept> + <detail> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="27113001" /> + <display value="Body weight" /> + </coding> + </code> + <status value="completed" /> + <statusReason> + <text value="Achieved weight loss to mitigate diabetes risk." /> + </statusReason> + <doNotPerform value="false" /> + <scheduledTiming> + <repeat> + <frequency value="1" /> + <period value="1" /> + <periodUnit value="d" /> + </repeat> + </scheduledTiming> + <location> + <display value="Patient's home" /> + </location> + <performer> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </performer> + </detail> + </activity> +</CarePlan> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-CareTeam-WeightManagementTeam-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-CareTeam-WeightManagementTeam-Example.xml new file mode 100644 index 0000000..f98e394 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-CareTeam-WeightManagementTeam-Example.xml @@ -0,0 +1,24 @@ +<CareTeam xmlns="http://hl7.org/fhir"> + <id value="UKCore-CareTeam-WeightManagementTeam-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a weight management care team</div> + </text> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="0e7cc7b2-94b7-42c2-875b-56c921e4bcc2" /> + </identifier> + <status value="inactive" /> + <name value="Weight management team" /> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <participant> + <member> + <reference value="Practitioner/UKCore-Practitioner-PaulRastall-Example" /> + </member> + </participant> + <managingOrganization> + <reference value="Organization/UKCore-Organisation-WhiteRoseMedicalCentre-Example" /> + </managingOrganization> +</CareTeam> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Communication-FirstMMRVaccination-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Communication-FirstMMRVaccination-Example.xml new file mode 100644 index 0000000..c0d109b --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Communication-FirstMMRVaccination-Example.xml @@ -0,0 +1,45 @@ +<Communication xmlns="http://hl7.org/fhir"> + <id value="UKCore-Communication-FirstMMRVaccination-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a communication to notify that a patient has had their first MMR Vaccination</div> + </text> + <status value="completed" /> + <category> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-RecordStandardHeadings" /> + <code value="immunisations" /> + <display value="Immunisations" /> + </coding> + </category> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/communication-category" /> + <code value="notification" /> + <display value="Notification" /> + </coding> + </category> + <medium> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-ParticipationMode" /> + <code value="ELECTRONIC" /> + <display value="electronic data" /> + </coding> + </medium> + <subject> + <reference value="Patient/UKCore-Patient-BabyPatient-Example" /> + <display value="JONES, Melanie" /> + </subject> + <!-- <encounter> + <reference value="Encounter/UKCore-Encounter-InpatientEncounter-Example" /> + </encounter>--> + <sent value="2022-12-11T13:00:00+00:00" /> + <received value="2022-12-11T13:01:33+00:00" /> + <sender> + <reference value="Practitioner/UKCore-Practitioner-PaulRastall-Example" /> + <display value="Dr Paul Rastall" /> + </sender> + <payload> + <contentString value="First MMR vaccination administered to Melanie" /> + </payload> +</Communication> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Composition-Discharge-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Composition-Discharge-Example.xml new file mode 100644 index 0000000..ed68b62 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Composition-Discharge-Example.xml @@ -0,0 +1,333 @@ +<Composition xmlns="http://hl7.org/fhir"> + <id value="UKCore-Composition-Discharge-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a composition containing a discharge summary</div> + </text> + <!-- Extension to carry details of the Correspondence Care Setting Type. --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CareSettingType"> + <valueCodeableConcept> + <coding> + <system value="http://snomed.info/sct" /> + <code value="310000008" /> + <display value="Accident and Emergency service" /> + </coding> + </valueCodeableConcept> + </extension> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="2d361270-039f-4a48-827b-ef255ff8b6c4" /> + </identifier> + <!-- The workflow/clinical status of this composition. +The status is a marker for the clinical standing of the document. --> + <status value="final" /> + <type> + <!-- Discharge Summary document type --> + <coding> + <system value="http://snomed.info/sct" /> + <code value="373942005" /> + <display value="Discharge summary" /> + </coding> + </type> + <!-- Reference to the patient subject of the Composition --> + <subject> + <reference value="urn:uuid:c8225cc8-8026-466f-80f8-fc2832a4b9d5" /> + </subject> + <!-- Reference to the clinical encounter or type of care this documentation is associated with. --> + <encounter> + <reference value="urn:uuid:9a20cb92-354a-4015-82ec-ab0252efc5b9" /> + </encounter> + <!-- The composition editing time, when the composition was last logically changed by the author. --> + <date value="2021-02-12T19:00:00+00:00" /> + <!-- Identifies who is responsible for the information in the composition, +not necessarily who typed it in --> + <author> + <reference value="urn:uuid:369d88a8-9f6b-407f-8560-6ee9d7ccc8bb" /> + </author> + <title value="Accident & Emergency Discharge summary" /> + <!-- Identifies the organisation responsible for ongoing maintenance of and +access to the composition/document information. --> + <custodian> + <reference value="urn:uuid:120633ae-1a20-4e0e-b807-b78fb59679cc" /> + </custodian> + <!-- Allergies and adverse reactions --> + <section> + <title value="Allergies and adverse reaction" /> + <code> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-RecordStandardHeadings" /> + <code value="allergies-and-adverse-reaction" /> + <display value="Allergies and adverse reaction" /> + </coding> + </code> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml"><table width="100%"><tbody><tr><th>Causative agent</th><td>Penicillin -class of antibiotic</td></tr><tr><th>Description of reaction</th><td>Eruption due to drug</td></tr><tr><th>Severity</th><td>Mild</td></tr><tr><th>Certainty</th><td>Certain</td></tr><tr><th>Comment</th><td>No swelling</td></tr></tbody></table></div> + </text> + <!-- Reference to Allergies List as the source of information for this section --> + <entry> + <reference value="urn:uuid:b37c89af-c5da-425f-8e6d-58c043ccf94b" /> + </entry> + </section> + <!-- Attendance details --> + <section> + <title value="Attendance details" /> + <code> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-RecordStandardHeadings" /> + <code value="attendance-details" /> + <display value="Attendance details" /> + </coding> + </code> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml"><table width="100%"><tbody><tr><th>Date and time of contact</th><td>12-Feb-2015 07:00</td></tr></tbody></table></div> + </text> + </section> + <!-- Clinical narrative --> + <section> + <title value="Clinical narrative" /> + <code> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-RecordStandardHeadings" /> + <code value="clinical-narrative" /> + <display value="Clinical narrative" /> + </coding> + </code> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml"><table width="100%"><tbody><tr><th>Clinical narrative</th></tr><tr><td><p>60 year old man complaining of chest pain lasting around 2 hours.</p><p>Examination unremarkable.</p><p>Inferior ischaemic changes on ECG.</p></td></tr></tbody></table><table><tbody><tr><td><pre>Full Blood Count TestValueUnitsReference Range White Cell Count11.1x10*9/L3.5 - 10.0 Red Cell Count5.0x10*12/L4.25 - 5.75 Haemoglobin150g/L13.0 - 17.0 Haematocrit0.230L/L0.400 - 0.500 Mean Cell Volume90fL84 - 98 Mean Cell Hb33.0pg27.5 - 32.0 Mean Cell Hb Con34.0pg31.0 - 35.0 RDW12.0%< 14.5 Platelet Count300x10*9/L150 - 400 Machine Differential TestValueUnitsReference Range Neutrophils7.0x10*9/L1.7 - 7.5 Lymphocytes3.5x10*9/L1.0 - 3.5 Monocytes0.3x10*9/L< 0.6 Eosinophils0.4x10*9/L< 0.4 Basophils0.1x10*9/L< 0.1 LUCs0.2x10*9/L< 0.4</pre></td></tr></tbody></table></div> + </text> + </section> + <!-- Contact for further information --> + <section> + <title value="Contact for further information" /> + <code> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-RecordStandardHeadings" /> + <code value="contact-for-further-information" /> + <display value="Contact for further information" /> + </coding> + </code> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml"><table width="100%"><tbody><tr><th>Contact for further information</th><td>Dr Paul Rastall Tel: 0113 6323200</td></tr></tbody></table></div> + </text> + </section> + <!-- Diagnoses --> + <section> + <title value="Diagnoses" /> + <code> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-RecordStandardHeadings" /> + <code value="diagnoses" /> + <display value="Diagnoses" /> + </coding> + </code> + <text> + <status value="generated" /> + <div xmlns="http://www.w3.org/1999/xhtml"><table width="100%"><tbody><tr><th>Diagnosis name</th><td>Acute ST segment elevation myocardial infarction</td></tr></tbody></table></div> + </text> + <!-- Reference to information in the Condition list resource --> + <entry> + <reference value="urn:uuid:0a46351b-bfe1-4085-956e-15d3b172e36f" /> + </entry> + </section> + <!-- Discharge details --> + <section> + <title value="Discharge details" /> + <code> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-RecordStandardHeadings" /> + <code value="discharge-details" /> + <display value="Discharge details" /> + </coding> + </code> + <text> + <status value="extensions" /> + <div xmlns="http://www.w3.org/1999/xhtml"><table width="100%"><tbody><tr><th>Discharge status</th><td>Streamed from emergency department to urgent care service following initial assessment</td></tr><tr><th>Date/time of discharge</th><td>12-Feb-2015 08:00</td></tr><tr><th>Discharge destination</th><td>NHS other Hospital Provider - Ward for general Patients or the younger physically disabled</td></tr></tbody></table></div> + </text> + <!-- Reference to the Encounter entry as the source of information for this section --> + <entry> + <reference value="urn:uuid:9a20cb92-354a-4015-82ec-ab0252efc5b9" /> + </entry> + </section> + <!-- GP Practice --> + <section> + <title value="GP practice" /> + <code> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-RecordStandardHeadings" /> + <code value="general-practitioner-practice" /> + <display value="General practitioner practice" /> + </coding> + </code> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml"><table width="100%"><tbody><tr><th>GP name</th><td><p>Prefix: Dr</p><p>Given Name: John</p><p>Family Name: Lorenzo</p></td></tr><tr><th>GP practice details</th><td><p>Name: MGP Medical Centre</p><p>Address:</p><p>Address Line: 1 MGP House, Overtown</p><p>City: Leeds</p><p>Post Code: LS21 7PA</p></td></tr></tbody></table></div> + </text> + <!-- Reference to the Organisation entry as the source of information for this section --> + <entry> + <reference value="urn:uuid:e4058bb2-bf1a-47a4-ab10-1471161380a1" /> + </entry> + </section> + <!-- Information and advice given --> + <section> + <title value="Information and advice given" /> + <code> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-RecordStandardHeadings" /> + <code value="information-and-advice-given" /> + <display value="Information and advice given" /> + </coding> + </code> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml"><table width="100%"><tbody><tr><th>Information and advice given</th><td>Patient advised to be admitted to ward for further tests after ECG results showed inferior ischaemic changes.</td></tr></tbody></table></div> + </text> + </section> + <!-- Medications and medical devices --> + <section> + <title value="Medications and medical devices" /> + <code> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-RecordStandardHeadings" /> + <code value="medications-and-medical-devices" /> + <display value="Medications and medical devices" /> + </coding> + </code> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml"><table width="100%"><tbody><tr><th>Medication name</th><td>Ramipril 2.5mg tablets (A A H Pharmaceuticals Ltd)</td></tr><tr><th>Form</th><td>Tablet</td></tr><tr><th>Route</th><td>Oral</td></tr><tr><th>Dose directions description</th><td>One 2.5mg tablet once a day.</td></tr><tr><th>Status</th><td>Continued</td></tr></tbody></table><table width="100%"><tbody><tr><th>Medication name</th><td>Aspirin 75mg tablets (Sigma Pharmaceuticals Plc)</td></tr><tr><th>Form</th><td>Tablet</td></tr><tr><th>Route</th><td>Oral</td></tr><tr><th>Dose directions description</th><td>Take one 75mg tablet once a day.</td></tr><tr><th>Status</th><td>Continued</td></tr></tbody></table><table width="100%"><tbody><tr><th>Medication name</th><td>Simvastatin 40mg tablets (Brown & Burk UK Ltd)</td></tr><tr><th>Form</th><td>Tablet</td></tr><tr><th>Route</th><td>Oral</td></tr><tr><th>Dose directions description</th><td>Take one 40mg tablet once a day.</td></tr><tr><th>Status</th><td>Continued</td></tr></tbody></table><table width="100%"><tbody><tr><th>Medication name</th><td>Bisoprolol 5mg tablets (A A H Pharmaceuticals Ltd)</td></tr><tr><th>Form</th><td>Tablet</td></tr><tr><th>Route</th><td>Oral</td></tr><tr><th>Dose directions description</th><td>Take one 5mg tablet daily.</td></tr><tr><th>Comment/recommendation</th><td>Recommend Uptitrate according to BP and HR</td></tr><tr><th>Status</th><td>Continued</td></tr></tbody></table></div> + </text> + <!-- Reference to medication list --> + <entry> + <reference value="urn:uuid:e3c8b45f-22d4-4ce6-970c-10a959831dca" /> + </entry> + </section> + <!-- Patient demographics --> + <section> + <title value="Patient demographics" /> + <code> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-RecordStandardHeadings" /> + <code value="patient-demographics" /> + <display value="Patient demographics" /> + </coding> + </code> + <text> + <status value="generated" /> + <div xmlns="http://www.w3.org/1999/xhtml"><table width="100%"><tbody><tr><th>Patient name</th><td><p>Prefix: Mr</p><p>Given Name: Richard</p><p>Family Name: Smith</p></td></tr><tr><th>Date of birth</th><td>1 January 1957</td></tr><tr><th>Gender</th><td>Male</td></tr><tr><th>NHS number</th><td>1352465790</td></tr><tr><th>Patient address</th><td><p>Address Line: 21, Grove Street, Overtown</p><p>City: Leeds</p><p>Post Code: LS21 1PF</p></td></tr></tbody></table></div> + </text> + <!-- reference to further information carried in the patient resource --> + <entry> + <reference value="urn:uuid:c8225cc8-8026-466f-80f8-fc2832a4b9d5" /> + </entry> + </section> + <!-- Person completing record --> + <section> + <title value="Person completing record" /> + <code> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-RecordStandardHeadings" /> + <code value="person-completing-record" /> + <display value="Person completing record" /> + </coding> + </code> + <text> + <status value="generated" /> + <div xmlns="http://www.w3.org/1999/xhtml"><table width="100%"><tbody><tr><th>Name</th><td><p>Prefix: Dr</p><p>Given Name: Paul</p><p>Family Name: Rastall</p></td></tr></tbody></table></div> + </text> + <!-- Reference to the practitioner entry as the source of information for this section --> + <entry> + <reference value="urn:uuid:369d88a8-9f6b-407f-8560-6ee9d7ccc8bb" /> + </entry> + </section> + <!-- Plan and requested actions --> + <section> + <title value="Plan and requested actions" /> + <code> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-RecordStandardHeadings" /> + <code value="plan-and-requested-actions" /> + <display value="Plan and requested actions" /> + </coding> + </code> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml"><table width="100%"><tbody><tr><th>Action</th><td><p>Patient has agreed to be admitted to Cramer ward for further tests to investigate causes of his chest pain on 12 February 2015.</p><p>Person responsible: Dr. Paul Rastall (Accident and Emergency Consultant, St. James's University Hospital Accident and Emergency Department)</p><p>Status: Completed</p><p>Outcome: Patient expects to find out the more information about the reasons for his chest pain when tests are carried out after admission.</p></td></tr></tbody></table></div> + </text> + </section> + <!-- Presenting complaints or issues --> + <section> + <title value="Presenting complaints or issues" /> + <code> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-RecordStandardHeadings" /> + <code value="presenting-complaints-or-issues" /> + <display value="Presenting complaints or issues" /> + </coding> + </code> + <text> + <status value="generated" /> + <div xmlns="http://www.w3.org/1999/xhtml"><table width="100%"><tbody><tr><th>Presenting complaints or issue</th><td>Chest pain</td></tr></tbody></table></div> + </text> + <!-- Reference to information in the Condition list resource --> + <entry> + <reference value="urn:uuid:0a46351b-bfe1-4085-956e-15d3b172e36f" /> + </entry> + </section> + <!-- Procedures --> + <section> + <title value="Procedures" /> + <code> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-RecordStandardHeadings" /> + <code value="procedures" /> + <display value="Procedures" /> + </coding> + </code> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml"><table><tbody><tr><th>Procedure name</th><td>Electrocardiographic monitoring</td></tr><tr><th>Comment</th><td>ECGs showed inferior ischaemic changes.</td></tr></tbody></table></div> + </text> + <!-- reference to further information carried in the procedure list resource --> + <entry> + <reference value="urn:uuid:1e04ce96-6e52-4f82-bc26-93c89c5836a1" /> + </entry> + </section> + <!-- Referrer details --> + <section> + <title value="Referrer details" /> + <code> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-RecordStandardHeadings" /> + <code value="referrer-details" /> + <display value="Referrer details" /> + </coding> + </code> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml"><table width="100%"><tbody><tr><th>Referrer details</th><td>Self-referral to accident and emergency department</td></tr></tbody></table></div> + </text> + </section> + <!-- Senior reviewing clinician --> + <section> + <title value="Senior reviewing clinician" /> + <code> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-RecordStandardHeadings" /> + <code value="senior-reviewing-clinician" /> + <display value="Senior reviewing clinician" /> + </coding> + </code> + <text> + <status value="generated" /> + <div xmlns="http://www.w3.org/1999/xhtml"><table width="100%"><tbody><tr><th>Name</th><td><p>Prefix: Mr</p><p>Family Name: Abacus</p></td></tr></tbody></table></div> + </text> + <!-- reference to further information carried in the practitioner resource --> + <entry> + <reference value="urn:uuid:d25fd1c6-2658-4db7-9af0-86c5f95e8ec9" /> + </entry> + </section> +</Composition> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Condition-BleedingFromEar-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Condition-BleedingFromEar-Example.xml new file mode 100644 index 0000000..0de8474 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Condition-BleedingFromEar-Example.xml @@ -0,0 +1,38 @@ +<Condition xmlns="http://hl7.org/fhir"> + <id value="UKCore-Condition-BleedingFromEar-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a patient bleeding from their ear</div> + </text> + <clinicalStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/condition-clinical" /> + <code value="active" /> + <display value="Active" /> + </coding> + </clinicalStatus> + <verificationStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/condition-ver-status" /> + <code value="confirmed" /> + <display value="Confirmed" /> + </coding> + </verificationStatus> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/condition-category" /> + <code value="encounter-diagnosis" /> + <display value="Encounter Diagnosis" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="26322001" /> + <display value="Bleeding from ear" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> +</Condition> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Condition-HipReplacement-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Condition-HipReplacement-Example.xml new file mode 100644 index 0000000..5ed5c85 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Condition-HipReplacement-Example.xml @@ -0,0 +1,38 @@ +<Condition xmlns="http://hl7.org/fhir"> + <id value="UKCore-Condition-HipReplacement-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a patient with an issue with their hip replacement</div> + </text> + <clinicalStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/condition-clinical" /> + <code value="active" /> + <display value="Active" /> + </coding> + </clinicalStatus> + <verificationStatus> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/condition-ver-status" /> + <code value="confirmed" /> + <display value="Confirmed" /> + </coding> + </verificationStatus> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/condition-category" /> + <code value="encounter-diagnosis" /> + <display value="Encounter Diagnosis" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="281445000" /> + <display value="Loosening of total hip replacement" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> +</Condition> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Consent-ForInformationAccess-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Consent-ForInformationAccess-Example.xml new file mode 100644 index 0000000..2ba107d --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Consent-ForInformationAccess-Example.xml @@ -0,0 +1,43 @@ +<Consent xmlns="http://hl7.org/fhir"> + <id value="UKCore-Consent-ForInformationAccess-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate consent given for information access</div> + </text> + <status value="active" /> + <scope> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/consentscope" /> + <code value="patient-privacy" /> + <display value="Privacy Consent" /> + </coding> + </scope> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-ActCode" /> + <code value="INFA" /> + <display value="information access" /> + </coding> + </category> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> + <dateTime value="2019-12-10T11:15:00+00:00" /> + <performer> + <reference value="Practitioner/UKCore-Practitioner-DoctorPaulRastall-Example" /> + </performer> + <organization> + <reference value="Organization/UKCore-Organization-WhiteRoseMedicalCentre-Example" /> + </organization> + <policy> + <authority value="https://www.exampleauthority.nhs.uk" /> + <uri value="https://www.exampleauthority.nhs.uk/policies/ukcore-policy-example-v1.0" /> + </policy> + <provision> + <purpose> + <system value="http://terminology.hl7.org/CodeSystem/v3-ActReason" /> + <code value="GOV" /> + <display value="government" /> + </purpose> + </provision> +</Consent> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Device-BloodPressure-Sphygmomanometer-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Device-BloodPressure-Sphygmomanometer-Example.xml new file mode 100644 index 0000000..3e8e2d2 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Device-BloodPressure-Sphygmomanometer-Example.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Device xmlns="http://hl7.org/fhir"> + <id value="UKCore-Device-BloodPressure-Sphygmomanometer-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate recording a specific blood pressure device</div> + </text> + <identifier> + <system value="https://www.leedsth.nhs.uk/identifier/devices" /> + <value value="DEV1999998132" /> + <assigner> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </assigner> + </identifier> + <status value="active" /> + <type> + <coding> + <system value="http://snomed.info/sct" /> + <code value="466086009" /> + <display value="Automatic-inflation electronic sphygmomanometer, portable, arm/wrist" /> + </coding> + </type> + <owner> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </owner> + <location> + <reference value="Location/UKCore-Location-CardiologySJUH-Example" /> + </location> +</Device> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Device-BloodSpotContainer-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Device-BloodSpotContainer-Example.xml new file mode 100644 index 0000000..5ed32f0 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Device-BloodSpotContainer-Example.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Device xmlns="http://hl7.org/fhir"> + <id value="UKCore-Device-BloodSpotContainer-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a simple device instance, with type being a snomed ct code for a Capillary blood collection tube.</div> + </text> + <identifier> + <system value="https://www.leedsth.nhs.uk/identifier/devices" /> + <value value="SAMP_AP_23198" /> + <assigner> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </assigner> + </identifier> + <status value="active" /> + <type> + <coding> + <system value="http://snomed.info/sct" /> + <code value="467989009" /> + <display value="Capillary blood collection tube, no-additive" /> + </coding> + </type> + <owner> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </owner> +</Device> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Device-ColostomyBag-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Device-ColostomyBag-Example.xml new file mode 100644 index 0000000..7359c2e --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Device-ColostomyBag-Example.xml @@ -0,0 +1,32 @@ +<Device xmlns="http://hl7.org/fhir"> + <id value="UKCore-Device-ColostomyBag-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the use of a colostomy bag as a device in the provision of healthcare</div> + </text> + <identifier> + <system value="https://www.leedsth.nhs.uk/identifier/devices" /> + <value value="DEV1999990567" /> + <assigner> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </assigner> + </identifier> + <status value="active" /> + <type> + <coding> + <system value="http://snomed.info/sct" /> + <code value="7081011000001108" /> + <display value="Ostopore KAV colostomy bag made to order 744045 45mm Opaque (DBT Medical Ltd) 30 device" /> + </coding> + </type> + <owner> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </owner> + <location> + <reference value="Location/UKCore-Location-CardiologySJUH-Example" /> + </location> + <note> + <time value="2021-01-10T16:10:00+00:00" /> + <text value="Pack of 50 currently stored in SJUH Cardiology." /> + </note> +</Device> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Device-SoftwareAsAMedicalDevice-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Device-SoftwareAsAMedicalDevice-Example.xml new file mode 100644 index 0000000..71265e1 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Device-SoftwareAsAMedicalDevice-Example.xml @@ -0,0 +1,28 @@ +<Device xmlns="http://hl7.org/fhir"> + <id value="UKCore-Device-SoftwareAsAMedicalDevice-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate software as a medical device</div> + </text> + <identifier> + <system value="https://www.leedsth.nhs.uk/identifier/devices" /> + <value value="DEV1999990567" /> + <assigner> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </assigner> + </identifier> + <status value="active" /> + <type> + <coding> + <system value="http://snomed.info/sct" /> + <code value="467892009" /> + <display value="Cardiac mapping system application software" /> + </coding> + </type> + <owner> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </owner> + <location> + <reference value="Location/UKCore-Location-CardiologySJUH-Example" /> + </location> +</Device> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-DiagnosticReport-CTChestScan-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-DiagnosticReport-CTChestScan-Example.xml new file mode 100644 index 0000000..ed6ed00 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-DiagnosticReport-CTChestScan-Example.xml @@ -0,0 +1,45 @@ +<DiagnosticReport xmlns="http://hl7.org/fhir"> + <id value="UKCore-DiagnosticReport-CTChestScan-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a diagnostic report for a CT scan</div> + </text> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="727071dc-eb36-4224-8ee8-cc0a02973601" /> + </identifier> + <basedOn> + <reference value="ServiceRequest/UKCore-ServiceRequest-CTChestScan-Example" /> + <display value="CT Chest Scan" /> + </basedOn> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v2-0074" /> + <code value="RAD" /> + <display value="Radiology" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="722124004" /> + <display value="Radiology studies report" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <issued value="2024-04-19T12:52:38+00:00" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + <display value="LEEDS TEACHING HOSPITALS NHS TRUST" /> + </performer> + <resultsInterpreter> + <reference value="Organization/UKCore-Organization-WhiteRoseMedicalCentre-Example" /> + <display value="WHITE ROSE MEDICAL CENTRE" /> + </resultsInterpreter> + <imagingStudy> + <reference value="ImagingStudy/UKCore-ImagingStudy-CTChestScan-Example" /> + </imagingStudy> +</DiagnosticReport> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-DiagnosticReport-DiagnosticStudiesReport-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-DiagnosticReport-DiagnosticStudiesReport-Example.xml new file mode 100644 index 0000000..d179284 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-DiagnosticReport-DiagnosticStudiesReport-Example.xml @@ -0,0 +1,39 @@ +<DiagnosticReport xmlns="http://hl7.org/fhir"> + <id value="UKCore-DiagnosticReport-DiagnosticStudiesReport-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a diagnostic study for a patient, including the status, type of report, patient details, date, and conclusion. It indicates a mild soft tissue injury with slight bruising and no evidence of fracture or dislocation.</div> + </text> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="727071dc-eb01-4224-8ee8-cc0a029787ac" /> + </identifier> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v2-0074" /> + <code value="PHY" /> + <display value="Physician (Hx. Dx, admission note, etc.)" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="721981007" /> + <display value="Diagnostic studies report" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2023-01-13T14:53:23+00:00" /> + <issued value="2023-01-13T15:07:32+00:00" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + <display value="LEEDS TEACHING HOSPITALS NHS TRUST" /> + </performer> + <result> + <reference value="Observation/UKCore-Observation-FingerJointInflamed-Example" /> + </result> + <conclusion value="Mild soft tissue injury with slight bruising, consistent with minor trauma. No clinical evidence of fracture or joint dislocation." /> +</DiagnosticReport> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-DiagnosticReport-ECG-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-DiagnosticReport-ECG-Example.xml new file mode 100644 index 0000000..3e0c455 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-DiagnosticReport-ECG-Example.xml @@ -0,0 +1,44 @@ +<DiagnosticReport xmlns="http://hl7.org/fhir"> + <id value="UKCore-DiagnosticReport-ECG-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a diagnostic report in PDF, for an ECG</div> + </text> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="727071dc-eb01-4224-8ee8-cc0a02978792" /> + </identifier> + <basedOn> + <reference value="ServiceRequest/UKCore-ServiceRequest-ECG-Example" /> + <display value="12 Lead ECG" /> + </basedOn> + <status value="unknown" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v2-0074" /> + <code value="EC" /> + <display value="Electrocardiac (e.g., EKG, EEC, Holter)" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1129261000000102" /> + <display value="Cardiac electrophysiology report" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <issued value="2024-02-23T10:11:11+00:00" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + <display value="LEEDS TEACHING HOSPITALS NHS TRUST" /> + </performer> + <presentedForm> + <contentType value="application/pdf" /> + <language value="en" /> + <data value="VUsgQ29yZSBkZXZlbG9wbWVudCB0ZWFtIGhhdmUgc2tpcHBlZCB0aGUgYmFzZTY0IHN0cmluZyBkYXRhIHZhbHVlIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkgb2YgdGhlIHJlc291cmNl" /> + <!--UK Core development team have skipped the base64 string data value for better readability of the resource--> + </presentedForm> +</DiagnosticReport> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-DiagnosticReport-Lab-DiagnosticStudiesReport-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-DiagnosticReport-Lab-DiagnosticStudiesReport-Example.xml new file mode 100644 index 0000000..51f365f --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-DiagnosticReport-Lab-DiagnosticStudiesReport-Example.xml @@ -0,0 +1,40 @@ +<DiagnosticReport xmlns="http://hl7.org/fhir"> + <id value="UKCore-DiagnosticReport-Lab-DiagnosticStudiesReport-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a lab diagnostic report with a group observation reference</div> + </text> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="727071dc-eb01-4224-8ee8-cc0a029787ac" /> + </identifier> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v2-0074" /> + <code value="LAB" /> + <display value="Laboratory" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="721981007" /> + <display value="Diagnostic studies report" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2023-01-13T14:53:23+00:00" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + <display value="LEEDS TEACHING HOSPITALS NHS TRUST" /> + </performer> + <specimen> + <reference value="Specimen/UKCore-Specimen-BloodSpecimen-Example" /> + </specimen> + <result> + <reference value="Observation/UKCore-Observation-Group-FullBloodCount-Example" /> + </result> +</DiagnosticReport> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-DocumentReference-CarePlanReportPDF-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-DocumentReference-CarePlanReportPDF-Example.xml new file mode 100644 index 0000000..6f02b3d --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-DocumentReference-CarePlanReportPDF-Example.xml @@ -0,0 +1,33 @@ +<DocumentReference xmlns="http://hl7.org/fhir"> + <id value="UKCore-DocumentReference-CarePlanReportPDF-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustratea document reference for a care plan report PDF</div> + </text> + <status value="current" /> + <type> + <coding> + <system value="http://snomed.info/sct" /> + <code value="734163000" /> + <display value="Care plan" /> + </coding> + </type> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <date value="2016-03-08T15:26:00+01:00" /> + <author> + <reference value="Practitioner/UKCore-Practitioner-SandraGose-Example" /> + </author> + <custodian> + <reference value="Organization/UKCore-Organisation-LeedsTeachingHospital-Example" /> + </custodian> + <content> + <attachment> + <contentType value="application/pdf" /> + <url value="https://health.trust.uk/CarePlanReport_44301kfgd.pdf" /> + <title value="Care Plan Report" /> + <creation value="2016-03-08T15:26:00+01:00" /> + </attachment> + </content> +</DocumentReference> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-DocumentReference-ECG-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-DocumentReference-ECG-Example.xml new file mode 100644 index 0000000..7f77a0b --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-DocumentReference-ECG-Example.xml @@ -0,0 +1,47 @@ +<DocumentReference xmlns="http://hl7.org/fhir"> + <id value="UKCore-DocumentReference-ECG-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a DocumentReference to an ECG report</div> + </text> + <status value="current" /> + <docStatus value="preliminary" /> + <type> + <coding> + <system value="http://snomed.info/sct" /> + <code value="29303009" /> + <display value="Electrocardiographic procedure" /> + </coding> + </type> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <date value="2025-01-24T14:30:00Z" /> + <author> + <reference value="Practitioner/UKCore-Practitioner-PharmacistJimmyChuck-Example" /> + </author> + <content> + <attachment> + <contentType value="application/pdf" /> + <url value="DocumentReference/UKCore-DocumentReference-ECG-Example.pdf" /> + <title value="Electrocardiogram (ECG) Report" /> + <creation value="2025-01-24T14:00:00Z" /> + </attachment> + </content> + <context> + <encounter> + <reference value="Encounter/example" /> + </encounter> + <event> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1129261000000102" /> + <display value="Cardiac electrophysiology report" /> + </coding> + </event> + <period> + <start value="2025-01-24T13:00:00Z" /> + <end value="2025-01-24T14:00:00Z" /> + </period> + </context> +</DocumentReference> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Encounter-InpatientEncounter-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Encounter-InpatientEncounter-Example.xml new file mode 100644 index 0000000..59496f5 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Encounter-InpatientEncounter-Example.xml @@ -0,0 +1,85 @@ +<Encounter xmlns="http://hl7.org/fhir"> + <id value="UKCore-Encounter-InpatientEncounter-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate an inpatient encounter</div> + </text> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DischargeMethod"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-DischargeMethodEngland" /> + <code value="1" /> + <display value="Patient discharged on clinical advice or with clinical consent" /> + </coding> + </valueCodeableConcept> + </extension> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="6f40cebe-7b55-461d-9d7f-eadb4c065762" /> + </identifier> + <status value="finished" /> + <class> + <system value="http://terminology.hl7.org/CodeSystem/v3-ActCode" /> + <code value="IMP" /> + <display value="inpatient encounter" /> + </class> + <type> + <coding> + <system value="http://snomed.info/sct" /> + <code value="185212007" /> + <display value="Seen in hospital ward" /> + </coding> + </type> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <participant> + <type> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-ParticipationType" /> + <code value="ATND" /> + <display value="attender" /> + </coding> + </type> + <individual> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </individual> + </participant> + <period> + <start value="2019-12-10T13:00:00+00:00" /> + <end value="2019-12-11T13:00:00+00:00" /> + </period> + <reasonCode> + <coding> + <system value="http://snomed.info/sct" /> + <code value="7922000" /> + <display value="General treatment" /> + </coding> + </reasonCode> + <hospitalization> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-AdmissionMethod"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-AdmissionMethodEngland" /> + <code value="13" /> + <display value="Elective Admission: Planned" /> + </coding> + </valueCodeableConcept> + </extension> + <dischargeDisposition> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-DischargeDestinationEngland" /> + <code value="19" /> + <display value="Usual place of residence unless listed below, for example, a private dwelling whether owner occupied or owned by Local Authority, housing association or other landlord. This includes wardened accommodation but not residential accommodation where health care is provided. It also includes Patients with no fixed abode." /> + </coding> + </dischargeDisposition> + </hospitalization> + <location> + <location> + <reference value="Location/UKCore-Location-CardiologySJUH-Example" /> + </location> + </location> + <serviceProvider> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </serviceProvider> +</Encounter> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-EpisodeOfCare-SmokingCessationTherapy-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-EpisodeOfCare-SmokingCessationTherapy-Example.xml new file mode 100644 index 0000000..846f7d0 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-EpisodeOfCare-SmokingCessationTherapy-Example.xml @@ -0,0 +1,21 @@ +<EpisodeOfCare xmlns="http://hl7.org/fhir"> + <id value="UKCore-EpisodeOfCare-SmokingCessationTherapy-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate an episode of care for smoking cessation therapy</div> + </text> + <status value="finished" /> + <type> + <coding> + <system value="http://snomed.info/sct" /> + <code value="710081004" /> + <display value="Smoking cessation therapy" /> + </coding> + </type> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> + <managingOrganization> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </managingOrganization> +</EpisodeOfCare> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-FamilyMemberHistory-FatherDiabetes-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-FamilyMemberHistory-FatherDiabetes-Example.xml new file mode 100644 index 0000000..e3bfee7 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-FamilyMemberHistory-FatherDiabetes-Example.xml @@ -0,0 +1,44 @@ +<FamilyMemberHistory xmlns="http://hl7.org/fhir"> + <id value="UKCore-FamilyMemberHistory-FatherDiabetes-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a family member with a condition</div> + </text> + <status value="partial" /> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + <display value="Richard Smith" /> + </patient> + <date value="2023-02-07" /> + <relationship> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-RoleCode" /> + <code value="FTH" /> + <display value="father" /> + </coding> + </relationship> + <sex> + <coding> + <system value="http://hl7.org/fhir/administrative-gender" /> + <code value="male" /> + <display value="Male" /> + </coding> + </sex> + <bornDate value="1949-12-13" /> + <condition> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="430678008" /> + <display value="Family history of diabetes mellitus type 1" /> + </coding> + <text value="Diabetes Mellitues Type 1" /> + </code> + <onsetAge> + <value value="64" /> + <unit value="year" /> + <system value="http://unitsofmeasure.org" /> + <code value="a" /> + </onsetAge> + </condition> +</FamilyMemberHistory> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Flag-FoodAllergy-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Flag-FoodAllergy-Example.xml new file mode 100644 index 0000000..c2ae55d --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Flag-FoodAllergy-Example.xml @@ -0,0 +1,43 @@ +<Flag xmlns="http://hl7.org/fhir"> + <id value="UKCore-Flag-FoodAllergy-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a flag regarding a food allergy</div> + </text> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="f4f703a9-ef92-4515-a7b0-99271428c84e" /> + </identifier> + <status value="active" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/flag-category" /> + <code value="diet" /> + <display value="Diet" /> + </coding> + <text value="Diet" /> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="226201008" /> + <display value="Peanut-free diet" /> + </coding> + <text value="Patient has a severe peanut allergy." /> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + <display value="Richard Smith" /> + </subject> + <period> + <start value="2019-12-10T13:00:00+00:00" /> + </period> + <encounter> + <reference value="Encounter/UKCore-Encounter-InpatientEncounter-Example" /> + <display value="Leeds Teaching Hospital Inpatient Encounter" /> + </encounter> + <author> + <reference value="Practitioner/UKCore-Practitioner-DoctorPaulRastall-Example" /> + <display value="Dr Paul Rastall" /> + </author> +</Flag> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-HealthcareService-OrthopaedicService-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-HealthcareService-OrthopaedicService-Example.xml new file mode 100644 index 0000000..e5bbfe6 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-HealthcareService-OrthopaedicService-Example.xml @@ -0,0 +1,114 @@ +<HealthcareService xmlns="http://hl7.org/fhir"> + <id value="UKCore-HealthcareService-OrthopaedicService-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate information about an orthopaedic service within a HealthcareService resource</div> + </text> + <identifier> + <system value="https://fhir.nhs.uk/Id/ods-site-code" /> + <value value="RR813" /> + </identifier> + <active value="true" /> + <providedBy> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + <display value="St James' University Hospital, Leeds" /> + </providedBy> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/service-category" /> + <code value="35" /> + <display value="Hospital" /> + </coding> + <text value="Hospital" /> + </category> + <type> + <coding> + <system value="http://snomed.info/sct" /> + <code value="310161006" /> + <display value="Orthopaedic service" /> + </coding> + </type> + <specialty> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-PracticeSettingCode" /> + <code value="110" /> + <display value="Trauma and Orthopaedics" /> + </coding> + </specialty> + <location> + <reference value="Location/UKCore-Location-HospitalSJUH-Example" /> + </location> + <name value="Orthopaedic Trauma Services" /> + <comment value="Our department is part of the Major Trauma Service at Leeds General Infirmary. The Trauma and orthopaedic team care for a range of trauma related injuries and conditions, with each patient’s treatment managed to their needs. Our clinics run every day; however these are specialist clinics to ensure that patients are seen by the appropriate consultant for specialised care." /> + <extraDetails value="To ensure patients are and treated in the appropriate clinic patients are first referred to our Virtual Fracture Clinic. Patient’s individual cases are discussed alongside one of our consultants to determine the appropriate clinic for the patient to attend in our department. This ensures that patients are not delayed in clinic and do not have to be re-referred to other departments or consultants, which can hold up their treatment and hinder recovery." /> + <telecom> + <system value="phone" /> + <value value="0113 3926991" /> + <use value="work" /> + </telecom> + <telecom> + <system value="email" /> + <value value="patientexperience.leedsth@nhs.net" /> + <use value="work" /> + </telecom> + <serviceProvisionCode> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/service-provision-conditions" /> + <code value="free" /> + <display value="This service is available for no patient cost." /> + </coding> + </serviceProvisionCode> + <program> + <text value="Leeds Orthopaedic Outreach Service" /> + </program> + <characteristic> + <coding> + <display value="Wheelchair access" /> + </coding> + </characteristic> + <referralMethod> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/service-referral-method" /> + <code value="phone" /> + <display value="Phone" /> + </coding> + </referralMethod> + <referralMethod> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/service-referral-method" /> + <code value="elec" /> + <display value="Secure Messaging" /> + </coding> + </referralMethod> + <referralMethod> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/service-referral-method" /> + <code value="semail" /> + <display value="Secure Email" /> + </coding> + </referralMethod> + <appointmentRequired value="false" /> + <availableTime> + <daysOfWeek value="mon" /> + <daysOfWeek value="tue" /> + <daysOfWeek value="thu" /> + <daysOfWeek value="fri" /> + <availableStartTime value="08:30:00" /> + <availableEndTime value="05:30:00" /> + </availableTime> + <notAvailable> + <description value="Christmas/Boxing Day" /> + <during> + <start value="2022-12-24T17:31:00+00:00" /> + <end value="2022-12-26T17:30:00+00:00" /> + </during> + </notAvailable> + <notAvailable> + <description value="New Years Day" /> + <during> + <start value="2022-12-31T17:31:00+00:00" /> + <end value="2023-01-01T17:30:00+00:00" /> + </during> + </notAvailable> + <availabilityExceptions value="Reduced capacity is available during the Christmas period" /> +</HealthcareService> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-ImagingStudy-CTChestScan-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-ImagingStudy-CTChestScan-Example.xml new file mode 100644 index 0000000..161677c --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-ImagingStudy-CTChestScan-Example.xml @@ -0,0 +1,37 @@ +<ImagingStudy xmlns="http://hl7.org/fhir"> + <id value="UKCore-ImagingStudy-CTChestScan-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the images produced by a CT chest scan</div> + </text> + <status value="available" /> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <started value="2023-01-24T09:01:20+00:00" /> + <numberOfSeries value="1" /> + <numberOfInstances value="1" /> + <series> + <uid value="2.16.124.113543.6003.2588828330.45298.17418.2723805630" /> + <number value="3" /> + <modality> + <system value="http://dicom.nema.org/resources/ontology/DCM" /> + <code value="CT" /> + </modality> + <description value="CT Surview 180" /> + <numberOfInstances value="1" /> + <bodySite> + <system value="http://snomed.info/sct" /> + <code value="67734004" /> + <display value="Thoracic segment of trunk" /> + </bodySite> + <instance> + <uid value="2.16.124.113543.6003.189642796.63084.16748.2599092903" /> + <sopClass> + <system value="urn:ietf:rfc:3986" /> + <code value="urn:oid:1.2.840.10008.5.1.4.1.1.2" /> + </sopClass> + <number value="1" /> + </instance> + </series> +</ImagingStudy> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-InfluenzaVaccine-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-InfluenzaVaccine-Example.xml new file mode 100644 index 0000000..20788ae --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-InfluenzaVaccine-Example.xml @@ -0,0 +1,22 @@ +<Immunization xmlns="http://hl7.org/fhir"> + <id value="UKCore-Immunization-InfluenzaVaccine-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a vaccination for flu</div> + </text> + <status value="completed" /> + <vaccineCode> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="11278411000001109" /> + <display value="Influenza vaccine (split virion, inactivated) suspension for injection 0.5ml pre-filled syringes (Pfizer Ltd)" /> + </coding> + </vaccineCode> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> + <occurrenceDateTime value="2013-01-10" /> + <location> + <reference value="Location/UKCore-Location-GeneralPracticeNurseClinic-Example" /> + </location> +</Immunization> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-AstraZenecaVaccine-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-AstraZenecaVaccine-Example.xml new file mode 100644 index 0000000..95f90f5 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-AstraZenecaVaccine-Example.xml @@ -0,0 +1,17 @@ +<Immunization xmlns="http://hl7.org/fhir"> + <id value="UKCore-Immunization-Sn-AstraZenecaVaccine-Example" /> + <status value="completed" /> + <!-- **************snippet start************** --> + <vaccineCode> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="39114911000001105" /> + <display value="COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)" /> + </coding> + </vaccineCode> + <!-- **************snippet end************** --> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> + <occurrenceDateTime value="2021-07-20" /> +</Immunization> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-IntramuscularRoute-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-IntramuscularRoute-Example.xml new file mode 100644 index 0000000..2ff29f4 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-IntramuscularRoute-Example.xml @@ -0,0 +1,24 @@ +<Immunization xmlns="http://hl7.org/fhir"> + <id value="UKCore-Immunization-Sn-IntramuscularRoute-Example" /> + <status value="completed" /> + <vaccineCode> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="39114911000001105" /> + <display value="COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)" /> + </coding> + </vaccineCode> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> + <occurrenceDateTime value="2021-07-20" /> + <!-- **************snippet start************** --> + <route> + <coding> + <system value="http://snomed.info/sct" /> + <code value="78421000" /> + <display value="Intramuscular route (qualifier value)" /> + </coding> + </route> + <!-- **************snippet end************** --> +</Immunization> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-LeftUpperArmStructure-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-LeftUpperArmStructure-Example.xml new file mode 100644 index 0000000..32eeee1 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-LeftUpperArmStructure-Example.xml @@ -0,0 +1,24 @@ +<Immunization xmlns="http://hl7.org/fhir"> + <id value="UKCore-Immunization-Sn-LeftUpperArmStructure-Example" /> + <status value="completed" /> + <vaccineCode> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="39114911000001105" /> + <display value="COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)" /> + </coding> + </vaccineCode> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> + <occurrenceDateTime value="2021-07-20" /> + <!-- **************snippet start************** --> + <site> + <coding> + <system value="http://snomed.info/sct" /> + <code value="368208006" /> + <display value="Left upper arm structure (body structure)" /> + </coding> + </site> + <!-- **************snippet end************** --> +</Immunization> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-LotNumber-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-LotNumber-Example.xml new file mode 100644 index 0000000..0325535 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-LotNumber-Example.xml @@ -0,0 +1,18 @@ +<Immunization xmlns="http://hl7.org/fhir"> + <id value="UKCore-Immunization-Sn-LotNumber-Example" /> + <status value="completed" /> + <vaccineCode> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="39114911000001105" /> + <display value="COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)" /> + </coding> + </vaccineCode> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> + <occurrenceDateTime value="2021-07-20" /> + <!-- **************snippet start************** --> + <lotNumber value="R04X" /> + <!-- **************snippet end************** --> +</Immunization> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-Manufacturer-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-Manufacturer-Example.xml new file mode 100644 index 0000000..4df0198 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-Manufacturer-Example.xml @@ -0,0 +1,20 @@ +<Immunization xmlns="http://hl7.org/fhir"> + <id value="UKCore-Immunization-Sn-Manufacturer-Example" /> + <status value="completed" /> + <vaccineCode> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="39114911000001105" /> + <display value="COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)" /> + </coding> + </vaccineCode> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> + <occurrenceDateTime value="2021-07-20" /> + <!-- **************snippet start************** --> + <manufacturer> + <display value="DREAMLAND Pharmaceuticals Ltd" /> + </manufacturer> + <!-- **************snippet end************** --> +</Immunization> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-PatientConformVaccination-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-PatientConformVaccination-Example.xml new file mode 100644 index 0000000..563cd61 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-PatientConformVaccination-Example.xml @@ -0,0 +1,22 @@ +<Immunization xmlns="http://hl7.org/fhir"> + <id value="UKCore-Immunization-Sn-PatientConformVaccination-Example" /> + <status value="completed" /> + <vaccineCode> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="39114911000001105" /> + <display value="COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)" /> + </coding> + </vaccineCode> + <!-- **************snippet start************** --> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + <type value="Patient" /> + <identifier> + <system value="https://fhir.nhs.uk/Id/nhs-number" /> + <value value="9912003888" /> + </identifier> + </patient> + <!-- **************snippet end************** --> + <occurrenceDateTime value="2021-07-20" /> +</Immunization> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-Performer-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-Performer-Example.xml new file mode 100644 index 0000000..fbc324b --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-Performer-Example.xml @@ -0,0 +1,37 @@ +<Immunization xmlns="http://hl7.org/fhir"> + <id value="UKCore-Immunization-Sn-Performer-Example" /> + <status value="completed" /> + <vaccineCode> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="39114911000001105" /> + <display value="COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)" /> + </coding> + </vaccineCode> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> + <occurrenceDateTime value="2021-07-20" /> + <!-- **************snippet start************** --> + <performer> + <actor> + <type value="Practitioner" /> + <identifier> + <system value="https://fhir.hl7.org.uk/Id/nmc-number" /> + <value value="5566789" /> + </identifier> + <display value="HOLDING, Rafferty" /> + </actor> + </performer> + <performer> + <actor> + <type value="Organization" /> + <identifier> + <system value="https://fhir.nhs.uk/Id/ods-organization-code" /> + <value value="C4B2A" /> + </identifier> + <display value="ELLAND ROAD STADIUM - COVID VACCINATION CENTRE" /> + </actor> + </performer> + <!-- **************snippet end************** --> +</Immunization> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-ProtocolApplied-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-ProtocolApplied-Example.xml new file mode 100644 index 0000000..b668578 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-ProtocolApplied-Example.xml @@ -0,0 +1,27 @@ +<Immunization xmlns="http://hl7.org/fhir"> + <id value="UKCore-Immunization-Sn-ProtocolApplied-Example" /> + <status value="completed" /> + <vaccineCode> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="39114911000001105" /> + <display value="COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)" /> + </coding> + </vaccineCode> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> + <occurrenceDateTime value="2021-07-20" /> + <!-- **************snippet start************** --> + <protocolApplied> + <targetDisease> + <coding> + <system value="http://snomed.info/sct" /> + <code value="840539006" /> + <display value="COVID-19" /> + </coding> + </targetDisease> + <doseNumberPositiveInt value="1" /> + </protocolApplied> + <!-- **************snippet end************** --> +</Immunization> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-UnitsOfMeasure-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-UnitsOfMeasure-Example.xml new file mode 100644 index 0000000..91f437b --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Immunization-Sn-UnitsOfMeasure-Example.xml @@ -0,0 +1,23 @@ +<Immunization xmlns="http://hl7.org/fhir"> + <id value="UKCore-Immunization-Sn-UnitsOfMeasure-Example" /> + <status value="completed" /> + <vaccineCode> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="39114911000001105" /> + <display value="COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)" /> + </coding> + </vaccineCode> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> + <occurrenceDateTime value="2021-07-20" /> + <!-- **************snippet start************** --> + <doseQuantity> + <value value="0.5" /> + <unit value="milliliter" /> + <system value="http://unitsofmeasure.org" /> + <code value="ml" /> + </doseQuantity> + <!-- **************snippet end************** --> +</Immunization> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-List-EmptyList-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-List-EmptyList-Example.xml new file mode 100644 index 0000000..ddf1efd --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-List-EmptyList-Example.xml @@ -0,0 +1,27 @@ +<List xmlns="http://hl7.org/fhir" > + <id value="UKCore-List-EmptyList-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate an empty list</div> + </text> + <status value="current" /> + <mode value="working" /> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="826501000000100" /> + <display value="Miscellaneous record" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <date value="2019-12-10T13:00:00+00:00" /> + <emptyReason> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-ListEmptyReasonCode" /> + <code value="no-content-recorded" /> + <display value="No Content Recorded" /> + </coding> + </emptyReason> +</List> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-List-Sn-NoAllergyData-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-List-Sn-NoAllergyData-Example.xml new file mode 100644 index 0000000..63f1a2d --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-List-Sn-NoAllergyData-Example.xml @@ -0,0 +1,27 @@ +<List xmlns="http://hl7.org/fhir"> + <id value="UKCore-List-Sn-NoAllergyData-Example" /> + <status value="current" /> + <mode value="snapshot" /> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="886921000000105" /> + <display value="Allergies and adverse reactions" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + <display value="Richard Smith" /> + </subject> + <date value="2021-07-21T12:00:00+00:00" /> + <note> + <text value="Information not available" /> + </note> + <emptyReason> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-ListEmptyReasonCode" /> + <code value="no-content-recorded" /> + <display value="No Content Recorded" /> + </coding> + </emptyReason> +</List> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Location-CardiologySJUH-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Location-CardiologySJUH-Example.xml new file mode 100644 index 0000000..f76bc4b --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Location-CardiologySJUH-Example.xml @@ -0,0 +1,34 @@ +<Location xmlns="http://hl7.org/fhir"> + <id value="UKCore-Location-CardiologySJUH-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a clinical unit within a hospital</div> + </text> + <identifier> + <system value="https://fhir.nhs.uk/Id/ods-site-code" /> + <value value="RR8D7" /> + </identifier> + <name value="CARDIOLOGY SJUH" /> + <type> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-RoleCode" /> + <code value="CARD" /> + <display value="Ambulatory Health Care Facilities; Clinic/Center; Rehabilitation: Cardiac Facilities" /> + </coding> + </type> + <telecom> + <system value="phone" /> + <value value="0113 243 3149" /> + </telecom> + <address> + <line value="CARDIOLOGY SJUH" /> + <line value="ST. JAMES'S UNIVERSITY HOSPITAL" /> + <line value="BECKETT STREET" /> + <city value="LEEDS" /> + <postalCode value="LS9 7TF" /> + <country value="ENGLAND" /> + </address> + <managingOrganization> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </managingOrganization> +</Location> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Location-GeneralPracticeNurseClinic-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Location-GeneralPracticeNurseClinic-Example.xml new file mode 100644 index 0000000..e634db9 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Location-GeneralPracticeNurseClinic-Example.xml @@ -0,0 +1,26 @@ +<Location xmlns="http://hl7.org/fhir"> + <id value="UKCore-Location-GeneralPracticeNurseClinic-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a GP clinic location</div> + </text> + <identifier> + <system value="https://fhir.nhs.uk/Id/ods-site-code" /> + <value value="GP8D7" /> + </identifier> + <name value="WhiteRoseNurseClinic" /> + <type> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-RoleCode" /> + <code value="GIM" /> + <display value="General internal medicine clinic" /> + </coding> + </type> + <telecom> + <system value="phone" /> + <value value="0113 243 3166" /> + </telecom> + <managingOrganization> + <reference value="Organization/UKCore-Organization-WhiteRoseMedicalCentre-Example" /> + </managingOrganization> +</Location> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Location-HospitalSJUH-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Location-HospitalSJUH-Example.xml new file mode 100644 index 0000000..9be4d3a --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Location-HospitalSJUH-Example.xml @@ -0,0 +1,33 @@ +<Location xmlns="http://hl7.org/fhir"> + <id value="UKCore-Location-HospitalSJUH-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a hospital location</div> + </text> + <identifier> + <system value="https://fhir.nhs.uk/Id/ods-site-code" /> + <value value="RR813" /> + </identifier> + <name value="ST JAMES'S UNIVERSITY HOSPITAL" /> + <type> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-RoleCode" /> + <code value="HOSP" /> + <display value="Hospital" /> + </coding> + </type> + <telecom> + <system value="phone" /> + <value value="0113 243 3144" /> + </telecom> + <address> + <line value="ST. JAMES'S UNIVERSITY HOSPITAL" /> + <line value="BECKETT STREET" /> + <city value="LEEDS" /> + <postalCode value="LS9 7TF" /> + <country value="ENGLAND" /> + </address> + <managingOrganization> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </managingOrganization> +</Location> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Location-NeoNatalLGI-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Location-NeoNatalLGI-Example.xml new file mode 100644 index 0000000..4b7ac7f --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Location-NeoNatalLGI-Example.xml @@ -0,0 +1,34 @@ +<Location xmlns="http://hl7.org/fhir"> + <id value="UKCore-Location-NeoNatalLGI-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">This is a FHIR Location resource describing the Neonatal Medicine Unit at Leeds General Infirmary. It includes its ODS site code, phone number, address, and specifies that it's a pediatric neonatal intensive care unit managed by Leeds Teaching Hospitals NHS Trust.</div> + </text> + <identifier> + <system value="https://fhir.nhs.uk/Id/ods-site-code" /> + <value value="RR8G5" /> + </identifier> + <name value="NEONATAL MEDICINE LGI" /> + <type> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-RoleCode" /> + <code value="PEDNICU" /> + <display value="Pediatric neonatal intensive care unit" /> + </coding> + </type> + <telecom> + <system value="phone" /> + <value value="0113 392 7443" /> + </telecom> + <address> + <line value="NEONATAL MEDICINE LGI" /> + <line value="LEEDS GENERAL INFIRMARY" /> + <line value="GREAT GEORGE STREET" /> + <city value="LEEDS" /> + <postalCode value="LS1 3EX" /> + <country value="ENGLAND" /> + </address> + <managingOrganization> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </managingOrganization> +</Location> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Medication-COVID-Vaccine-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Medication-COVID-Vaccine-Example.xml new file mode 100644 index 0000000..0c0a5dd --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Medication-COVID-Vaccine-Example.xml @@ -0,0 +1,18 @@ +<Medication xmlns="http://hl7.org/fhir"> + <id value="UKCore-Medication-COVID-Vaccine-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the batch element via a COVID-19 vaccine</div> + </text> + <code> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="39115611000001103" /> + <display value="Comirnaty COVID-19 mRNA Vaccine 30micrograms/0.3ml dose concentrate for dispersion for injection multidose vials (Pfizer Ltd)" /> + </coding> + </code> + <batch> + <lotNumber value="FK0112" /> + <expirationDate value="2021-10-26" /> + </batch> +</Medication> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Medication-Sn-Amoxicillin-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Medication-Sn-Amoxicillin-Example.xml new file mode 100644 index 0000000..87434db --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Medication-Sn-Amoxicillin-Example.xml @@ -0,0 +1,13 @@ +<Medication xmlns="http://hl7.org/fhir"> + <id value="UKCore-Medication-Sn-Amoxicillin-Example" /> + <!-- **************Snippet start************** --> + <code> + <coding> + <system value="https://dmd.nhs.uk/" /> + <code value="323509004" /> + <display value="Amoxicillin 250mg capsules" /> + <userSelected value="true" /> + </coding> + </code> + <!-- **************Snippet end************** --> +</Medication> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Medication-Sn-TransferDegradedMedEntry-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Medication-Sn-TransferDegradedMedEntry-Example.xml new file mode 100644 index 0000000..cafb013 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Medication-Sn-TransferDegradedMedEntry-Example.xml @@ -0,0 +1,13 @@ +<Medication xmlns="http://hl7.org/fhir"> + <id value="UKCore-Medication-Sn-TransferDegradedMedEntry-Example" /> + <!-- **************Snippet start************** --> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="196421000000109" /> + <display value="Transfer-degraded medication entry" /> + </coding> + <text value="Aspirin 75mg dispersible tablet" /> + </code> + <!-- **************Snippet end************** --> +</Medication> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Medication-TimololVTM-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Medication-TimololVTM-Example.xml new file mode 100644 index 0000000..d3be2f9 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Medication-TimololVTM-Example.xml @@ -0,0 +1,21 @@ +<Medication xmlns="http://hl7.org/fhir"> + <id value="UKCore-Medication-TimololVTM-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the form element with VTM via Timolol medicine</div> + </text> + <code> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="777773007" /> + <display value="Timolol" /> + </coding> + </code> + <form> + <coding> + <system value="http://snomed.info/sct" /> + <code value="17960711000001109" /> + <display value="Ear/eye drops solution" /> + </coding> + </form> +</Medication> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Medication-TimoptolEyeDrops-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Medication-TimoptolEyeDrops-Example.xml new file mode 100644 index 0000000..31f263a --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Medication-TimoptolEyeDrops-Example.xml @@ -0,0 +1,14 @@ +<Medication xmlns="http://hl7.org/fhir"> + <id value="UKCore-Medication-TimoptolEyeDrops-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate Timoptol eye drops medication</div> + </text> + <code> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="18616211000001106" /> + <display value="Timoptol 0.5% eye drops (DE Pharmaceuticals)" /> + </coding> + </code> +</Medication> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-MedicationAdministration-CiprofloxacinIV-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationAdministration-CiprofloxacinIV-Example.xml new file mode 100644 index 0000000..7d4c030 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationAdministration-CiprofloxacinIV-Example.xml @@ -0,0 +1,62 @@ +<MedicationAdministration xmlns="http://hl7.org/fhir"> + <id value="UKCore-MedicationAdministration-CiprofloxacinIV-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the administration of Ciprofloxacin via IV when prescribing multiple routes</div> + </text> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="504cdccf-203d-4023-af47-5351e283aee7" /> + </identifier> + <status value="completed" /> + <medicationCodeableConcept> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="35831211000001109" /> + <display value="Ciprofloxacin 400mg/200ml infusion bags (Hikma Pharmaceuticals International Ltd)" /> + </coding> + </medicationCodeableConcept> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <supportingInformation> + <reference value="RequestGroup/UKCore-RequestGroup-Ciprofloxacin-Example" /> + </supportingInformation> + <supportingInformation> + <reference value="MedicationDispense/UKCore-MedicationDispense-CiprofloxacinIV-Example" /> + </supportingInformation> + <effectiveDateTime value="2023-06-30T13:00:00+00:00" /> + <request> + <reference value="MedicationRequest/UKCore-MedicationRequest-CiprofloxacinIV-Example" /> + </request> + <dosage> + <site> + <coding> + <system value="http://snomed.info/sct" /> + <code value="49852007" /> + <display value="Structure of median cubital vein" /> + </coding> + <text value="left arm" /> + </site> + <route> + <coding> + <system value="http://snomed.info/sct" /> + <code value="47625008" /> + <display value="Intravenous" /> + </coding> + </route> + <method> + <coding> + <system value="http://snomed.info/sct" /> + <code value="13283701000001109" /> + <display value="Infusion" /> + </coding> + </method> + <dose> + <value value="400" /> + <unit value="milligram" /> + <system value="http://unitsofmeasure.org" /> + <code value="mg" /> + </dose> + </dosage> +</MedicationAdministration> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-MedicationAdministration-Sn-ZeroDosage-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationAdministration-Sn-ZeroDosage-Example.xml new file mode 100644 index 0000000..35b1c09 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationAdministration-Sn-ZeroDosage-Example.xml @@ -0,0 +1,20 @@ +<MedicationAdministration xmlns="http://hl7.org/fhir"> + <id value="UKCore-MedicationAdministration-Sn-ZeroDosage-Example" /> + <status value="on-hold" /> + <medicationReference> + <reference value="Medication/UKCore-Medication-TimoptolEyeDrops-Example" /> + </medicationReference> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2021-03-25T13:00:00+00:00" /> + <dosage> + <text value="No administration required." /> + <rateQuantity> + <value value="0" /> + <unit value="milliliter per hour" /> + <system value="http://unitsofmeasure.org" /> + <code value="mL/h" /> + </rateQuantity> + </dosage> +</MedicationAdministration> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-MedicationAdministration-TimoptolEyeDrops-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationAdministration-TimoptolEyeDrops-Example.xml new file mode 100644 index 0000000..39e9786 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationAdministration-TimoptolEyeDrops-Example.xml @@ -0,0 +1,52 @@ +<MedicationAdministration xmlns="http://hl7.org/fhir"> + <id value="UKCore-MedicationAdministration-TimoptolEyeDrops-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate an administration of Timoptol eye drops</div> + </text> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="e8779393-9b7c-4654-a8df-0ba4cc9b28ce" /> + </identifier> + <status value="completed" /> + <medicationReference> + <reference value="Medication/UKCore-Medication-TimoptolEyeDrops-Example" /> + </medicationReference> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2021-03-25T13:00:00+00:00" /> + <request> + <reference value="MedicationRequest/UKCore-MedicationRequest-EyeDrops-Example" /> + </request> + <dosage> + <text value="1 drop in each affected eye twice daily, approximately 12 hours apart." /> + <site> + <coding> + <system value="http://snomed.info/sct" /> + <code value="362508001" /> + <display value="Both eyes, entire" /> + </coding> + </site> + <route> + <coding> + <system value="http://snomed.info/sct" /> + <code value="58831000052108" /> + <display value="Subretinal route" /> + </coding> + </route> + <method> + <coding> + <system value="http://snomed.info/sct" /> + <code value="421984009" /> + <display value="Until finished" /> + </coding> + </method> + <dose> + <value value="30" /> + <unit value="milliliter" /> + <system value="http://unitsofmeasure.org" /> + <code value="mL" /> + </dose> + </dosage> +</MedicationAdministration> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-MedicationDispense-Amoxicillin-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationDispense-Amoxicillin-Example.xml new file mode 100644 index 0000000..139c2e6 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationDispense-Amoxicillin-Example.xml @@ -0,0 +1,76 @@ +<MedicationDispense xmlns="http://hl7.org/fhir"> + <id value="UKCore-MedicationDispense-Amoxicillin-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the despensing of Amoxicillin when prescribing multiple routes</div> + </text> + <status value="completed" /> + <category> + <coding> + <system value="http://terminology.hl7.org/fhir/CodeSystem/medicationdispense-category" /> + <code value="inpatient" /> + <display value="Inpatient" /> + </coding> + </category> + <medicationCodeableConcept> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="22608811000001102" /> + <display value="Amoxicillin 500mg capsules (DE Pharmaceuticals)" /> + </coding> + </medicationCodeableConcept> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <supportingInformation> + <reference value="RequestGroup/UKCore-RequestGroup-MultipleAnitibiotics-Example" /> + </supportingInformation> + <performer> + <actor> + <reference value="Practitioner/UKCore-Practitioner-PharmacistJimmyChuck-Example" /> + </actor> + </performer> + <authorizingPrescription> + <reference value="UKCore-MedicationRequest-Amoxicillin-Example" /> + </authorizingPrescription> + <quantity> + <value value="21" /> + <unit value="capsule" /> + <system value="http://snomed.info/sct" /> + <code value="732937005" /> + </quantity> + <daysSupply> + <value value="7" /> + <unit value="Day" /> + <system value="http://unitsofmeasure.org" /> + <code value="d" /> + </daysSupply> + <whenPrepared value="2023-06-15T18:00:00+00:00" /> + <receiver> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </receiver> + <dosageInstruction> + <text value="Take 1 capsule, 3 times a day." /> + <additionalInstruction> + <coding> + <system value="http://snomed.info/sct" /> + <code value="890458001" /> + <display value="Penicillin-containing product" /> + </coding> + </additionalInstruction> + <timing> + <repeat> + <frequency value="3" /> + <period value="1" /> + <periodUnit value="d" /> + </repeat> + </timing> + <route> + <coding> + <system value="http://snomed.info/sct" /> + <code value="26643006" /> + <display value="Oral" /> + </coding> + </route> + </dosageInstruction> +</MedicationDispense> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-MedicationDispense-CiprofloxacinIV-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationDispense-CiprofloxacinIV-Example.xml new file mode 100644 index 0000000..114f9c2 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationDispense-CiprofloxacinIV-Example.xml @@ -0,0 +1,76 @@ +<MedicationDispense xmlns="http://hl7.org/fhir"> + <id value="UKCore-MedicationDispense-CiprofloxacinIV-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the despensing of Ciprofloxacin via IV when prescribing multiple routes</div> + </text> + <status value="completed" /> + <category> + <coding> + <system value="http://terminology.hl7.org/fhir/CodeSystem/medicationdispense-category" /> + <code value="inpatient" /> + <display value="Inpatient" /> + </coding> + </category> + <medicationCodeableConcept> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="35831211000001109" /> + <display value="Ciprofloxacin 400mg/200ml infusion bags (Hikma Pharmaceuticals International Ltd)" /> + </coding> + </medicationCodeableConcept> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <supportingInformation> + <reference value="RequestGroup/UKCore-RequestGroup-Ciprofloxacin-Example" /> + </supportingInformation> + <performer> + <actor> + <reference value="Practitioner/UKCore-Practitioner-PharmacistJimmyChuck-Example" /> + </actor> + </performer> + <authorizingPrescription> + <reference value="UKCore-MedicationRequest-CiprofloxacinIV-Example" /> + </authorizingPrescription> + <quantity> + <value value="10" /> + <unit value="Bag" /> + <system value="http://snomed.info/sct" /> + <code value="732982009" /> + </quantity> + <daysSupply> + <value value="5" /> + <unit value="Day" /> + <system value="http://unitsofmeasure.org" /> + <code value="d" /> + </daysSupply> + <whenPrepared value="2023-06-15T18:00:00+00:00" /> + <receiver> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </receiver> + <dosageInstruction> + <text value="1 bag, twice daily" /> + <timing> + <repeat> + <frequency value="2" /> + <period value="1" /> + <periodUnit value="d" /> + </repeat> + </timing> + <route> + <coding> + <system value="http://snomed.info/sct" /> + <code value="47625008" /> + <display value="Intravenous" /> + </coding> + </route> + <method> + <coding> + <system value="http://snomed.info/sct" /> + <code value="13283701000001109" /> + <display value="Infusion" /> + </coding> + </method> + </dosageInstruction> +</MedicationDispense> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-MedicationDispense-CiprofloxacinOral-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationDispense-CiprofloxacinOral-Example.xml new file mode 100644 index 0000000..beb4a63 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationDispense-CiprofloxacinOral-Example.xml @@ -0,0 +1,69 @@ +<MedicationDispense xmlns="http://hl7.org/fhir"> + <id value="UKCore-MedicationDispense-CiprofloxacinOral-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the despensing of Ciprofloxacin orally when prescribing multiple routes</div> + </text> +<status value="completed" /> + <category> + <coding> + <system value="http://terminology.hl7.org/fhir/CodeSystem/medicationdispense-category" /> + <code value="inpatient" /> + <display value="Inpatient" /> + </coding> + </category> + <medicationCodeableConcept> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="18460411000001105" /> + <display value="Ciprofloxacin 500mg tablets (Accord-UK Ltd)" /> + </coding> + </medicationCodeableConcept> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <supportingInformation> + <reference value="RequestGroup/UKCore-RequestGroup-Ciprofloxacin-Example" /> + </supportingInformation> + <performer> + <actor> + <reference value="Practitioner/UKCore-Practitioner-PharmacistJimmyChuck-Example" /> + </actor> + </performer> + <authorizingPrescription> + <reference value="UKCore-MedicationRequest-CiprofloxacinOral-Example" /> + </authorizingPrescription> + <quantity> + <value value="20" /> + <unit value="capsule" /> + <system value="http://snomed.info/sct" /> + <code value="732937005" /> + </quantity> + <daysSupply> + <value value="5" /> + <unit value="Day" /> + <system value="http://unitsofmeasure.org" /> + <code value="d" /> + </daysSupply> + <whenPrepared value="2023-06-15T18:00:00+00:00" /> + <receiver> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </receiver> + <dosageInstruction> + <text value="Take 1 capsule, twice daily." /> + <timing> + <repeat> + <frequency value="2" /> + <period value="1" /> + <periodUnit value="d" /> + </repeat> + </timing> + <route> + <coding> + <system value="http://snomed.info/sct" /> + <code value="26643006" /> + <display value="Oral" /> + </coding> + </route> + </dosageInstruction> +</MedicationDispense> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-MedicationDispense-EyeDrops-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationDispense-EyeDrops-Example.xml new file mode 100644 index 0000000..049e738 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationDispense-EyeDrops-Example.xml @@ -0,0 +1,73 @@ +<MedicationDispense xmlns="http://hl7.org/fhir"> + <id value="UKCore-MedicationDispense-EyeDrops-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a medication dispense of eye drops</div> + </text> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="5c92c1dc-06a9-4729-b8c9-222cf769f8dc" /> + </identifier> + <status value="in-progress" /> + <medicationReference> + <reference value="Medication/UKCore-Medication-TimoptolEyeDrops-Example" /> + </medicationReference> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <performer> + <actor> + <reference value="Practitioner/UKCore-Practitioner-PharmacistJimmyChuck-Example" /> + </actor> + </performer> + <authorizingPrescription> + <reference value="MedicationRequest/UKCore-MedicationRequest-EyeDrops-Example" /> + </authorizingPrescription> + <quantity> + <value value="30" /> + <unit value="milliliter" /> + <system value="http://unitsofmeasure.org" /> + <code value="mL" /> + </quantity> + <daysSupply> + <value value="30" /> + <unit value="Day" /> + <system value="http://unitsofmeasure.org" /> + <code value="d" /> + </daysSupply> + <whenPrepared value="2020-01-15T15:00:00+00:00" /> + <receiver> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </receiver> + <dosageInstruction> + <text value="1 drop in each affected eye twice daily, approximately 12 hours apart." /> + <timing> + <repeat> + <frequency value="1" /> + <period value="12" /> + <periodUnit value="h" /> + </repeat> + </timing> + <site> + <coding> + <system value="http://snomed.info/sct" /> + <code value="362508001" /> + <display value="Both eyes, entire" /> + </coding> + </site> + <route> + <coding> + <system value="http://snomed.info/sct" /> + <code value="58831000052108" /> + <display value="Subretinal route" /> + </coding> + </route> + <method> + <coding> + <system value="http://snomed.info/sct" /> + <code value="421984009" /> + <display value="Until finished" /> + </coding> + </method> + </dosageInstruction> +</MedicationDispense> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-MedicationDispense-ParacetamolOral-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationDispense-ParacetamolOral-Example.xml new file mode 100644 index 0000000..f9e7daa --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationDispense-ParacetamolOral-Example.xml @@ -0,0 +1,71 @@ +<MedicationDispense xmlns="http://hl7.org/fhir"> + <id value="UKCore-MedicationDispense-ParacetamolOral-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the despensing of Paracetamol orally when prescribing multiple routes</div> + </text> + <status value="completed" /> + <category> + <coding> + <system value="http://terminology.hl7.org/fhir/CodeSystem/medicationdispense-category" /> + <code value="inpatient" /> + <display value="Inpatient" /> + </coding> + </category> + <medicationCodeableConcept> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="558911000001105" /> + <display value="Paracetamol 500mg capsules (A A H Pharmaceuticals Ltd)" /> + </coding> + </medicationCodeableConcept> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <supportingInformation> + <reference value="RequestGroup/UKCore-RequestGroup-Paracetamol-Example" /> + </supportingInformation> + <performer> + <actor> + <reference value="Practitioner/UKCore-Practitioner-PharmacistJimmyChuck-Example" /> + </actor> + </performer> + <authorizingPrescription> + <reference value="MedicationRequest/UKCore-MedicationRequest-ParacetamolOral-Example" /> + </authorizingPrescription> + <quantity> + <value value="16" /> + <unit value="capsule" /> + <system value="http://snomed.info/sct" /> + <code value="732937005" /> + </quantity> + <daysSupply> + <value value="4" /> + <unit value="Day" /> + <system value="http://unitsofmeasure.org" /> + <code value="d" /> + </daysSupply> + <whenPrepared value="2023-06-15T18:00:00+00:00" /> + <receiver> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </receiver> + <dosageInstruction> + <text value="Take 1 capsule, 4 times a day." /> + <timing> + <repeat> + <frequency value="4" /> + <period value="1" /> + <periodUnit value="d" /> + </repeat> + </timing> + <route> + <coding> + <system value="http://snomed.info/sct" /> + <code value="26643006" /> + <display value="Oral" /> + </coding> + </route> + </dosageInstruction> +</MedicationDispense> + + diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-Amoxicillin-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-Amoxicillin-Example.xml new file mode 100644 index 0000000..ff9ac52 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-Amoxicillin-Example.xml @@ -0,0 +1,86 @@ +<MedicationRequest xmlns="http://hl7.org/fhir"> + <id value="UKCore-MedicationRequest-Amoxicillin-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the option for Amoxicillin when prescribing multiple routes</div> + </text> + <status value="completed" /> + <intent value="option" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-category" /> + <code value="inpatient" /> + <display value="Inpatient" /> + </coding> + </category> + <medicationCodeableConcept> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="39732411000001106" /> + <display value="Amoxicillin 500mg capsules" /> + </coding> + </medicationCodeableConcept> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <authoredOn value="2023-06-15T15:00:00.000Z" /> + <requester> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </requester> + <courseOfTherapyType> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy" /> + <code value="acute" /> + <display value="Short course (acute) therapy" /> + </coding> + </courseOfTherapyType> + <dosageInstruction> + <text value="500mg - three times a day." /> + <additionalInstruction> + <coding> + <system value="http://snomed.info/sct" /> + <code value="890458001" /> + <display value="Penicillin-containing product" /> + </coding> +</additionalInstruction> + <timing> + <repeat> + <frequency value="3" /> + <period value="1" /> + <periodUnit value="d" /> + </repeat> + </timing> + <site> + <coding> + <system value="http://snomed.info/sct" /> + <code value="738956005" /> + <display value="Oral" /> + </coding> + </site> + <route> + <coding> + <system value="http://snomed.info/sct" /> + <code value="26643006" /> + <display value="Oral" /> + </coding> + </route> + <doseAndRate> + <type> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/dose-rate-type" /> + <code value="ordered" /> + <display value="Ordered" /> + </coding> + </type> + <doseQuantity> + <value value="500" /> + <unit value="milligram" /> + <system value="http://unitsofmeasure.org" /> + <code value="mg" /> + </doseQuantity> + </doseAndRate> + </dosageInstruction> + <substitution> + <allowedBoolean value="false" /> + </substitution> +</MedicationRequest> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-CiprofloxacinIV-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-CiprofloxacinIV-Example.xml new file mode 100644 index 0000000..5897699 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-CiprofloxacinIV-Example.xml @@ -0,0 +1,79 @@ +<MedicationRequest xmlns="http://hl7.org/fhir"> + <id value="UKCore-MedicationRequest-CiprofloxacinIV-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the option for Ciprofloxacin via IV when prescribing multiple routes</div> + </text> + <status value="completed" /> + <intent value="option" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-category" /> + <code value="inpatient" /> + <display value="Inpatient" /> + </coding> + </category> + <medicationCodeableConcept> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="36141511000001100" /> + <display value="Ciprofloxacin 400mg/200ml infusion bags" /> + </coding> + </medicationCodeableConcept> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <authoredOn value="2023-06-15T15:00:00.000Z" /> + <requester> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </requester> + <courseOfTherapyType> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy" /> + <code value="acute" /> + <display value="Short course (acute) therapy" /> + </coding> + </courseOfTherapyType> + <dosageInstruction> + <text value="Ciprofloxacin 400mg, twice daily." /> + <timing> + <repeat> + <frequency value="2" /> + <period value="1" /> + <periodUnit value="d" /> + </repeat> + </timing> + <route> + <coding> + <system value="http://snomed.info/sct" /> + <code value="47625008" /> + <display value="Intravenous" /> + </coding> + </route> + <method> + <coding> + <system value="http://snomed.info/sct" /> + <code value="13283701000001109" /> + <display value="Infusion" /> + </coding> + </method> + <doseAndRate> + <type> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/dose-rate-type" /> + <code value="ordered" /> + <display value="Ordered" /> + </coding> + </type> + <doseQuantity> + <value value="400" /> + <unit value="milligram" /> + <system value="http://unitsofmeasure.org" /> + <code value="mg" /> + </doseQuantity> + </doseAndRate> + </dosageInstruction> + <substitution> + <allowedBoolean value="false" /> + </substitution> +</MedicationRequest> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-CiprofloxacinOral-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-CiprofloxacinOral-Example.xml new file mode 100644 index 0000000..cf1fcd1 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-CiprofloxacinOral-Example.xml @@ -0,0 +1,79 @@ +<MedicationRequest xmlns="http://hl7.org/fhir"> + <id value="UKCore-MedicationRequest-CiprofloxacinOral-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the option for Ciprofloxacin orally when prescribing multiple routes</div> + </text> + <status value="completed" /> + <intent value="option" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-category" /> + <code value="inpatient" /> + <display value="Inpatient" /> + </coding> + </category> + <medicationCodeableConcept> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="39687811000001107" /> + <display value="Ciprofloxacin 500mg tablets" /> + </coding> + </medicationCodeableConcept> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <authoredOn value="2023-06-15T15:00:00.000Z" /> + <requester> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </requester> + <courseOfTherapyType> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy" /> + <code value="acute" /> + <display value="Short course (acute) therapy" /> + </coding> + </courseOfTherapyType> + <dosageInstruction> + <text value="Ciprofloxacin 500mg, twice daily." /> + <timing> + <repeat> + <frequency value="2" /> + <period value="1" /> + <periodUnit value="d" /> + </repeat> + </timing> + <site> + <coding> + <system value="http://snomed.info/sct" /> + <code value="738956005" /> + <display value="Oral" /> + </coding> + </site> + <route> + <coding> + <system value="http://snomed.info/sct" /> + <code value="26643006" /> + <display value="Oral" /> + </coding> + </route> + <doseAndRate> + <type> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/dose-rate-type" /> + <code value="ordered" /> + <display value="Ordered" /> + </coding> + </type> + <doseQuantity> + <value value="500" /> + <unit value="milligram" /> + <system value="http://unitsofmeasure.org" /> + <code value="mg" /> + </doseQuantity> + </doseAndRate> + </dosageInstruction> + <substitution> + <allowedBoolean value="false" /> + </substitution> +</MedicationRequest> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-Clarithromycin-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-Clarithromycin-Example.xml new file mode 100644 index 0000000..116e02f --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-Clarithromycin-Example.xml @@ -0,0 +1,79 @@ +<MedicationRequest xmlns="http://hl7.org/fhir"> + <id value="UKCore-MedicationRequest-Clarithromycin-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the option for Clarithromycin when prescribing multiple routes</div> + </text> + <status value="completed" /> + <intent value="option" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-category" /> + <code value="inpatient" /> + <display value="Inpatient" /> + </coding> + </category> + <medicationCodeableConcept> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="41946511000001109" /> + <display value="Clarithromycin 500mg tablets" /> + </coding> + </medicationCodeableConcept> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <authoredOn value="2023-06-15T15:00:00.000Z" /> + <requester> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </requester> + <courseOfTherapyType> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy" /> + <code value="acute" /> + <display value="Short course (acute) therapy" /> + </coding> + </courseOfTherapyType> + <dosageInstruction> + <text value="500mg - three times a day." /> + <timing> + <repeat> + <frequency value="3" /> + <period value="1" /> + <periodUnit value="d" /> + </repeat> + </timing> + <site> + <coding> + <system value="http://snomed.info/sct" /> + <code value="738956005" /> + <display value="Oral" /> + </coding> + </site> + <route> + <coding> + <system value="http://snomed.info/sct" /> + <code value="26643006" /> + <display value="Oral" /> + </coding> + </route> + <doseAndRate> + <type> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/dose-rate-type" /> + <code value="ordered" /> + <display value="Ordered" /> + </coding> + </type> + <doseQuantity> + <value value="500" /> + <unit value="milligram" /> + <system value="http://unitsofmeasure.org" /> + <code value="mg" /> + </doseQuantity> + </doseAndRate> + </dosageInstruction> + <substitution> + <allowedBoolean value="false" /> + </substitution> +</MedicationRequest> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-Doxycycline-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-Doxycycline-Example.xml new file mode 100644 index 0000000..cebc0d4 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-Doxycycline-Example.xml @@ -0,0 +1,126 @@ +<MedicationRequest xmlns="http://hl7.org/fhir"> + <id value="UKCore-MedicationRequest-Doxycycline-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate he option for Doxycycline when prescribing multiple routes</div> + </text> + <status value="completed" /> + <intent value="option" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-category" /> + <code value="inpatient" /> + <display value="Inpatient" /> + </coding> + </category> + <medicationCodeableConcept> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="41948311000001104" /> + <display value="Doxycycline 100mg capsules" /> + </coding> + </medicationCodeableConcept> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <authoredOn value="2023-06-15T15:00:00.000Z" /> + <requester> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </requester> + <courseOfTherapyType> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy" /> + <code value="acute" /> + <display value="Short course (acute) therapy" /> + </coding> + </courseOfTherapyType> + <dosageInstruction> + <sequence value="1" /> + <text value="200mg - once a day - for 1 day" /> + <timing> + <repeat> + <boundsDuration> + <value value="1" /> + <unit value="day" /> + <system value="http://unitsofmeasure.org" /> + <code value="d" /> + </boundsDuration> + <frequency value="1" /> + <period value="1" /> + <periodUnit value="d" /> + </repeat> + </timing> + <site> + <coding> + <system value="http://snomed.info/sct" /> + <code value="738956005" /> + <display value="Oral" /> + </coding> + </site> + <route> + <coding> + <system value="http://snomed.info/sct" /> + <code value="26643006" /> + <display value="Oral" /> + </coding> + </route> + <doseAndRate> + <type> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/dose-rate-type" /> + <code value="ordered" /> + <display value="Ordered" /> + </coding> + </type> + <doseQuantity> + <value value="200" /> + <unit value="milligram" /> + <system value="http://unitsofmeasure.org" /> + <code value="mg" /> + </doseQuantity> + </doseAndRate> + </dosageInstruction> + <dosageInstruction> + <sequence value="2" /> + <text value="100mg - once a day." /> + <timing> + <repeat> + <frequency value="1" /> + <period value="1" /> + <periodUnit value="d" /> + </repeat> + </timing> + <site> + <coding> + <system value="http://snomed.info/sct" /> + <code value="738956005" /> + <display value="Oral" /> + </coding> + </site> + <route> + <coding> + <system value="http://snomed.info/sct" /> + <code value="26643006" /> + <display value="Oral" /> + </coding> + </route> + <doseAndRate> + <type> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/dose-rate-type" /> + <code value="ordered" /> + <display value="Ordered" /> + </coding> + </type> + <doseQuantity> + <value value="100" /> + <unit value="milligram" /> + <system value="http://unitsofmeasure.org" /> + <code value="mg" /> + </doseQuantity> + </doseAndRate> + </dosageInstruction> + <substitution> + <allowedBoolean value="false" /> + </substitution> +</MedicationRequest> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-EyeDrops-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-EyeDrops-Example.xml new file mode 100644 index 0000000..9ef7f56 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-EyeDrops-Example.xml @@ -0,0 +1,82 @@ +<MedicationRequest xmlns="http://hl7.org/fhir"> + <id value="UKCore-MedicationRequest-EyeDrops-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a medication request for eye drops</div> + </text> + <status value="completed" /> + <intent value="order" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-category" /> + <code value="outpatient" /> + <display value="Outpatient" /> + </coding> + </category> + <medicationReference> + <reference value="Medication/UKCore-Medication-TimoptolEyeDrops-Example" /> + </medicationReference> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <authoredOn value="2022-09-10T15:00:00.000Z" /> + <requester> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </requester> + <courseOfTherapyType> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy" /> + <code value="acute" /> + <display value="Short course (acute) therapy" /> + </coding> + </courseOfTherapyType> + <dosageInstruction> + <text value="1 drop in left eye, every 12 hours, until finished." /> + <timing> + <repeat> + <frequency value="1" /> + <period value="12" /> + <periodUnit value="h" /> + </repeat> + </timing> + <site> + <coding> + <system value="http://snomed.info/sct" /> + <code value="8966001" /> + <display value="Left eye structure" /> + </coding> + </site> + <route> + <coding> + <system value="http://snomed.info/sct" /> + <code value="58831000052108" /> + <display value="Subretinal route" /> + </coding> + </route> + <method> + <coding> + <system value="http://snomed.info/sct" /> + <code value="421984009" /> + <display value="Until finished" /> + </coding> + </method> + <doseAndRate> + <type> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/dose-rate-type" /> + <code value="ordered" /> + <display value="Ordered" /> + </coding> + </type> + <doseQuantity> + <value value="1" /> + <unit value="drop" /> + <system value="http://unitsofmeasure.org" /> + <code value="[drp]" /> + </doseQuantity> + </doseAndRate> + </dosageInstruction> + <substitution> + <allowedBoolean value="true" /> + </substitution> +</MedicationRequest> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-ParacetamolIV-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-ParacetamolIV-Example.xml new file mode 100644 index 0000000..492285a --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-ParacetamolIV-Example.xml @@ -0,0 +1,79 @@ +<MedicationRequest xmlns="http://hl7.org/fhir"> + <id value="UKCore-MedicationRequest-ParacetamolIV-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the option for Paracetamol via IV when prescribing multiple routes</div> + </text> + <status value="completed" /> + <intent value="option" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-category" /> + <code value="inpatient" /> + <display value="Inpatient" /> + </coding> + </category> + <medicationCodeableConcept> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="777067000" /> + <display value="Paracetamol" /> + </coding> + </medicationCodeableConcept> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <authoredOn value="2023-06-15T15:00:00.000Z" /> + <requester> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </requester> + <courseOfTherapyType> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy" /> + <code value="acute" /> + <display value="Short course (acute) therapy" /> + </coding> + </courseOfTherapyType> + <dosageInstruction> + <text value="Paracetamol 500mg, four times a day." /> + <timing> + <repeat> + <frequency value="4" /> + <period value="1" /> + <periodUnit value="d" /> + </repeat> + </timing> + <route> + <coding> + <system value="http://snomed.info/sct" /> + <code value="47625008" /> + <display value="Intravenous" /> + </coding> + </route> + <method> + <coding> + <system value="http://snomed.info/sct" /> + <code value="13283701000001109" /> + <display value="Infusion" /> + </coding> + </method> + <doseAndRate> + <type> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/dose-rate-type" /> + <code value="ordered" /> + <display value="Ordered" /> + </coding> + </type> + <doseQuantity> + <value value="500" /> + <unit value="milligram" /> + <system value="http://unitsofmeasure.org" /> + <code value="mg" /> + </doseQuantity> + </doseAndRate> + </dosageInstruction> + <substitution> + <allowedBoolean value="false" /> + </substitution> +</MedicationRequest> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-ParacetamolOral-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-ParacetamolOral-Example.xml new file mode 100644 index 0000000..b0e5539 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationRequest-ParacetamolOral-Example.xml @@ -0,0 +1,79 @@ +<MedicationRequest xmlns="http://hl7.org/fhir"> + <id value="UKCore-MedicationRequest-ParacetamolOral-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the option for Paracetamol orally when prescribing multiple routes</div> + </text> + <status value="completed" /> + <intent value="option" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-category" /> + <code value="inpatient" /> + <display value="Inpatient" /> + </coding> + </category> + <medicationCodeableConcept> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="777067000" /> + <display value="Paracetamol" /> + </coding> + </medicationCodeableConcept> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <authoredOn value="2023-06-15T15:00:00.000Z" /> + <requester> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </requester> + <courseOfTherapyType> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy" /> + <code value="acute" /> + <display value="Short course (acute) therapy" /> + </coding> + </courseOfTherapyType> + <dosageInstruction> + <text value="Paracetamol 500mg, four times a day." /> + <timing> + <repeat> + <frequency value="4" /> + <period value="1" /> + <periodUnit value="d" /> + </repeat> + </timing> + <site> + <coding> + <system value="http://snomed.info/sct" /> + <code value="738956005" /> + <display value="Oral" /> + </coding> + </site> + <route> + <coding> + <system value="http://snomed.info/sct" /> + <code value="26643006" /> + <display value="Oral" /> + </coding> + </route> + <doseAndRate> + <type> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/dose-rate-type" /> + <code value="ordered" /> + <display value="Ordered" /> + </coding> + </type> + <doseQuantity> + <value value="500" /> + <unit value="milligram" /> + <system value="http://unitsofmeasure.org" /> + <code value="mg" /> + </doseQuantity> + </doseAndRate> + </dosageInstruction> + <substitution> + <allowedBoolean value="false" /> + </substitution> +</MedicationRequest> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-MedicationStatement-Amoxicillin-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationStatement-Amoxicillin-Example.xml new file mode 100644 index 0000000..1c56d05 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-MedicationStatement-Amoxicillin-Example.xml @@ -0,0 +1,87 @@ +<MedicationStatement xmlns="http://hl7.org/fhir"> + <id value="UKCore-MedicationStatement-Amoxicillin-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a medication statement for Amoxicillin</div> + </text> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="ac0ffbdf-3289-41d5-84d9-068a1f5937db" /> + </identifier> + <status value="active" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/medication-statement-category" /> + <code value="outpatient" /> + <display value="Outpatient" /> + </coding> + </category> + <medicationCodeableConcept> + <coding> + <system value="https://dmd.nhs.uk" /> + <code value="39732311000001104" /> + <display value="Amoxicillin 250mg capsules" /> + </coding> + </medicationCodeableConcept> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectivePeriod> + <start value="2021-02-15T13:50:00+00:00" /> + <end value="2021-05-15T13:50:00+00:00" /> + </effectivePeriod> + <dateAsserted value="2017-02-22" /> + <reasonCode> + <coding> + <system value="http://snomed.info/sct" /> + <code value="65363002" /> + <display value="Otitis media" /> + </coding> + </reasonCode> + <dosage> + <text value="2 capsules 4 times a day." /> + <timing> + <repeat> + <frequency value="4" /> + <period value="1" /> + <periodUnit value="d" /> + </repeat> + </timing> + <asNeededCodeableConcept> + <coding> + <system value="http://snomed.info/sct" /> + <code value="301354004" /> + <display value="Pain of ear" /> + </coding> + </asNeededCodeableConcept> + <site> + <coding> + <system value="http://snomed.info/sct" /> + <code value="123851003" /> + <display value="Mouth region structure" /> + </coding> + </site> + <route> + <coding> + <system value="http://snomed.info/sct" /> + <code value="26643006" /> + <display value="Oral" /> + </coding> + </route> + <method> + <coding> + <system value="http://snomed.info/sct" /> + <code value="421984009" /> + <display value="Until finished" /> + </coding> + </method> + <doseAndRate> + <doseQuantity> + <value value="500" /> + <unit value="milligram" /> + <system value="http://unitsofmeasure.org" /> + <code value="mg" /> + </doseQuantity> + </doseAndRate> + </dosage> +</MedicationStatement> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-MessageHeader-Discharge-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-MessageHeader-Discharge-Example.xml new file mode 100644 index 0000000..c8ed724 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-MessageHeader-Discharge-Example.xml @@ -0,0 +1,31 @@ +<MessageHeader xmlns="http://hl7.org/fhir"> + <id value="UKCore-MessageHeader-Discharge-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a message header for a discharge summary</div> + </text> + <eventCoding> + <system value="http://snomed.info/sct" /> + <code value="306689006" /> + <display value="Discharge to home" /> + </eventCoding> + <destination> + <endpoint value="urn:nhs:addressing:asid:477121007825" /> + <receiver> + <identifier> + <system value="https://fhir.nhs.uk/Id/ods-organization-code" /> + <value value="RY6" /> + </identifier> + <display value="LEEDS COMMUNITY HEALTHCARE NHS TRUST" /> + </receiver> + </destination> + <sender> + <reference value="https://directory.spineservices.nhs.uk/Organization/X26" /> + </sender> + <source> + <endpoint value="NOROT003" /> + </source> + <focus> + <reference value="Encounter/UKCore-Encounter-InpatientEncounter-Example" /> + </focus> +</MessageHeader> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-24HourBloodPressure-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-24HourBloodPressure-Example.xml new file mode 100644 index 0000000..ec3fe09 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-24HourBloodPressure-Example.xml @@ -0,0 +1,61 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-24HourBloodPressure-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate an average blood pressure over 24 hours</div> + </text> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="314463006" /> + <display value="24 hour blood pressure" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2023-03-10" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="314464000" /> + <display value="24 hour systolic blood pressure" /> + </coding> + <text value="Systolic blood pressure" /> + </code> + <valueQuantity> + <value value="102" /> + <unit value="millimeter of mercury" /> + <system value="http://unitsofmeasure.org" /> + <code value="mm[Hg]" /> + </valueQuantity> + </component> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="314465004" /> + <display value="24 hour diastolic blood pressure" /> + </coding> + <text value="Diastolic blood pressure" /> + </code> + <valueQuantity> + <value value="84" /> + <unit value="millimeter of mercury" /> + <system value="http://unitsofmeasure.org" /> + <code value="mm[Hg]" /> + </valueQuantity> + </component> +</Observation> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-AwarenessOfDiagnosis-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-AwarenessOfDiagnosis-Example.xml new file mode 100644 index 0000000..9bc573e --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-AwarenessOfDiagnosis-Example.xml @@ -0,0 +1,19 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-AwarenessOfDiagnosis-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate an observation of the awareness of diagnosis</div> + </text> + <status value="final" /> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="162564003" /> + <display value="Awareness of diagnosis" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveInstant value="2019-12-10T13:00:00+00:00" /> +</Observation> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-BreathingNormally-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-BreathingNormally-Example.xml new file mode 100644 index 0000000..5f04f04 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-BreathingNormally-Example.xml @@ -0,0 +1,29 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-BreathingNormally-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate an observation of a patient breathing room air</div> + </text> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="exam" /> + <display value="Exam" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="722742002" /> + <display value="Breathing room air" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2023-08-10" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> +</Observation> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-DrugUse-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-DrugUse-Example.xml new file mode 100644 index 0000000..6463421 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-DrugUse-Example.xml @@ -0,0 +1,32 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-DrugUse-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate an observation of the patient's illicit drug use</div> + </text> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="2af46949-4938-4c57-bad4-c4363e1965d5" /> + </identifier> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="social-history" /> + <display value="Social History" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="307052004" /> + <display value="Illicit drug use" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> +</Observation> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-FastingTest-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-FastingTest-Example.xml new file mode 100644 index 0000000..adec486 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-FastingTest-Example.xml @@ -0,0 +1,35 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-FastingTest-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a blood glucose reading after fasting</div> + </text> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="exam" /> + <display value="Exam" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="997681000000108" /> + <display value="Fasting blood glucose level" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2023-08-10" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <valueQuantity> + <value value="3.9" /> + <unit value="millimoles per litre" /> + <system value="http://unitsofmeasure.org" /> + <code value="mmol/L" /> + </valueQuantity> +</Observation> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-FingerJointInflamed-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-FingerJointInflamed-Example.xml new file mode 100644 index 0000000..1b3bb30 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-FingerJointInflamed-Example.xml @@ -0,0 +1,29 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-FingerJointInflamed-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a finger joint inflammation observation</div> + </text> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="0733b27a-377b-4688-90be-eb7b9f462b91" /> + </identifier> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="exam" /> + <display value="Exam" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="298167002" /> + <display value="Finger joint inflamed" /> + </coding> + </code> + <performer> + <reference value="Practitioner/UKCore-Practitioner-PharmacistJimmyChuck-Example" /> + </performer> +</Observation> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-Group-FullBloodCount-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-Group-FullBloodCount-Example.xml new file mode 100644 index 0000000..2862759 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-Group-FullBloodCount-Example.xml @@ -0,0 +1,38 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-Group-FullBloodCount-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a full blood count using multiple lab observation references</div> + </text> + <extension url="http://hl7.org/fhir/6.0/StructureDefinition/extension-Observation.organizer"> + <valueBoolean value="true" /> + </extension> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="53dd97da-082c-450d-a47d-3ffa44941a68" /> + </identifier> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="laboratory" /> + <display value="Laboratory" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="26604007" /> + <display value="Full blood count" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <hasMember> + <reference value="Observation/UKCore-Observation-Lab-WhiteCellCount-Example" /> + </hasMember> + <hasMember> + <reference value="Observation/UKCore-Observation-Lab-RedCellCount-Example" /> + </hasMember> +</Observation> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-HeavyDrinker-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-HeavyDrinker-Example.xml new file mode 100644 index 0000000..7aa1897 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-HeavyDrinker-Example.xml @@ -0,0 +1,35 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-HeavyDrinker-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a patient who is a heavy drinker</div> + </text> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="social-history" /> + <display value="Social History" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1082631000000102" /> + <display value="Alcohol units consumed per day" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2023-08-10" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <valueQuantity> + <value value="20" /> + <unit value="per day" /> + <system value="http://unitsofmeasure.org" /> + <code value="/d" /> + </valueQuantity> +</Observation> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-Lab-Albumin-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-Lab-Albumin-Example.xml new file mode 100644 index 0000000..b09d033 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-Lab-Albumin-Example.xml @@ -0,0 +1,61 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-Lab-Albumin-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">This is a FHIR Observation representing a laboratory test for a patient's serum albumin level. It includes test codes from UK reference sets, the measured value, the performing laboratory, the date of issue, and a reference range to interpret the result.</div> + </text> + <meta> + <profile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Observation-Lab" /> + </meta> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="78443cb9-f248-44ef-9e6b-37fc4a592c1b" /> + </identifier> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="laboratory" /> + <display value="Laboratory" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1105861000000106" /> + <display value="Albumin mass concentration in serum" /> + </coding> + </code> + <subject> + <reference value="urn:uuid:ab87a3f8-1d37-44a9-804e-5e962598a6e4" /> + <display value="WELSH, Joel" /> + </subject> + <issued value="2022-03-08T14:23:00+00:00" /> + <performer> + <reference value="urn:uuid:8a6d85b8-9837-4fed-a257-4cf207988338" /> + <display value="TD008362 PATH LAB 001" /> + </performer> + <valueQuantity> + <value value="47" /> + <unit value="g/L" /> + <system value="http://unitsofmeasure.org" /> + <code value="g/L" /> + </valueQuantity> + <specimen> + <reference value="urn:uuid:bab0eaec-1ec5-4598-b660-90bb38a1030d" /> + </specimen> + <referenceRange> + <low> + <value value="35" /> + <unit value="g/L" /> + <system value="http://unitsofmeasure.org" /> + <code value="g/L" /> + </low> + <high> + <value value="50" /> + <unit value="g/L" /> + <system value="http://unitsofmeasure.org" /> + <code value="g/L" /> + </high> + </referenceRange> +</Observation> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-Lab-RedCellCount-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-Lab-RedCellCount-Example.xml new file mode 100644 index 0000000..02be7c5 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-Lab-RedCellCount-Example.xml @@ -0,0 +1,48 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-Lab-RedCellCount-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the observation of a red cell count for a blood specimen</div> + </text> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="fcd8af5a-18a0-4d0b-8c79-5b6bdf55fb32" /> + </identifier> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="laboratory" /> + <display value="Laboratory" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="58571000237106" /> + <display value="Nucleated red blood cell count in blood" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <valueQuantity> + <value value="3.9" /> + <unit value="10*12/L" /> + <system value="http://unitsofmeasure.org" /> + </valueQuantity> + <specimen> + <reference value="Specimen/UKCore-Specimen-BloodSpecimen-Example" /> + </specimen> + <referenceRange> + <low> + <value value="4.0" /> + </low> + <high> + <value value="5.9" /> + </high> + </referenceRange> +</Observation> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-Lab-Sn-AbsentData-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-Lab-Sn-AbsentData-Example.xml new file mode 100644 index 0000000..368cf31 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-Lab-Sn-AbsentData-Example.xml @@ -0,0 +1,34 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-Lab-Sn-AbsentData-Example" /> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="laboratory" /> + <display value="Laboratory" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="58571000237106" /> + <display value="Nucleated red blood cell count in blood" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <dataAbsentReason> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/data-absent-reason" /> + <code value="as-text" /> + </coding> + <text value="Specimen unsatisfactory for evaluation" /> + </dataAbsentReason> + <specimen> + <reference value="Specimen/UKCore-Specimen-BloodSpecimen-Example" /> + </specimen> +</Observation> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-Lab-WhiteCellCount-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-Lab-WhiteCellCount-Example.xml new file mode 100644 index 0000000..b1ec77d --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-Lab-WhiteCellCount-Example.xml @@ -0,0 +1,48 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-Lab-WhiteCellCount-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the observation of a white cell count for a blood specimen</div> + </text> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="3b809516-a294-4de9-a4ce-0c24c7b5f796" /> + </identifier> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="laboratory" /> + <display value="Laboratory" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="16181000237107" /> + <display value="White blood cell count in fluid" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <valueQuantity> + <value value="11.2" /> + <unit value="10*9/L" /> + <system value="http://unitsofmeasure.org" /> + </valueQuantity> + <specimen> + <reference value="Specimen/UKCore-Specimen-BloodSpecimen-Example" /> + </specimen> + <referenceRange> + <low> + <value value="4.0" /> + </low> + <high> + <value value="17.0" /> + </high> + </referenceRange> +</Observation> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-NPEWSTotal-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-NPEWSTotal-Example.xml new file mode 100644 index 0000000..9e78434 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-NPEWSTotal-Example.xml @@ -0,0 +1,35 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-NPEWSTotal-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a NPEWS Total Score</div> + </text> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="survey" /> + <display value="Survey" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1363261000000104" /> + <display value="NPEWS (National Paediatric Early Warning Score) - total score" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2023-08-10" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <valueQuantity> + <value value="6" /> + <unit value="ScoreOf" /> + <system value="http://unitsofmeasure.org" /> + <code value="{ScoreOf}" /> + </valueQuantity> +</Observation> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-OxygenTherapy-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-OxygenTherapy-Example.xml new file mode 100644 index 0000000..5f48f9b --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-OxygenTherapy-Example.xml @@ -0,0 +1,35 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-OxygenTherapy-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate an observation of a patient being assisted by oxygen therapy</div> + </text> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="therapy" /> + <display value="Therapy" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="371825009" /> + <display value="Patient on oxygen" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2023-08-10" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <valueQuantity> + <value value="2" /> + <unit value="litre per minute" /> + <system value="http://unitsofmeasure.org" /> + <code value="l/min" /> + </valueQuantity> +</Observation> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-PatientConsciousness-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-PatientConsciousness-Example.xml new file mode 100644 index 0000000..d802022 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-PatientConsciousness-Example.xml @@ -0,0 +1,36 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-PatientConsciousness-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a patient's consciousness level</div> + </text> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="survey" /> + <display value="Survey" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1104441000000107" /> + <display value="Alert Confusion Voice Pain Unresponsive scale score" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2023-08-10" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <valueCodeableConcept> + <coding> + <system value="http://snomed.info/sct" /> + <code value="300202002" /> + <display value="Responds to voice" /> + </coding> + </valueCodeableConcept> +</Observation> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-PipeSmoker-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-PipeSmoker-Example.xml new file mode 100644 index 0000000..77b2d63 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-PipeSmoker-Example.xml @@ -0,0 +1,35 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-PipeSmoker-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the observation of a patient who smokes a pipe</div> + </text> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="social-history" /> + <display value="Social History" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="230058003" /> + <display value="Pipe tobacco consumption" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2023-08-10" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <valueQuantity> + <value value="5" /> + <unit value="per day" /> + <system value="http://unitsofmeasure.org" /> + <code value="/d" /> + </valueQuantity> +</Observation> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-TobaccoConsumption-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-TobaccoConsumption-Example.xml new file mode 100644 index 0000000..1640aab --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-TobaccoConsumption-Example.xml @@ -0,0 +1,37 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-TobaccoConsumption-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a tobacco consumption observation</div> + </text> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="social-history" /> + <display value="Social History" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="266918002" /> + <display value="Tobacco smoking consumption" /> + </coding> + <text value="Tobacco consumption" /> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2026-01-16" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <valueCodeableConcept> + <coding> + <system value="http://snomed.info/sct" /> + <code value="160603005" /> + <display value="Light cigarette smoker (1-9 cigs/day)" /> + </coding> + </valueCodeableConcept> +</Observation> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-BMI-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-BMI-Example.xml new file mode 100644 index 0000000..bbbcc8e --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-BMI-Example.xml @@ -0,0 +1,41 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-VitalSigns-BMI-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a body mass index vital sign</div> + </text> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + <text value="Vital Signs" /> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="60621009" /> + <display value="Body mass index" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="39156-5" /> + <display value="Body mass index (BMI) [Ratio]" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2023-08-10" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <valueQuantity> + <value value="46" /> + <unit value="kilogram / (meter ^ 2)" /> + <system value="http://unitsofmeasure.org" /> + <code value="kg/m2" /> + </valueQuantity> +</Observation> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-BloodPressure-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-BloodPressure-Example.xml new file mode 100644 index 0000000..df79b60 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-BloodPressure-Example.xml @@ -0,0 +1,85 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-VitalSigns-BloodPressure-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a blood pressure measurement vital signs observation</div> + </text> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="75367002" /> + <display value="Blood pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="85354-9" /> + <display value="Blood pressure panel with all children optional" /> + </coding> + <text value="Blood pressure" /> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2023-08-10" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <bodySite> + <coding> + <system value="http://snomed.info/sct" /> + <code value="40983000" /> + <display value="Structure of upper extremity between shoulder and elbow" /> + </coding> + <text value="Structure of upper extremity between shoulder and elbow" /> + </bodySite> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="72313002" /> + <display value="Systolic arterial pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="8480-6" /> + <display value="Systolic blood pressure" /> + </coding> + <text value="Systolic blood pressure" /> + </code> + <valueQuantity> + <value value="142" /> + <unit value="millimeter of mercury" /> + <system value="http://unitsofmeasure.org" /> + <code value="mm[Hg]" /> + </valueQuantity> + </component> + <component> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="1091811000000102" /> + <display value="Diastolic arterial pressure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="8462-4" /> + <display value="Diastolic blood pressure" /> + </coding> + <text value="Diastolic blood pressure" /> + </code> + <valueQuantity> + <value value="94" /> + <unit value="millimeter of mercury" /> + <system value="http://unitsofmeasure.org" /> + <code value="mm[Hg]" /> + </valueQuantity> + </component> +</Observation> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-BodyHeight-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-BodyHeight-Example.xml new file mode 100644 index 0000000..9a068cf --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-BodyHeight-Example.xml @@ -0,0 +1,41 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-VitalSigns-BodyHeight-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a body height vital sign</div> + </text> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + <text value="Vital Signs" /> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="50373000" /> + <display value="Body height measure" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="8302-2" /> + <display value="Body height" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2023-08-10" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <valueQuantity> + <value value="1.64" /> + <unit value="meter" /> + <system value="http://unitsofmeasure.org" /> + <code value="m" /> + </valueQuantity> +</Observation> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-BodyTemperature-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-BodyTemperature-Example.xml new file mode 100644 index 0000000..bb93295 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-BodyTemperature-Example.xml @@ -0,0 +1,41 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-VitalSigns-BodyTemperature-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a body temperature vital sign</div> + </text> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + <text value="Vital Signs" /> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="276885007" /> + <display value="Core body temperature" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="8310-5" /> + <display value="Body temperature" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2023-08-10" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <valueQuantity> + <value value="36.5" /> + <unit value="degree Celsius" /> + <system value="http://unitsofmeasure.org" /> + <code value="Cel" /> + </valueQuantity> +</Observation> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-BodyWeight-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-BodyWeight-Example.xml new file mode 100644 index 0000000..3eccb29 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-BodyWeight-Example.xml @@ -0,0 +1,41 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-VitalSigns-BodyWeight-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a body weight vital sign</div> + </text> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + <text value="Vital Signs" /> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="27113001" /> + <display value="Body weight" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="29463-7" /> + <display value="Body weight" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2023-08-10" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <valueQuantity> + <value value="90" /> + <unit value="kilogram" /> + <system value="http://unitsofmeasure.org" /> + <code value="kg" /> + </valueQuantity> +</Observation> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-HeadCircumference-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-HeadCircumference-Example.xml new file mode 100644 index 0000000..9c041ac --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-HeadCircumference-Example.xml @@ -0,0 +1,41 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-VitalSigns-HeadCircumference-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a head circumference vital sign</div> + </text> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + <text value="Vital Signs" /> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="363812007" /> + <display value="Head circumference" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="9843-4" /> + <display value="Head Occipital-frontal circumference" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2023-08-10" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <valueQuantity> + <value value="59" /> + <unit value="centimeter" /> + <system value="http://unitsofmeasure.org" /> + <code value="cm" /> + </valueQuantity> +</Observation> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-HeartRate-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-HeartRate-Example.xml new file mode 100644 index 0000000..f5ef9da --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-HeartRate-Example.xml @@ -0,0 +1,41 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-VitalSigns-HeartRate-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a heart rate vital sign</div> + </text> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + <text value="Vital Signs" /> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="444981005" /> + <display value="Resting heart rate" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="8867-4" /> + <display value="Heart rate" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2023-08-10" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <valueQuantity> + <value value="104" /> + <unit value="per minute" /> + <system value="http://unitsofmeasure.org" /> + <code value="/min" /> + </valueQuantity> +</Observation> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-OxygenSaturation-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-OxygenSaturation-Example.xml new file mode 100644 index 0000000..9b0aca0 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-OxygenSaturation-Example.xml @@ -0,0 +1,41 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-VitalSigns-OxygenSaturation-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate an oxygen saturation vital sign</div> + </text> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + <text value="Vital Signs" /> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="431314004" /> + <display value="Peripheral oxygen saturation" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="2708-6" /> + <display value="Oxygen saturation in Arterial blood" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2023-08-10" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <valueQuantity> + <value value="96" /> + <unit value="percent" /> + <system value="http://unitsofmeasure.org" /> + <code value="%" /> + </valueQuantity> +</Observation> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-RespiratoryRate-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-RespiratoryRate-Example.xml new file mode 100644 index 0000000..61f56ba --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Observation-VitalSigns-RespiratoryRate-Example.xml @@ -0,0 +1,41 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-Observation-VitalSigns-RespiratoryRate-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a respiration rate vital signs observation</div> + </text> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + <text value="Vital Signs" /> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="86290005" /> + <display value="Respiratory rate" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="9279-1" /> + <display value="Respiratory Rate" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2023-08-10" /> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <valueQuantity> + <value value="21" /> + <unit value="per minute" /> + <system value="http://unitsofmeasure.org" /> + <code value="/min" /> + </valueQuantity> +</Observation> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-OperationOutcome-DateError-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-OperationOutcome-DateError-Example.xml new file mode 100644 index 0000000..4149aa7 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-OperationOutcome-DateError-Example.xml @@ -0,0 +1,20 @@ +<OperationOutcome xmlns="http://hl7.org/fhir"> + <id value="UKCore-OperationOutcome-DateError-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate an error returned from an API call, due to an error in a date</div> + </text> + <issue> + <severity value="fatal" /> + <code value="structure" /> + <details> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/operation-outcome" /> + <code value="MSG_DATE_FORMAT" /> + <display value="The Date value %s is not in the correct format (Xml Date Format required)" /> + </coding> + </details> + <diagnostics value="Interop.FHIRProcessors.Patient.processbirthDate line 2450" /> + <expression value="Patient.birthDate" /> + </issue> +</OperationOutcome> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Organization-LeedsTeachingHospital-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Organization-LeedsTeachingHospital-Example.xml new file mode 100644 index 0000000..b3f3209 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Organization-LeedsTeachingHospital-Example.xml @@ -0,0 +1,24 @@ +<Organization xmlns="http://hl7.org/fhir"> + <id value="UKCore-Organization-LeedsTeachingHospital-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate an NHS Trust organisation</div> + </text> + <identifier> + <use value="official" /> + <system value="https://fhir.nhs.uk/Id/ods-organization-code" /> + <value value="RR8" /> + </identifier> + <name value="LEEDS TEACHING HOSPITALS NHS TRUST" /> + <telecom> + <system value="phone" /> + <value value="0113 243 3144" /> + </telecom> + <address> + <line value="ST. JAMES'S UNIVERSITY HOSPITAL" /> + <line value="BECKETT STREET" /> + <city value="LEEDS" /> + <postalCode value="LS9 7TF" /> + <country value="ENGLAND" /> + </address> +</Organization> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Organization-WhiteRoseMedicalCentre-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Organization-WhiteRoseMedicalCentre-Example.xml new file mode 100644 index 0000000..2a6af78 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Organization-WhiteRoseMedicalCentre-Example.xml @@ -0,0 +1,24 @@ +<Organization xmlns="http://hl7.org/fhir"> + <id value="UKCore-Organization-WhiteRoseMedicalCentre-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate an organization</div> + </text> + <identifier> + <use value="official" /> + <system value="https://fhir.nhs.uk/Id/ods-organization-code" /> + <value value="GP5" /> + </identifier> + <name value="WHITE ROSE MEDICAL CENTRE" /> + <telecom> + <system value="phone" /> + <value value="0111 243 3144" /> + </telecom> + <address> + <line value="WHITE ROSE MEDICAL PRACTICE" /> + <line value="ROSE STREET" /> + <city value="LEEDS" /> + <postalCode value="LS1288T" /> + <country value="ENGLAND" /> + </address> +</Organization> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Patient-BabyPatient-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Patient-BabyPatient-Example.xml new file mode 100644 index 0000000..8b66e50 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Patient-BabyPatient-Example.xml @@ -0,0 +1,49 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="UKCore-Patient-BabyPatient-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a patient that is a baby</div> + </text> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-EthnicCategory"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-EthnicCategoryEngland" /> + <code value="A" /> + <display value="White - British" /> + </coding> + </valueCodeableConcept> + </extension> + <identifier> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberVerificationStatus"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-NHSNumberVerificationStatusEngland" /> + <code value="01" /> + <display value="Number present and verified" /> + </coding> + </valueCodeableConcept> + </extension> + <system value="https://fhir.nhs.uk/Id/nhs-number" /> + <value value="9912003890" /> + </identifier> + <name> + <use value="official" /> + <family value="JONES" /> + <given value="Melanie" /> + </name> + <telecom> + <system value="phone" /> + <value value="01131231266" /> + </telecom> + <gender value="female" /> + <birthDate value="2021-02-11"> + <extension url="http://hl7.org/fhir/StructureDefinition/patient-birthTime"> + <valueDateTime value="2021-02-11T15:39:00+00:00" /> + </extension> + </birthDate> + <address> + <line value="10 Fearnville Grove" /> + <city value="LEEDS" /> + <postalCode value="LS8 3DR" /> + </address> +</Patient> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Patient-RichardSmith-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Patient-RichardSmith-Example.xml new file mode 100644 index 0000000..4aaebf1 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Patient-RichardSmith-Example.xml @@ -0,0 +1,150 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="UKCore-Patient-RichardSmith-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a generic patient</div> + </text> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-EthnicCategory"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-EthnicCategoryEngland" /> + <code value="G" /> + <display value="Mixed - Any other mixed background" /> + </coding> + </valueCodeableConcept> + </extension> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ContactPreference"> + <extension url="PreferredContactMethod"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-PreferredContactMethod" /> + <code value="3" /> + <display value="Telephone" /> + </coding> + </valueCodeableConcept> + </extension> + <extension url="PreferredContactTimes"> + <valueTiming> + <repeat> + <frequency value="1" /> + <period value="1" /> + <periodUnit value="d" /> + <dayOfWeek value="mon" /> + <dayOfWeek value="wed" /> + <dayOfWeek value="fri" /> + <when value="MORN" /> + </repeat> + </valueTiming> + </extension> + <extension url="PreferredWrittenCommunicationFormat"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-PreferredWrittenCommunicationFormat" /> + <code value="11" /> + <display value="Large print" /> + </coding> + </valueCodeableConcept> + </extension> + </extension> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeathNotificationStatus"> + <extension url="deathNotificationStatus"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-DeathNotificationStatus" /> + <code value="U" /> + <display value="Removed" /> + </coding> + </valueCodeableConcept> + </extension> + <extension url="systemEffectiveDate"> + <valueDateTime value="2019-08-01T00:00:00.000Z" /> + </extension> + </extension> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ResidentialStatus"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-ResidentialStatus" /> + <code value="H" /> + <display value="UK Resident" /> + </coding> + </valueCodeableConcept> + </extension> + <identifier> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberVerificationStatus"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-NHSNumberVerificationStatusEngland" /> + <code value="01" /> + <display value="Number present and verified" /> + </coding> + </valueCodeableConcept> + </extension> + <system value="https://fhir.nhs.uk/Id/nhs-number" /> + <value value="9912003888" /> + </identifier> + <name> + <use value="official" /> + <family value="SMITH" /> + <given value="Richard" /> + </name> + <telecom> + <system value="phone" /> + <value value="01131231234" /> + </telecom> + <gender value="male" /> + <birthDate value="1970-09-11" /> + <address> + <line value="4 Sandmoor Drive" /> + <city value="LEEDS" /> + <postalCode value="LS17 7DF" /> + </address> + <contact> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ContactRank"> + <valuePositiveInt value="1" /> + </extension> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CopyCorrespondenceIndicator"> + <valueBoolean value="true" /> + </extension> + <relationship> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-AdditionalPersonRelationshipRole" /> + <code value="Personal" /> + <display value="Personal relationship with the patient" /> + </coding> + </relationship> + <name> + <use value="official" /> + <text value="JACKSON Jane (Miss)" /> + <family value="Jackson" /> + <given value="Jane" /> + <prefix value="Miss" /> + </name> + <telecom> + <system value="phone" /> + <value value="07777123123" /> + <use value="mobile" /> + </telecom> + <address> + <use value="home" /> + <type value="physical" /> + <line value="5 Alwoodley Road" /> + <city value="LEEDS" /> + <postalCode value="LS17 6EH" /> + </address> + <gender value="female" /> + </contact> + <communication> + <language> + <coding> + <system value="urn:ietf:bcp:47" /> + <code value="bfi" /> + <display value="British Sign Language" /> + </coding> + <coding> + <system value="http://snomed.info/sct" /> + <code value="703963007" /> + <display value="Makaton vocabulary" /> + </coding> + </language> + </communication> +</Patient> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Patient-Sn-Makaton-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Patient-Sn-Makaton-Example.xml new file mode 100644 index 0000000..c8edcc2 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Patient-Sn-Makaton-Example.xml @@ -0,0 +1,22 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="UKCore-Patient-Sn-Makaton-Example" /> + <name> + <use value="official" /> + <family value="JONES" /> + <given value="Jason" /> + </name> + <communication> + <language> + <coding> + <system value="urn:ietf:bcp:47" /> + <code value="bfi" /> + <display value="British Sign Language" /> + </coding> + <coding> + <system value="http://snomed.info/sct" /> + <code value="703963007" /> + <display value="Makaton vocabulary" /> + </coding> + </language> + </communication> +</Patient> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Patient-Sn-MultipleLanguages-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Patient-Sn-MultipleLanguages-Example.xml new file mode 100644 index 0000000..e37bd7f --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Patient-Sn-MultipleLanguages-Example.xml @@ -0,0 +1,51 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="UKCore-Patient-Sn-MultipleLanguages-Example" /> + <name> + <use value="official" /> + <family value="JONES" /> + <given value="Jason" /> + </name> + <communication> + <extension url="http://hl7.org/fhir/StructureDefinition/patient-proficiency"> + <extension url="level"> + <valueCoding> + <system value="http://terminology.hl7.org/CodeSystem/v3-LanguageAbilityProficiency" /> + <code value="E" /> + <display value="Excellent" /> + </valueCoding> + </extension> + </extension> + <language> + <coding> + <system value="urn:ietf:bcp:47" /> + <code value="en" /> + <display value="English" /> + </coding> + </language> + </communication> + <communication> + <extension url="http://hl7.org/fhir/StructureDefinition/patient-proficiency"> + <extension url="level"> + <valueCoding> + <system value="http://terminology.hl7.org/CodeSystem/v3-LanguageAbilityProficiency" /> + <code value="P" /> + <display value="Poor" /> + </valueCoding> + </extension> + <extension url="type"> + <valueCoding> + <system value="http://terminology.hl7.org/CodeSystem/v3-LanguageAbilityMode" /> + <code value="ESP" /> + <display value="Expressed spoken" /> + </valueCoding> + </extension> + </extension> + <language> + <coding> + <system value="urn:ietf:bcp:47" /> + <code value="fr" /> + <display value="French" /> + </coding> + </language> + </communication> +</Patient> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Patient-Sn-Photo-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Patient-Sn-Photo-Example.xml new file mode 100644 index 0000000..af4901b --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Patient-Sn-Photo-Example.xml @@ -0,0 +1,9 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="UKCore-Patient-Sn-Photo-Example" /> + <!-- **************snippet start************** --> + <photo> + <contentType value="image/png" /> + <data value="base64Binary" /> + </photo> + <!-- **************snippet end************** --> +</Patient> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Patient-Sn-SingleLanguage-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Patient-Sn-SingleLanguage-Example.xml new file mode 100644 index 0000000..fe9f867 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Patient-Sn-SingleLanguage-Example.xml @@ -0,0 +1,17 @@ +<Patient xmlns="http://hl7.org/fhir"> + <id value="UKCore-Patient-Sn-SingleLanguage-Example" /> + <name> + <use value="official" /> + <family value="JONES" /> + <given value="Jason" /> + </name> + <communication> + <language> + <coding> + <system value="urn:ietf:bcp:47" /> + <code value="en" /> + <display value="English" /> + </coding> + </language> + </communication> +</Patient> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Practitioner-ConsultantSandraGose-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Practitioner-ConsultantSandraGose-Example.xml new file mode 100644 index 0000000..6f79ff4 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Practitioner-ConsultantSandraGose-Example.xml @@ -0,0 +1,30 @@ +<Practitioner xmlns="http://hl7.org/fhir"> + <id value="UKCore-Practitioner-ConsultantSandraGose-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a practitioner who is a consultant</div> + </text> + <identifier> + <system value="https://fhir.hl7.org.uk/Id/gmc-number" /> + <value value="C12345678" /> + </identifier> + <name> + <family value="Gose" /> + <given value="Sandra" /> + <prefix value="Mrs" /> + </name> + <telecom> + <system value="phone" /> + <value value="0113 6323211" /> + <use value="work" /> + </telecom> + <address> + <line value="Admissions Department" /> + <line value="ST. JAMES'S UNIVERSITY HOSPITAL" /> + <line value="BECKETT STREET" /> + <city value="LEEDS" /> + <postalCode value="LS9 7TF" /> + <country value="ENGLAND" /> + </address> + <gender value="female" /> +</Practitioner> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Practitioner-DoctorPaulRastall-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Practitioner-DoctorPaulRastall-Example.xml new file mode 100644 index 0000000..0fa3412 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Practitioner-DoctorPaulRastall-Example.xml @@ -0,0 +1,31 @@ +<Practitioner xmlns="http://hl7.org/fhir"> + <id value="UKCore-Practitioner-DoctorPaulRastall-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a practitioner who is a doctor</div> + </text> + <identifier> + <system value="https://fhir.hl7.org.uk/Id/gmp-number" /> + <value value="G12345678" /> + </identifier> + <name> + <family value="Rastall" /> + <given value="Paul" /> + <prefix value="Dr" /> + </name> + <telecom> + <system value="phone" /> + <value value="0113 6323200" /> + <use value="work" /> + </telecom> + <address> + <use value="work" /> + <type value="both" /> + <line value="Chapel Main Practice" /> + <line value="22 Brightside Crescent" /> + <city value="Overtown" /> + <district value="West Yorkshire" /> + <postalCode value="LS10 4YU" /> + </address> + <gender value="male" /> +</Practitioner> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Practitioner-PharmacistJimmyChuck-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Practitioner-PharmacistJimmyChuck-Example.xml new file mode 100644 index 0000000..5c20f08 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Practitioner-PharmacistJimmyChuck-Example.xml @@ -0,0 +1,33 @@ +<Practitioner xmlns="http://hl7.org/fhir"> + <id value="UKCore-Practitioner-PharmacistJimmyChuck-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a pharmacist practitioner</div> + </text> + <identifier> + <system value="https://fhir.hl7.org.uk/Id/gphc-number" /> + <value value="2298676" /> + </identifier> + <identifier> + <system value="https://fhir.nhs.uk/Id/sds-user-id" /> + <value value="P12345678" /> + </identifier> + <name> + <family value="Chuck" /> + <given value="Jimmy" /> + <prefix value="Mr" /> + </name> + <telecom> + <system value="phone" /> + <value value="0113 6323222" /> + <use value="work" /> + </telecom> + <address> + <line value="INHOUSE PHARMACY" /> + <line value="ST. JAMES'S UNIVERSITY HOSPITAL" /> + <line value="BECKETT STREET" /> + <city value="LEEDS" /> + <postalCode value="LS9 7TF" /> + <country value="ENGLAND" /> + </address> +</Practitioner> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Practitioner-Sn-Photo-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Practitioner-Sn-Photo-Example.xml new file mode 100644 index 0000000..9885c0e --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Practitioner-Sn-Photo-Example.xml @@ -0,0 +1,9 @@ +<Practitioner xmlns="http://hl7.org/fhir"> + <id value="UKCore-Practitioner-Sn-Photo-Example" /> + <!-- **************snippet start************** --> + <photo> + <contentType value="image/png" /> + <data value="base64Binary" /> + </photo> + <!-- **************snippet end************** --> +</Practitioner> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Practitioner-Sn-Qualification-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Practitioner-Sn-Qualification-Example.xml new file mode 100644 index 0000000..74d46ef --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Practitioner-Sn-Qualification-Example.xml @@ -0,0 +1,25 @@ +<Practitioner xmlns="http://hl7.org/fhir"> + <id value="UKCore-Practitioner-Sn-Qualification-Example" /> + <!-- **************snippet start************** --> + <qualification> + <identifier> + <system value="http://example.org/UniversityIdentifier" /> + <value value="12345" /> + </identifier> + <code> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v2-0360/2.7" /> + <code value="BS" /> + <display value="Bachelor of Science" /> + </coding> + <text value="Bachelor of Science" /> + </code> + <period> + <start value="1995" /> + </period> + <issuer> + <display value="Example University" /> + </issuer> + </qualification> + <!-- **************snippet end************** --> +</Practitioner> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-PractitionerRole-GeneralPractitioner-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-PractitionerRole-GeneralPractitioner-Example.xml new file mode 100644 index 0000000..8d443b9 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-PractitionerRole-GeneralPractitioner-Example.xml @@ -0,0 +1,36 @@ +<PractitionerRole xmlns="http://hl7.org/fhir"> + <id value="UKCore-PractitionerRole-GeneralPractitioner-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a practitioner with the GP role</div> + </text> + <identifier> + <system value="https://fhir.nhs.uk/Id/sds-role-profile-id" /> + <value value="100334993514" /> + </identifier> + <practitioner> + <reference value="Practitioner/UKCore-Practitioner-DoctorPaulRastall-Example" /> + </practitioner> + <organization> + <reference value="Organization/UKCore-Organization-WhiteRoseMedicalCentre-Example" /> + </organization> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="62247001" /> + <display value="General practitioner" /> + </coding> + </code> + <specialty> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-PracticeSettingCode" /> + <code value="600" /> + <display value="General Medical Practice" /> + </coding> + </specialty> + <telecom> + <system value="phone" /> + <value value="0113 6323200" /> + <use value="work" /> + </telecom> +</PractitionerRole> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-PractitionerRole-Sn-Organization-Code-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-PractitionerRole-Sn-Organization-Code-Example.xml new file mode 100644 index 0000000..1762e50 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-PractitionerRole-Sn-Organization-Code-Example.xml @@ -0,0 +1,16 @@ +<PractitionerRole xmlns="http://hl7.org/fhir"> + <id value="UKCore-PractitionerRole-Sn-Organization-Code-Example" /> + <!-- **************snippet start************** --> + <identifier> + <system value="https://fhir.nhs.uk/Id/sds-role-profile-id" /> + <value value="100334993514" /> + </identifier> + <organization> + <identifier> + <system value="https://fhir.nhs.uk/Id/ods-organization-code" /> + <value value="RD8" /> + </identifier> + <display value="MILTON KEYNES UNIVERSITY HOSPITAL NHS FOUNDATION TRUST" /> + </organization> + <!-- **************snippet end************** --> +</PractitionerRole> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Procedure-ExaminationOfSkin-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Procedure-ExaminationOfSkin-Example.xml new file mode 100644 index 0000000..b2b959f --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Procedure-ExaminationOfSkin-Example.xml @@ -0,0 +1,19 @@ +<Procedure xmlns="http://hl7.org/fhir"> + <id value="UKCore-Procedure-ExaminationOfSkin-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a skin examination procedure</div> + </text> + <status value="completed" /> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="128004" /> + <display value="Hand microscope examination of skin" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <performedDateTime value="2019-12-10T13:00:00+00:00" /> +</Procedure> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Provenance-RARecordConsent-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Provenance-RARecordConsent-Example.xml new file mode 100644 index 0000000..9f2267a --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Provenance-RARecordConsent-Example.xml @@ -0,0 +1,29 @@ +<Provenance xmlns="http://hl7.org/fhir"> + <id value="UKCore-Provenance-RARecordConsent-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate provenance for a consent scenario</div> + </text> + <target> + <reference value="Consent/UKCore-Consent-ForInformationAccess-Example" /> + </target> + <recorded value="2022-03-01T10:05:33+00:00" /> + <agent> + <!--The actor who has some responsibility for the activity taking place--> + <role> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-SDSJobRoleName" /> + <code value="R0260" /> + <display value="General Medical Practitioner" /> + </coding> + </role> + <who> + <reference value="Practitioner/UKCore-Practitioner-PaulRastall-Example" /> + <display value="Dr Paul Rastall" /> + </who> + <onBehalfOf> + <reference value="Organization/https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization" /> + <display value="White Rose Medical Centre" /> + </onBehalfOf> + </agent> +</Provenance> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Questionnaire-EOLPlan-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Questionnaire-EOLPlan-Example.xml new file mode 100644 index 0000000..e5e5537 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Questionnaire-EOLPlan-Example.xml @@ -0,0 +1,96 @@ +<Questionnaire xmlns="http://hl7.org/fhir"> + <id value="UKCore-Questionnaire-EOLPlan-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate an end of life plan questionnaire</div> + </text> + <url value="https://example.com/base/Questionnaire/UKCore-Questionnaire-EOLPlan-Example" /> + <title value="End of Life Care Plan (Mock up)" /> + <status value="draft" /> + <experimental value="true" /> + <subjectType value="Patient" /> + <date value="2023-11-13T13:32:13+00:00" /> + <description value="This is an End of Life plan, purely for demonstration purposes" /> + <code> + <system value="http://snomed.info/sct" /> + <code value="861411000000103" /> + <display value="End of Life Care Document" /> + </code> + <item> + <linkId value="Q1" /> + <text value="Advanced Treatment Preferences" /> + <type value="group" /> + <enableBehavior value="any" /> + <item> + <linkId value="Q1.1" /> + <text value="Clinical Problems and Advised Interventions" /> + <type value="group" /> + <enableBehavior value="any" /> + <repeats value="true" /> + <item> + <linkId value="Q1.1g" /> + <extension url="http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"> + <valueCodeableConcept> + <coding> + <system value="http://hl7.org/fhir/questionnaire-item-control" /> + <code value="autocomplete" /> + <display value="Auto-complete" /> + </coding> + </valueCodeableConcept> + </extension> + <text value="ATP Problems" /> + <type value="choice" /> + <enableBehavior value="any" /> + <required value="true" /> + <answerValueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-ConditionCode" /> + </item> + </item> + <item> + <linkId value="Q1.2" /> + <text value="Anticipatory medicines/just in case box issued" /> + <type value="string" /> + <enableBehavior value="any" /> + <required value="true" /> + </item> + <item> + <linkId value="Q1.3" /> + <text value="Advance Decision to Refuse Treatment" /> + <type value="string" /> + <enableBehavior value="any" /> + <required value="true" /> + </item> + </item> + <item> + <linkId value="Q2" /> + <text value="Consent" /> + <type value="group" /> + <enableBehavior value="any" /> + <item> + <linkId value="Q2g" /> + <code> + <system value="http://snomed.info/sct" /> + <code value="887031000000108" /> + <display value="Consent for information sharing" /> + </code> + <text value="Consent for Information Sharing" /> + <type value="date" /> + </item> + </item> + <item> + <linkId value="Q3" /> + <text value="EOL Register" /> + <type value="group" /> + <enableBehavior value="any" /> + <repeats value="false" /> + <item> + <linkId value="Q3g" /> + <code> + <system value="http://snomed.info/sct" /> + <code value="526631000000108" /> + <display value="On end of life care register" /> + </code> + <text value="On End Of Life Register" /> + <type value="dateTime" /> + </item> + </item> +</Questionnaire> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Questionnaire-FitnessForWork-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Questionnaire-FitnessForWork-Example.xml new file mode 100644 index 0000000..80d201d --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Questionnaire-FitnessForWork-Example.xml @@ -0,0 +1,70 @@ +<Questionnaire xmlns="http://hl7.org/fhir"> + <id value="UKCore-Questionnaire-FitnessForWork-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a fitness for work form questions</div> + </text> + <url value="https://example.com/base/Questionnaire/UKCore-Questionnaire-FitnessForWork-Example" /> + <title value="Statement of Fitness for Work (Mock up)" /> + <status value="draft" /> + <experimental value="true" /> + <subjectType value="Patient" /> + <description value="This is based on Med 3 from DWP purely for demonstration purposes" /> + <code> + <system value="http://snomed.info/sct" /> + <code value="18381000000107" /> + <display value="Sickness certificates" /> + </code> + <item> + <linkId value="Q1" /> + <text value="Assessment Date" /> + <type value="date" /> + <required value="true" /> + </item> + <item> + <linkId value="Q2" /> + <text value="Condition(s)" /> + <type value="group" /> + <item> + <extension url="http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"> + <valueCodeableConcept> + <coding> + <system value="http://hl7.org/fhir/questionnaire-item-control" /> + <code value="autocomplete" /> + <display value="Auto-complete" /> + </coding> + </valueCodeableConcept> + </extension> + <linkId value="Q2g" /> + <text value="Condition (Coded)" /> + <type value="choice" /> + <repeats value="true" /> + <answerValueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-ConditionCode" /> + </item> + </item> + <item> + <linkId value="Q3" /> + <code> + <system value="http://snomed.info/sct" /> + <code value="365524007" /> + <display value="Fitness for work - finding" /> + </code> + <text value="I find you" /> + <type value="choice" /> + <required value="true" /> + <answerOption> + <valueCoding> + <system value="http://snomed.info/sct" /> + <code value="160910001" /> + <display value="Unfit for work" /> + </valueCoding> + </answerOption> + <answerOption> + <valueCoding> + <system value="http://snomed.info/sct" /> + <code value="225891002" /> + <display value="Fit for work with restrictions" /> + </valueCoding> + </answerOption> + </item> +</Questionnaire> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Questionnaire-InpatientSurvey-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Questionnaire-InpatientSurvey-Example.xml new file mode 100644 index 0000000..4e07a90 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Questionnaire-InpatientSurvey-Example.xml @@ -0,0 +1,63 @@ +<Questionnaire xmlns="http://hl7.org/fhir"> + <id value="UKCore-Questionnaire-InpatientSurvey-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate an in-patient questionnaire</div> + </text> + <url value="https://example.com/base/Questionnaire/UKCore-Questionnaire-InpatientSurvey-Example" /> + <title value="Inpatient Survey (Mock up)" /> + <status value="draft" /> + <experimental value="true" /> + <subjectType value="Patient" /> + <date value="2023-11-13T11:50:00+00:00" /> + <purpose value="A questionnaire used as part of a survey of new patient admissions to Acute Medicine. Purely for demonstration purposes." /> + <effectivePeriod> + <start value="2023-11-13T11:50:00+00:00" /> + <end value="2023-12-13T11:50:00+00:00" /> + </effectivePeriod> + <item> + <linkId value="1" /> + <text value="Do you have allergies?" /> + <type value="string" /> + </item> + <item> + <linkId value="2" /> + <text value="General questions" /> + <type value="group" /> + <item> + <linkId value="2.1" /> + <text value="What is your gender?" /> + <type value="string" /> + </item> + <item> + <linkId value="2.2" /> + <text value="What is your date of birth?" /> + <type value="date" /> + </item> + <item> + <linkId value="2.3" /> + <text value="What is your country of birth?" /> + <type value="string" /> + </item> + <item> + <linkId value="2.4" /> + <text value="What is your marital status?" /> + <type value="string" /> + </item> + </item> + <item> + <linkId value="3" /> + <text value="Intoxications" /> + <type value="group" /> + <item> + <linkId value="3.1" /> + <text value="Do you smoke?" /> + <type value="boolean" /> + </item> + <item> + <linkId value="3.2" /> + <text value="Do you drink alcohol?" /> + <type value="boolean" /> + </item> + </item> +</Questionnaire> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-QuestionnaireResponse-EOLPlan-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-QuestionnaireResponse-EOLPlan-Example.xml new file mode 100644 index 0000000..45a32d6 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-QuestionnaireResponse-EOLPlan-Example.xml @@ -0,0 +1,77 @@ +<QuestionnaireResponse xmlns="http://hl7.org/fhir"> + <id value="UKCore-QuestionnaireResponse-EOLPlan-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a questionnaire response for an end of life survey</div> + </text> + <questionnaire value="https://example.com/base/Questionnaire/UKCore-Questionnaire-EOLPlan-Example" /> + <status value="completed" /> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <encounter> + <reference value="Encounter/UKCore-Encounter-InpatientEncounter-Example" /> + </encounter> + <authored value="2023-11-14T08:07:00+00:00" /> + <author> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </author> + <source> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </source> + <item> + <linkId value="Q1" /> + <text value="Advanced Treatment Preferences" /> + <item> + <linkId value="Q1.1" /> + <text value="Clinical Problems and Advised Interventions" /> + <item> + <linkId value="Q1.1g" /> + <text value="ATP Problems" /> + <answer> + <valueCoding> + <system value="http://snomed.info/sct" /> + <code value="95417003" /> + <display value="Primary fibromyalgia syndrome" /> + </valueCoding> + </answer> + </item> + </item> + <item> + <linkId value="Q1.2" /> + <text value="Anticipatory medicines/just in case box issued" /> + <answer> + <valueString value="Yes" /> + </answer> + </item> + <item> + <linkId value="Q1.3" /> + <text value="Advance Decision to Refuse Treatment" /> + <answer> + <valueString value="Yes" /> + </answer> + </item> + </item> + <item> + <linkId value="Q2" /> + <text value="Consent" /> + <item> + <linkId value="Q2g" /> + <text value="Consent for Information Sharing" /> + <answer> + <valueDate value="2023-11-13" /> + </answer> + </item> + </item> + <item> + <linkId value="Q3" /> + <text value="EOL Register" /> + <item> + <linkId value="Q3g" /> + <text value="On End Of Life Register" /> + <answer> + <valueDateTime value="2023-11-13T16:07:00+00:00" /> + </answer> + </item> + </item> +</QuestionnaireResponse> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-QuestionnaireResponse-FitnessForWork-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-QuestionnaireResponse-FitnessForWork-Example.xml new file mode 100644 index 0000000..ded1f14 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-QuestionnaireResponse-FitnessForWork-Example.xml @@ -0,0 +1,55 @@ +<QuestionnaireResponse xmlns="http://hl7.org/fhir"> + <id value="UKCore-QuestionnaireResponse-FitnessForWork-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a questionnaire response for a fitness to work form</div> + </text> + <questionnaire value="https://example.com/base/Questionnaire/UKCore-Questionnaire-FitnessForWork-Example" /> + <status value="completed" /> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <encounter> + <reference value="Encounter/UKCore-Encounter-InpatientEncounter-Example" /> + </encounter> + <authored value="2023-11-13T16:00:00+00:00" /> + <author> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </author> + <source> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </source> + <item> + <linkId value="Q1" /> + <text value="Assessment Date" /> + <answer> + <valueDate value="2023-11-13" /> + </answer> + </item> + <item> + <linkId value="Q2" /> + <text value="Condition(s)" /> + <item> + <linkId value="Q2g" /> + <text value="Condition (Coded)" /> + <answer> + <valueCoding> + <system value="http://snomed.info/sct" /> + <code value="203082005" /> + <display value="Fibromyalgia" /> + </valueCoding> + </answer> + </item> + </item> + <item> + <linkId value="Q3" /> + <text value="I find you" /> + <answer> + <valueCoding> + <system value="http://snomed.info/sct" /> + <code value="225891002" /> + <display value="Fit for work with restrictions" /> + </valueCoding> + </answer> + </item> +</QuestionnaireResponse> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-QuestionnaireResponse-InpatientSurvey-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-QuestionnaireResponse-InpatientSurvey-Example.xml new file mode 100644 index 0000000..53892c0 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-QuestionnaireResponse-InpatientSurvey-Example.xml @@ -0,0 +1,85 @@ +<QuestionnaireResponse xmlns="http://hl7.org/fhir"> + <id value="UKCore-QuestionnaireResponse-InpatientSurvey-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a questionnaire response for an in-patient survey</div> + </text> + <identifier> + <value value="6d47d8c4-2f05-4dbb-93f8-6863e6d2975b" /> + <assigner> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </assigner> + </identifier> + <questionnaire value="https://example.com/base/Questionnaire/UKCore-Questionnaire-InpatientSurvey-Example" /> + <status value="completed" /> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <encounter> + <reference value="Encounter/UKCore-Encounter-InpatientEncounter-Example" /> + </encounter> + <authored value="2021-03-18T00:00:00+00:00" /> + <author> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </author> + <source> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </source> + <item> + <linkId value="1" /> + <text value="Do you have allergies?" /> + <answer> + <valueString value="I am allergic to amoxicillin." /> + </answer> + </item> + <item> + <linkId value="2" /> + <text value="General questions" /> + <item> + <linkId value="2.1" /> + <text value="What is your gender?" /> + <answer> + <valueString value="male" /> + </answer> + </item> + <item> + <linkId value="2.2" /> + <text value="What is your date of birth?" /> + <answer> + <valueDate value="1970-09-11" /> + </answer> + </item> + <item> + <linkId value="2.3" /> + <text value="What is your country of birth?" /> + <answer> + <valueString value="The United Kingdom" /> + </answer> + </item> + <item> + <linkId value="2.4" /> + <text value="What is your marital status?" /> + <answer> + <valueString value="married" /> + </answer> + </item> + </item> + <item> + <linkId value="3" /> + <text value="Intoxications" /> + <item> + <linkId value="3.1" /> + <text value="Do you smoke?" /> + <answer> + <valueBoolean value="true" /> + </answer> + </item> + <item> + <linkId value="3.2" /> + <text value="Do you drink alcohol?" /> + <answer> + <valueBoolean value="false" /> + </answer> + </item> + </item> +</QuestionnaireResponse> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-RelatedPerson-JoySmith-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-RelatedPerson-JoySmith-Example.xml new file mode 100644 index 0000000..71f6b75 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-RelatedPerson-JoySmith-Example.xml @@ -0,0 +1,58 @@ +<RelatedPerson xmlns="http://hl7.org/fhir"> + <id value="UKCore-RelatedPerson-JoySmith-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a person who is related to the patient</div> + </text> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ContactPreference"> + <extension url="PreferredContactMethod"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-PreferredContactMethod" /> + <code value="3" /> + <display value="Telephone" /> + </coding> + </valueCodeableConcept> + </extension> + <extension url="PreferredContactTimes"> + <valueTiming> + <repeat> + <frequency value="1" /> + <period value="1" /> + <periodUnit value="d" /> + <dayOfWeek value="mon" /> + <dayOfWeek value="wed" /> + <dayOfWeek value="fri" /> + <when value="AFT" /> + </repeat> + </valueTiming> + </extension> + <extension url="PreferredWrittenCommunicationFormat"> + <valueCodeableConcept> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-PreferredWrittenCommunicationFormat" /> + <code value="11" /> + <display value="Large print" /> + </coding> + </valueCodeableConcept> + </extension> + </extension> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CopyCorrespondenceIndicator"> + <valueBoolean value="true" /> + </extension> + <patient> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </patient> + <relationship> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-RoleCode" /> + <code value="WIFE" /> + <display value="wife" /> + </coding> + </relationship> + <name> + <use value="official" /> + <family value="SMITH" /> + <given value="Joy" /> + </name> +</RelatedPerson> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-RequestGroup-Ciprofloxacin-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-RequestGroup-Ciprofloxacin-Example.xml new file mode 100644 index 0000000..cba09e1 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-RequestGroup-Ciprofloxacin-Example.xml @@ -0,0 +1,45 @@ +<RequestGroup xmlns="http://hl7.org/fhir"> + <id value="UKCore-RequestGroup-Ciprofloxacin-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the options for Ciprofloxacin when prescribing multiple routes</div> + </text> + <status value="completed" /> + <intent value="order" /> + <priority value="routine" /> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="33633005" /> + <display value="Prescription of drug" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <authoredOn value="2023-06-15T15:00:00.000Z" /> + <author> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </author> + <action> + <type> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/action-type" /> + <code value="create" /> + </coding> + </type> + <selectionBehavior value="any" /> + <action id="UKCore-MedicationRequest-CiprofloxacinOral-Example"> + <description value="Ciprofloxacin 500mg, twice daily orally." /> + <resource> + <reference value="MedicationRequest/UKCore-MedicationRequest-CiprofloxacinOral-Example" /> + </resource> + </action> + <action id="UKCore-MedicationRequest-CiprofloxacinIV-Example"> + <description value="Ciprofloxacin 400mg, twice daily as IV." /> + <resource> + <reference value="MedicationRequest/UKCore-MedicationRequest-CiprofloxacinIV-Example" /> + </resource> + </action> + </action> +</RequestGroup> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-RequestGroup-MultipleAntibiotics-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-RequestGroup-MultipleAntibiotics-Example.xml new file mode 100644 index 0000000..714c9b3 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-RequestGroup-MultipleAntibiotics-Example.xml @@ -0,0 +1,54 @@ +<RequestGroup xmlns="http://hl7.org/fhir"> + <id value="UKCore-RequestGroup-MultipleAntibiotics-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the options for multiple antibiotics when prescribing multiple routes</div> + </text> + <status value="completed" /> + <intent value="order" /> + <priority value="routine" /> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="33633005" /> + <display value="Prescription of drug" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <authoredOn value="2023-06-15T15:00:00.000Z" /> + <author> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </author> + <note> + <text value="The preferred option is Amoxicillin 500mg capsules, three times a day." /> + </note> + <action> + <type> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/action-type" /> + <code value="create" /> + </coding> + </type> + <selectionBehavior value="at-most-one" /> + <action id="UKCore-MedicationRequest-Amoxicillin-Example"> + <description value="Amoxicillin 500mg capsules, three times a day. This is the preferred option." /> + <resource> + <reference value="MedicationRequest/UKCore-MedicationRequest-Amoxicillin-Example" /> + </resource> + </action> + <action id="UKCore-MedicationRequest-Clarithromycin-Example"> + <description value="Clarithromycin 500mg tablet, three times a day." /> + <resource> + <reference value="MedicationRequest/UKCore-MedicationRequest-Clarithromycin-Example" /> + </resource> + </action> + <action id="UKCore-MedicationRequest-Doxycycline-Example"> + <description value="Doxycycline 200mg stat (now), followed by 100mg daily." /> + <resource> + <reference value="MedicationRequest/UKCore-MedicationRequest-Doxycycline-Example" /> + </resource> + </action> + </action> +</RequestGroup> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-RequestGroup-Paracetamol-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-RequestGroup-Paracetamol-Example.xml new file mode 100644 index 0000000..7316c05 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-RequestGroup-Paracetamol-Example.xml @@ -0,0 +1,45 @@ +<RequestGroup xmlns="http://hl7.org/fhir"> + <id value="UKCore-RequestGroup-Paracetamol-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate the options for Paracetamol when prescribing multiple routes</div> + </text> + <status value="completed" /> + <intent value="order" /> + <priority value="routine" /> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="33633005" /> + <display value="Prescription of drug" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <authoredOn value="2023-06-15T15:00:00.000Z" /> + <author> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </author> + <action> + <type> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/action-type" /> + <code value="create" /> + </coding> + </type> + <selectionBehavior value="at-most-one" /> + <action id="UKCore-MedicationRequest-ParacetamolOral-Example"> + <description value="Paracetamol 500mg, four times a day orally." /> + <resource> + <reference value="MedicationRequest/UKCore-MedicationRequest-ParacetamolOral-Example" /> + </resource> + </action> + <action id="UKCore-MedicationRequest-ParacetamolIV-Example"> + <description value="Paracetamol 500mg, four times a day via IV." /> + <resource> + <reference value="MedicationRequest/UKCore-MedicationRequest-ParacetamolIV-Example" /> + </resource> + </action> + </action> +</RequestGroup> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Schedule-Immunization-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Schedule-Immunization-Example.xml new file mode 100644 index 0000000..89a5ad9 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Schedule-Immunization-Example.xml @@ -0,0 +1,42 @@ +<Schedule xmlns="http://hl7.org/fhir"> + <id value="UKCore-Schedule-Immunization-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a schedule for immunization appointments</div> + </text> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="4c8b068a-d610-427f-a508-6b7f90d47bf2" /> + </identifier> + <active value="true" /> + <serviceCategory> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/service-category" /> + <code value="17" /> + <display value="General Practice" /> + </coding> + </serviceCategory> + <serviceType> + <coding> + <system value="http://snomed.info/sct" /> + <code value="708190004" /> + <display value="Immunology service" /> + </coding> + </serviceType> + <specialty> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-PracticeSettingCode" /> + <code value="313" /> + <display value="Clinical Immunology" /> + </coding> + </specialty> + <actor> + <reference value="Location/UKCore-Location-GeneralPracticeNurseClinic-Example" /> + <display value="White Rose GP Practice Nurse Clinic" /> + </actor> + <planningHorizon> + <start value="2021-10-13T11:20:00+07:00" /> + <end value="2021-10-13T11:50:00+07:00" /> + </planningHorizon> + <comment value="The slots attached to this schedule should be specialized to cover immunizations within the clinic" /> +</Schedule> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-ServiceRequest-CTChestScan-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-ServiceRequest-CTChestScan-Example.xml new file mode 100644 index 0000000..c5fd447 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-ServiceRequest-CTChestScan-Example.xml @@ -0,0 +1,39 @@ +<ServiceRequest xmlns="http://hl7.org/fhir"> + <id value="UKCore-ServiceRequest-CTChestScan-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a request for a CT chest scan due to a suspected blood clot</div> + </text> + <status value="active" /> + <intent value="order" /> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="169069000" /> + <display value="Computed tomography of chest" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <occurrencePeriod> + <start value="2024-04-12T09:38:00+00:00" /> + </occurrencePeriod> + <authoredOn value="2024-04-12T09:38:00+00:00" /> + <requester> + <reference value="Practitioner/UKCore-Practitioner-DoctorPaulRastall-Example" /> + </requester> + <performer> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </performer> + <locationReference> + <reference value="Location/UKCore-Location-HospitalSJUH-Example" /> + </locationReference> + <reasonCode> + <coding> + <system value="http://snomed.info/sct" /> + <code value="59282003" /> + <display value="Pulmonary embolism" /> + </coding> + </reasonCode> +</ServiceRequest> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-ServiceRequest-ColonoscopyRequest-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-ServiceRequest-ColonoscopyRequest-Example.xml new file mode 100644 index 0000000..55a696c --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-ServiceRequest-ColonoscopyRequest-Example.xml @@ -0,0 +1,65 @@ +<ServiceRequest xmlns="http://hl7.org/fhir"> + <id value="UKCore-ServiceRequest-ColonoscopyRequest-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a GP referral for a colonoscopy</div> + </text> + <!--The source of the service request.--> + <!-- ***************extension start*************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-SourceOfServiceRequest"> + <valueCodeableConcept> + <coding> + <system value="http://snomed.info/sct" /> + <code value="108161000000109" /> + <display value="Referred by general practitioner" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- **************extension end ****************** --> + <status value="active" /> + <intent value="order" /> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="73761001" /> + <display value="Colonoscopy" /> + </coding> + <text value="Colonoscopy requested" /> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <encounter> + <reference value="Encounter/UKCore-Encounter-InpatientEncounter-Example" /> + </encounter> + <occurrencePeriod> + <start value="2021-10-13T16:20:27+07:00" /> + </occurrencePeriod> + <authoredOn value="2021-10-13T16:28:00+07:00" /> + <requester> + <reference value="Practitioner/UKCore-Practitioner-DoctorPaulRastall-Example" /> + </requester> + <performer> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </performer> + <locationReference> + <reference value="Location/UKCore-Location-HospitalSJUH-Example" /> + </locationReference> + <reasonCode> + <coding> + <system value="http://snomed.info/sct" /> + <code value="271835004" /> + <display value="Abdominal distension, gaseous" /> + </coding> + <text value="Swollen abdomen" /> + </reasonCode> + <reasonReference> + <reference value="DiagnosticReport/UKCore-DiagnosticReport-DiagnosticStudiesReport-Example" /> + <display value="Diagnostic report on the Blood specimen warrants a colonoscopy to investigate this further" /> + </reasonReference> + <supportingInfo> + <reference value="Observation/UKCore-Observation-WhiteCellCount-Example" /> + <display value="White cell count" /> + </supportingInfo> + <patientInstruction value="ADVICE GIVEN: If there are any new symptoms, or if the condition gets worse, changes or you have any other concerns, contact your GP." /> +</ServiceRequest> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-ServiceRequest-ECG-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-ServiceRequest-ECG-Example.xml new file mode 100644 index 0000000..8572db7 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-ServiceRequest-ECG-Example.xml @@ -0,0 +1,39 @@ +<ServiceRequest xmlns="http://hl7.org/fhir"> + <id value="UKCore-ServiceRequest-ECG-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate service request for an ECG due to an elevated heart rate</div> + </text> + <status value="active" /> + <intent value="order" /> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="268400002" /> + <display value="12 lead ECG" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <occurrencePeriod> + <start value="2023-10-13T16:20:27+07:00" /> + </occurrencePeriod> + <authoredOn value="2023-10-13T16:28:00+07:00" /> + <requester> + <reference value="Practitioner/UKCore-Practitioner-DoctorPaulRastall-Example" /> + </requester> + <performer> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </performer> + <locationReference> + <reference value="Location/UKCore-Location-HospitalSJUH-Example" /> + </locationReference> + <reasonCode> + <coding> + <system value="http://snomed.info/sct" /> + <code value="11092001" /> + <display value="Sinus tachycardia" /> + </coding> + </reasonCode> +</ServiceRequest> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-ServiceRequest-HipReplacement-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-ServiceRequest-HipReplacement-Example.xml new file mode 100644 index 0000000..3ff3889 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-ServiceRequest-HipReplacement-Example.xml @@ -0,0 +1,41 @@ +<ServiceRequest xmlns="http://hl7.org/fhir"> + <id value="UKCore-ServiceRequest-HipReplacement-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate annual review request triggered automatically</div> + </text> + <!--The source of the service request.--> + <!-- ***************extension start*************** --> + <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-SourceOfServiceRequest"> + <valueCodeableConcept> + <coding> + <system value="http://snomed.info/sct" /> + <code value="109721000000108" /> + <display value="Referred by trigger criteria" /> + </coding> + </valueCodeableConcept> + </extension> + <!-- **************extension end ****************** --> + <status value="active" /> + <intent value="order" /> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="858611000000102" /> + <display value="Metal-on-metal hip replacement annual review" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <authoredOn value="2023-05-18T17:50:00+07:00" /> + <requester> + <reference value="Practitioner/UKCore-Practitioner-DoctorPaulRastall-Example" /> + </requester> + <performer> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </performer> + <locationReference> + <reference value="Location/UKCore-Location-HospitalSJUH-Example" /> + </locationReference> +</ServiceRequest> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-ServiceRequest-Lab-CReactiveProtein-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-ServiceRequest-Lab-CReactiveProtein-Example.xml new file mode 100644 index 0000000..8dfb42d --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-ServiceRequest-Lab-CReactiveProtein-Example.xml @@ -0,0 +1,52 @@ +<ServiceRequest xmlns="http://hl7.org/fhir"> + <id value="UKCore-ServiceRequest-Lab-CReactiveProtein-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a request for a lab test</div> + </text> + <status value="active" /> + <intent value="order" /> + <category> + <coding> + <system value="http://snomed.info/sct" /> + <code value="108252007" /> + <display value="Laboratory procedure" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="135842001" /> + <display value="Serum C reactive protein level" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <authoredOn value="2022-05-23T12:14:00+00:00" /> + <requester> + <reference value="Practitioner/UKCore-Practitioner-PharmacistJimmyChuck-Example" /> + </requester> + <performer> + <reference value="Organization/UKCore-Organization-LeedsTeachingHospital-Example" /> + </performer> + <locationCode> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v3-RoleCode" /> + <code value="OUTLAB" /> + <display value="outpatient laboratory" /> + </coding> + </locationCode> + <reasonCode> + <coding> + <system value="http://snomed.info/sct" /> + <code value="298167002" /> + <display value="Finger joint inflamed" /> + </coding> + </reasonCode> + <reasonReference> + <reference value="Observation/UKCore-Observation-FingerJointInflamed-Example" /> + <display value="Observation of finger joint inflammation." /> + </reasonReference> + <patientInstruction value="ADVICE GIVEN: If there are any new symptoms, or if the condition gets worse, changes or you have any other concerns, contact your GP." /> +</ServiceRequest> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Slot-AvailableWalkInVisit-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Slot-AvailableWalkInVisit-Example.xml new file mode 100644 index 0000000..e224422 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Slot-AvailableWalkInVisit-Example.xml @@ -0,0 +1,46 @@ +<Slot xmlns="http://hl7.org/fhir"> + <id value="UKCore-Slot-AvailableWalkInVisit-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a free / available slot for a walk in vaccination</div> + </text> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="4cc18add-5160-49bb-9995-0d0759751f8d" /> + </identifier> + <serviceCategory> + <coding> + <system value="http://snomed.info/sct" /> + <code value="788007007" /> + <display value="General practice service" /> + </coding> + </serviceCategory> + <serviceType> + <coding> + <system value="http://snomed.info/sct" /> + <code value="708190004" /> + <display value="Immunology service" /> + </coding> + </serviceType> + <specialty> + <coding> + <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-PracticeSettingCode" /> + <code value="313" /> + <display value="Clinical Immunology" /> + </coding> + </specialty> + <appointmentType> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/v2-0276" /> + <code value="WALKIN" /> + <display value="A previously unscheduled walk-in visit" /> + </coding> + </appointmentType> + <schedule> + <reference value="Schedule/UKCore-Schedule-Immunization-Example" /> + </schedule> + <status value="free" /> + <start value="2022-12-20T11:20:00+07:00" /> + <end value="2022-12-20T11:40:00+07:00" /> + <comment value="Assessments should be performed before requesting appointments in this slot." /> +</Slot> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Specimen-BloodSpecimen-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Specimen-BloodSpecimen-Example.xml new file mode 100644 index 0000000..bec89aa --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Specimen-BloodSpecimen-Example.xml @@ -0,0 +1,39 @@ +<Specimen xmlns="http://hl7.org/fhir"> + <id value="UKCore-Specimen-BloodSpecimen-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a blood specimen that was taken by a finger prick</div> + </text> + <status value="available" /> + <type> + <coding> + <system value="http://snomed.info/sct" /> + <code value="119297000" /> + <display value="Blood specimen" /> + </coding> + </type> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <receivedTime value="2016-02-05T11:10:00Z" /> + <collection> + <collector> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </collector> + <collectedDateTime value="2016-02-09T16:00:00Z" /> + <method> + <coding> + <system value="http://snomed.info/sct" /> + <code value="278450005" /> + <display value="Finger-prick sampling (procedure)" /> + </coding> + </method> + <bodySite> + <coding> + <system value="http://snomed.info/sct" /> + <code value="182266005" /> + <display value="Tip of index finger" /> + </coding> + </bodySite> + </collection> +</Specimen> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Specimen-UrineSpecimen-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Specimen-UrineSpecimen-Example.xml new file mode 100644 index 0000000..1766729 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Specimen-UrineSpecimen-Example.xml @@ -0,0 +1,31 @@ +<Specimen xmlns="http://hl7.org/fhir"> + <id value="UKCore-Specimen-UrineSpecimen-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a urine sample</div> + </text> + <status value="available" /> + <type> + <coding> + <system value="http://snomed.info/sct" /> + <code value="122575003" /> + <display value="Urine specimen" /> + </coding> + </type> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <receivedTime value="2023-05-10T11:56:00Z" /> + <collection> + <collector> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + </collector> + <method> + <coding> + <system value="http://snomed.info/sct" /> + <code value="73416001" /> + <display value="Urine specimen collection, clean catch" /> + </coding> + </method> + </collection> +</Specimen> diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-Task-Colonoscopy-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-Task-Colonoscopy-Example.xml new file mode 100644 index 0000000..1927a13 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-Task-Colonoscopy-Example.xml @@ -0,0 +1,69 @@ +<Task xmlns="http://hl7.org/fhir"> + <id value="UKCore-Task-Colonoscopy-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate a task for a colonoscopy request</div> + </text> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="b269d1d7-1acf-47bb-8b3c-e38b583d9a07" /> + </identifier> + <status value="in-progress" /> + <intent value="order" /> + <priority value="routine" /> + <code> + <coding> + <system value="http://hl7.org/fhir/CodeSystem/task-code" /> + <code value="fulfill" /> + <display value="Fulfill the focal request" /> + </coding> + </code> + <focus> + <reference value="ServiceRequest/UKCore-ServiceRequest-ColonoscopyRequest-Example" /> + <display value="Colonoscopy Request" /> + </focus> + <for> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + <display value="Richard Smith" /> + </for> + <encounter> + <reference value="Encounter/UKCore-Encounter-InpatientEncounter-Example" /> + <display value="In-Patient Encounter" /> + </encounter> + <executionPeriod> + <start value="2021-10-13T16:20:27+07:00" /> + <end value="2021-10-13T18:20:27+07:00" /> + </executionPeriod> + <authoredOn value="2021-10-13T16:20:27+07:00" /> + <lastModified value="2021-10-13T16:20:27+07:00" /> + <requester> + <reference value="Practitioner/UKCore-Practitioner-DoctorPaulRastall-Example" /> + <display value="Dr Paul Rastall" /> + </requester> + <performerType> + <coding> + <system value="http://snomed.info/sct" /> + <code value="71838004" /> + <display value="Gastroenterologist" /> + </coding> + <text value="Performer" /> + </performerType> + <owner> + <reference value="Practitioner/UKCore-Practitioner-ConsultantSandraGose-Example" /> + <display value="Dr Sandra Gose" /> + </owner> + <restriction> + <repetitions value="1" /> + <period> + <end value="2021-10-13T18:30:00+07:00" /> + </period> + </restriction> + <output> + <type> + <text value="Colonoscopy Appointment" /> + </type> + <valueReference> + <reference value="ServiceRequest/UKCore-ServiceRequest-ColonoscopyRequest-Example" /> + </valueReference> + </output> +</Task> \ No newline at end of file diff --git a/FHIRValidationAction/test/Examples/examples/UKCore-VitalSigns-Observation-OxygenSaturation-Example.xml b/FHIRValidationAction/test/Examples/examples/UKCore-VitalSigns-Observation-OxygenSaturation-Example.xml new file mode 100644 index 0000000..cc06af5 --- /dev/null +++ b/FHIRValidationAction/test/Examples/examples/UKCore-VitalSigns-Observation-OxygenSaturation-Example.xml @@ -0,0 +1,44 @@ +<Observation xmlns="http://hl7.org/fhir"> + <id value="UKCore-VitalSigns-Observation-OxygenSaturation-Example" /> + <text> + <status value="additional" /> + <div xmlns="http://www.w3.org/1999/xhtml">An example to illustrate an oxygen saturation vital sign</div> + </text> + <identifier> + <system value="https://tools.ietf.org/html/rfc4122" /> + <value value="f0297f56-48a4-43da-8e54-58146ef36b51" /> + </identifier> + <status value="final" /> + <category> + <coding> + <system value="http://terminology.hl7.org/CodeSystem/observation-category" /> + <code value="vital-signs" /> + <display value="Vital Signs" /> + </coding> + </category> + <code> + <coding> + <system value="http://snomed.info/sct" /> + <code value="103228002" /> + <display value="Hemoglobin saturation with oxygen" /> + </coding> + <coding> + <system value="http://loinc.org" /> + <code value="2708-6" /> + <display value="Oxygen saturation in Arterial blood" /> + </coding> + </code> + <subject> + <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> + </subject> + <effectiveDateTime value="2018-10-04T14:17:59+01:00" /> + <performer> + <reference value="Practitioner/UKCore-Practitioner-DoctorPaulRastall-Example" /> + </performer> + <valueQuantity> + <value value="95" /> + <unit value="percent" /> + <system value="http://unitsofmeasure.org" /> + <code value="%" /> + </valueQuantity> +</Observation> \ No newline at end of file diff --git a/FHIRValidationAction/test/package.json b/FHIRValidationAction/test/package.json new file mode 100644 index 0000000..26cc5cf --- /dev/null +++ b/FHIRValidationAction/test/package.json @@ -0,0 +1,12 @@ +{ + "name": "UKCore.R4.STU.02.00.00", + "version": "2.0.0", + "description": "UK Core FHIR profiles and Assets", + "author": "NHS Digital", + "fhirVersions": [ + "6.0.0" + ], + "dependencies": { + "hl7.fhir.r6.core": "2.0.0" + } +} \ No newline at end of file diff --git a/IOPS-Validation.iml b/IOPS-Validation.iml deleted file mode 100644 index 8021953..0000000 --- a/IOPS-Validation.iml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<module type="WEB_MODULE" version="4"> - <component name="NewModuleRootManager" inherit-compiler-output="true"> - <exclude-output /> - <content url="file://$MODULE_DIR$" /> - <orderEntry type="inheritedJdk" /> - <orderEntry type="sourceFolder" forTests="false" /> - </component> -</module> \ No newline at end of file diff --git a/gitrepository/Patient/patient-pds.xml b/gitrepository/Patient/patient-pds.xml deleted file mode 100644 index ceeae9d..0000000 --- a/gitrepository/Patient/patient-pds.xml +++ /dev/null @@ -1,310 +0,0 @@ -<Patient xmlns="http://hl7.org/fhir"> - <id value="6aa13139-201b-4a54-9608-b49331a46d90"> - </id> - <meta> - <versionId value="2"> - </versionId> - <security> - <system value="http://terminology.hl7.org/CodeSystem/v3-Confidentiality"> - </system> - <code value="U"> - </code> - <display value="unrestricted"> - </display> - </security> - </meta> - <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NominatedPharmacy"> - <valueReference> - <identifier> - <system value="https://fhir.nhs.uk/Id/ods-organization-code"> - </system> - <value value="Y12345"> - </value> - </identifier> - </valueReference> - </extension> - <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-PreferredDispenserOrganization"> - <valueReference> - <identifier> - <system value="https://fhir.nhs.uk/Id/ods-organization-code"> - </system> - <value value="Y23456"> - </value> - </identifier> - </valueReference> - </extension> - <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicalApplianceSupplier"> - <valueReference> - <identifier> - <system value="https://fhir.nhs.uk/Id/ods-organization-code"> - </system> - <value value="Y34567"> - </value> - </identifier> - </valueReference> - </extension> - <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeathNotificationStatus"> - <extension url="deathNotificationStatus"> - <valueCodeableConcept> - <coding> - <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-DeathNotificationStatus"> - </system> - <version value="1.0.0"> - </version> - <code value="2"> - </code> - <display value="Formal - death notice received from Registrar of Deaths"> - </display> - </coding> - </valueCodeableConcept> - </extension> - <extension url="systemEffectiveDate"> - <valueDateTime value="2010-10-22T00:00:00+00:00"> - </valueDateTime> - </extension> - </extension> - <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSCommunication"> - <extension url="language"> - <valueCodeableConcept> - <coding> - <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-HumanLanguage"> - </system> - <version value="1.0.0"> - </version> - <code value="fr"> - </code> - <display value="French"> - </display> - </coding> - </valueCodeableConcept> - </extension> - <extension url="interpreterRequired"> - <valueBoolean value="true"> - </valueBoolean> - </extension> - </extension> - <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ContactPreference"> - <extension url="PreferredWrittenCommunicationFormat"> - <valueCodeableConcept> - <coding> - <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-PreferredWrittenCommunicationFormat"> - </system> - <code value="12"> - </code> - <display value="Braille"> - </display> - </coding> - </valueCodeableConcept> - </extension> - <extension url="PreferredContactMethod"> - <valueCodeableConcept> - <coding> - <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-PreferredContactMethod"> - </system> - <code value="1"> - </code> - <display value="Letter"> - </display> - </coding> - </valueCodeableConcept> - </extension> - <extension url="PreferredContactTimes"> - <valueString value="Not after 7pm"> - </valueString> - </extension> - </extension> - <extension url="http://hl7.org/fhir/StructureDefinition/patient-birthPlace"> - <valueAddress> - <city value="Manchester"> - </city> - <district value="Greater Manchester"> - </district> - <country value="GBR"> - </country> - </valueAddress> - </extension> - <identifier> - <system value="https://fhir.nhs.uk/Id/nhs-number"> - </system> - <value value="9000000009"> - </value> - </identifier> - <name id="123"> - <use value="usual"> - </use> - <family value="Smith"> - </family> - <given value="Jane"> - </given> - <prefix value="Mrs"> - </prefix> - <suffix value="MBE"> - </suffix> - <period> - <start value="2020-01-01"> - </start> - <end value="2021-12-31"> - </end> - </period> - </name> - <telecom id="789"> - <system value="phone"> - </system> - <value value="01632960587"> - </value> - <use value="home"> - </use> - <period> - <start value="2020-01-01"> - </start> - <end value="2021-12-31"> - </end> - </period> - </telecom> - <telecom id="OC789"> - <system value="other"> - <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-OtherContactSystem"> - <valueCoding> - <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-OtherContactSystem"> - </system> - <code value="textphone"> - </code> - <display value="Minicom (Textphone)"> - </display> - </valueCoding> - </extension> - </system> - <value value="01632960587"> - </value> - <use value="home"> - </use> - <period> - <start value="2020-01-01"> - </start> - <end value="2021-12-31"> - </end> - </period> - </telecom> - <gender value="female"> - </gender> - <birthDate value="2010-10-22"> - </birthDate> - <deceasedDateTime value="2010-10-22T00:00:00+00:00"> - </deceasedDateTime> - <address id="456"> - <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-AddressKey"> - <extension url="type"> - <valueCoding> - <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-AddressKeyType"> - </system> - <code value="PAF"> - </code> - </valueCoding> - </extension> - <extension url="value"> - <valueString value="12345678"> - </valueString> - </extension> - </extension> - <use value="home"> - </use> - <line value="1 Trevelyan Square"> - </line> - <line value="Boar Lane"> - </line> - <line value="City Centre"> - </line> - <line value="Leeds"> - </line> - <line value="West Yorkshire"> - </line> - <postalCode value="LS1 6AE"> - </postalCode> - <period> - <start value="2020-01-01"> - </start> - <end value="2021-12-31"> - </end> - </period> - </address> - <address id="T456"> - <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-AddressKey"> - <extension url="type"> - <valueCoding> - <system value="https://fhir.hl7.org.uk/CodeSystem/UKCore-AddressKeyType"> - </system> - <code value="PAF"> - </code> - </valueCoding> - </extension> - <extension url="value"> - <valueString value="12345678"> - </valueString> - </extension> - </extension> - <use value="temp"> - </use> - <text value="Student Accommodation"> - </text> - <line value="1 Trevelyan Square"> - </line> - <line value="Boar Lane"> - </line> - <line value="City Centre"> - </line> - <line value="Leeds"> - </line> - <line value="West Yorkshire"> - </line> - <postalCode value="LS1 6AE"> - </postalCode> - <period> - <start value="2020-01-01"> - </start> - <end value="2021-12-31"> - </end> - </period> - </address> - <multipleBirthInteger value="1"> - </multipleBirthInteger> - <contact id="C123"> - <relationship> - <coding> - <system value="http://terminology.hl7.org/CodeSystem/v2-0131"> - </system> - <code value="C"> - </code> - <display value="Emergency Contact"> - </display> - </coding> - </relationship> - <telecom> - <system value="phone"> - </system> - <value value="01632960587"> - </value> - </telecom> - <period> - <start value="2020-01-01"> - </start> - <end value="2021-12-31"> - </end> - </period> - </contact> - <generalPractitioner id="254406A3"> - <type value="Organization"> - </type> - <identifier> - <system value="https://fhir.nhs.uk/Id/ods-organization-code"> - </system> - <value value="Y12345"> - </value> - <period> - <start value="2020-01-01"> - </start> - <end value="2021-12-31"> - </end> - </period> - </identifier> - </generalPractitioner> -</Patient> diff --git a/gitrepository/Patient/patient.json b/gitrepository/Patient/patient.json deleted file mode 100644 index f06375b..0000000 --- a/gitrepository/Patient/patient.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "resourceType": "Patient", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9000000009" - } - ], - "name": [ - { - "given": [ - "Jane" - ], - "family": "Smith", - "prefix": [ - "Mrs" - ], - "suffix": [ - "MBE" - ] - } - ], - "gender": "female", - "birthDate": "2010-10-22", - "generalPractitioner": [ - { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "Y12345" - } - } - ], - "address": [ - { - - "line": [ - "1 Trevelyan Square", - "Boar Lane", - "City Centre", - "Leeds", - "West Yorkshire" - ], - "postalCode": "LS1 6AE" - } - ] -} \ No newline at end of file diff --git a/gitrepository/package.json b/gitrepository/package.json deleted file mode 100644 index b748f3e..0000000 --- a/gitrepository/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "uk.nhsdigital.r4", - "description": "NHS Digital FHIR Implementation Guide", - "author": "nhsdigital", - "fhirVersions": [ - "4.0.1" - ], - "dependencies": { - "hl7.fhir.r4.core": "4.0.1", - "fhir.r4.ukcore.stu1": "1.0.0-pre-release" - }, - "jurisdiction" : "urn:iso:std:iso:3166:-2:GB-ENG" -} diff --git a/hl7validator.md b/hl7validator.md deleted file mode 100644 index 7003125..0000000 --- a/hl7validator.md +++ /dev/null @@ -1,6 +0,0 @@ - - -java -jar validator_cli.jar Examples/fail/Bundle-prescription-order-locationNotPresent.json -version 4.0.1 -tx https://r4.ontoserver.csiro.au/fhir -ig https://packages.simplifier.net/uk.nhsdigital.medicines.r4.test/-/uk.nhsdigital.medicines.r4.test-2.3.4-prerelease.tgz - - -java -jar validator_cli.jar Examples/fail/Bundle-prescription-order-incorrectFocus.json -tx NOTX -sct 999000041000000102 -version 4.0.1 -ig https://packages.simplifier.net/uk.nhsdigital.medicines.r4.test/-/uk.nhsdigital.medicines.r4.test-2.3.4-prerelease.tgz \ No newline at end of file diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index 5865bf1..0000000 --- a/jest.config.js +++ /dev/null @@ -1,17 +0,0 @@ - - -const config = { - reporters: [ - "default", - 'github-actions', - '<rootDir>/test-reporter/index.js' - ], - testLocationInResults: true, - transform: { - '^.+\\.ts?$': 'ts-jest', - }, - verbose: true -}; - -module.exports = config; - diff --git a/jest/setEnvVars.js b/jest/setEnvVars.js deleted file mode 100644 index c8842b3..0000000 --- a/jest/setEnvVars.js +++ /dev/null @@ -1 +0,0 @@ -process.env.BASE_PATH = "example.com/eps" diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 9f147d6..0000000 --- a/package-lock.json +++ /dev/null @@ -1,8975 +0,0 @@ -{ - "name": "IOPS-FHIR-Test-Scripts", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "IOPS-FHIR-Test-Scripts", - "dependencies": { - "@apidevtools/swagger-parser": "^10.1.0", - "@types/fhir": "^0.0.40", - "fhir": "4.12.0", - "ts-jest": "^29.1.2" - }, - "devDependencies": { - "@types/jest": "^29.5.11", - "@types/node": "^20.11.6", - "axios": "^1.6.5", - "decompress": "^4.2.1", - "jest": "^29.7.0", - "jest-github-actions-reporter": "^1.0.3", - "js-untar": "^2.0.0", - "jsonminify": "^0.4.2", - "minimist": "^1.2.8", - "ts-node": "^10.9.2", - "tsconfig-paths": "^4.2.0", - "tslib": "^2.6.2", - "typescript": "^5.3.3", - "zip-a-folder": "^3.1.6" - } - }, - "node_modules/@actions/core": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz", - "integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==", - "dev": true, - "dependencies": { - "@actions/http-client": "^2.0.1", - "uuid": "^8.3.2" - } - }, - "node_modules/@actions/http-client": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.0.tgz", - "integrity": "sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==", - "dev": true, - "dependencies": { - "tunnel": "^0.0.6", - "undici": "^5.25.4" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz", - "integrity": "sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg==", - "dependencies": { - "@jsdevtools/ono": "^7.1.3", - "call-me-maybe": "^1.0.1", - "js-yaml": "^3.13.1" - } - }, - "node_modules/@apidevtools/openapi-schemas": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", - "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/@apidevtools/swagger-methods": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", - "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==" - }, - "node_modules/@apidevtools/swagger-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.1.0.tgz", - "integrity": "sha512-9Kt7EuS/7WbMAUv2gSziqjvxwDbFSg3Xeyfuj5laUODX8o/k/CpsAKiQ8W7/R88eXFTMbJYg6+7uAmOWNKmwnw==", - "dependencies": { - "@apidevtools/json-schema-ref-parser": "9.0.6", - "@apidevtools/openapi-schemas": "^2.1.0", - "@apidevtools/swagger-methods": "^3.0.2", - "@jsdevtools/ono": "^7.1.3", - "ajv": "^8.6.3", - "ajv-draft-04": "^1.0.0", - "call-me-maybe": "^1.0.1" - }, - "peerDependencies": { - "openapi-types": ">=7" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", - "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", - "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.7", - "@babel/parser": "^7.23.6", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", - "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", - "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.8.tgz", - "integrity": "sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", - "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.6", - "@babel/types": "^7.23.6", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", - "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "devOptional": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "devOptional": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@fastify/busboy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", - "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", - "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "dependencies": { - "jest-get-type": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", - "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "devOptional": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "devOptional": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "devOptional": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "devOptional": true - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", - "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/fhir": { - "version": "0.0.40", - "resolved": "https://registry.npmjs.org/@types/fhir/-/fhir-0.0.40.tgz", - "integrity": "sha512-ae00uDa0GrgPl4sDsGpHEdUjxCeot0UEEhgO/4PljimMKrPMyEVMZpsiAjwCp+dARn7zybOflnLK+nfORLjxDw==" - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "29.5.11", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.11.tgz", - "integrity": "sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ==", - "dev": true, - "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" - } - }, - "node_modules/@types/node": { - "version": "20.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.6.tgz", - "integrity": "sha512-+EOokTnksGVgip2PbYbr3xnR7kZigh4LbybAfBAw5BpnQ+FqBYUsvCEjYd70IXKlbohQ64mzEYmMtlWUY8q//Q==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" - }, - "node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" - }, - "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "devOptional": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "devOptional": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-draft-04": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", - "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", - "peerDependencies": { - "ajv": "^8.5.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/archiver": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-6.0.1.tgz", - "integrity": "sha512-CXGy4poOLBKptiZH//VlWdFuUC1RESbdZjGjILwBuZ73P7WkAUN0htfSfBq/7k6FRFlpu7bg4JOkj1vU9G6jcQ==", - "dev": true, - "dependencies": { - "archiver-utils": "^4.0.1", - "async": "^3.2.4", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.1.2", - "tar-stream": "^3.0.0", - "zip-stream": "^5.0.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/archiver-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-4.0.1.tgz", - "integrity": "sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg==", - "dev": true, - "dependencies": { - "glob": "^8.0.0", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash": "^4.17.15", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/archiver-utils/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/archiver-utils/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/archiver-utils/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/archiver-utils/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/archiver/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/archiver/node_modules/tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", - "dev": true, - "dependencies": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "devOptional": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", - "dev": true - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/axios": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", - "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.15.4", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/b4a": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", - "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", - "dev": true - }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", - "dev": true, - "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "dependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "node_modules/buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", - "dev": true - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/call-me-maybe": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", - "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==" - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001579", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz", - "integrity": "sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==" - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==" - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/compress-commons": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-5.0.1.tgz", - "integrity": "sha512-MPh//1cERdLtqwO3pOFLeXtpuai0Y2WCd5AhtKxznqM7WtaMYaOEMSgn45d9D10sIHSfIKE603HlOp8OPGrvag==", - "dev": true, - "dependencies": { - "crc-32": "^1.2.0", - "crc32-stream": "^5.0.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/compress-commons/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true, - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/crc32-stream": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-5.0.0.tgz", - "integrity": "sha512-B0EPa1UK+qnpBZpG+7FgPCu0J2ETLpXq09o9BkLkEAhdB6Z61Qo4pJ3JYu0c+Qi+/SAL7QThqnzS06pmSSyZaw==", - "dev": true, - "dependencies": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/crc32-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "devOptional": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decompress": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", - "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", - "dev": true, - "dependencies": { - "decompress-tar": "^4.0.0", - "decompress-tarbz2": "^4.0.0", - "decompress-targz": "^4.0.0", - "decompress-unzip": "^4.0.1", - "graceful-fs": "^4.1.10", - "make-dir": "^1.0.0", - "pify": "^2.3.0", - "strip-dirs": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-tar": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", - "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", - "dev": true, - "dependencies": { - "file-type": "^5.2.0", - "is-stream": "^1.1.0", - "tar-stream": "^1.5.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-tarbz2": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", - "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", - "dev": true, - "dependencies": { - "decompress-tar": "^4.1.0", - "file-type": "^6.1.0", - "is-stream": "^1.1.0", - "seek-bzip": "^1.0.5", - "unbzip2-stream": "^1.0.9" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-tarbz2/node_modules/file-type": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", - "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-targz": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", - "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", - "dev": true, - "dependencies": { - "decompress-tar": "^4.1.1", - "file-type": "^5.2.0", - "is-stream": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-unzip": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", - "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", - "dev": true, - "dependencies": { - "file-type": "^3.8.0", - "get-stream": "^2.2.0", - "pify": "^2.3.0", - "yauzl": "^2.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-unzip/node_modules/file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/dedent": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "devOptional": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.643", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.643.tgz", - "integrity": "sha512-QHscvvS7gt155PtoRC0dR2ilhL8E9LHhfTQEq1uD5AL0524rBLAwpAREFH06f87/e45B9XkR6Ki5dbhbCsVEIg==" - }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/execa/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/execa/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", - "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "dev": true - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/fhir": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/fhir/-/fhir-4.12.0.tgz", - "integrity": "sha512-N+eLuUbYjvjX5NlZPhE08OVrsJJhulQKkVWnW1M3HpNvreWC1yVvoF8ptmGzlvtDZRCrNrBArfLklphFO2L0oA==", - "bundleDependencies": [ - "lodash", - "path", - "q", - "xml-js" - ], - "dependencies": { - "lodash": "^4.17.19", - "path": "^0.12.7", - "q": "^1.4.1", - "randomatic": "^3.1.0", - "xml-js": "^1.6.8" - } - }, - "node_modules/fhir/node_modules/inherits": { - "version": "2.0.3", - "inBundle": true, - "license": "ISC" - }, - "node_modules/fhir/node_modules/lodash": { - "version": "4.17.21", - "inBundle": true, - "license": "MIT" - }, - "node_modules/fhir/node_modules/path": { - "version": "0.12.7", - "inBundle": true, - "license": "MIT", - "dependencies": { - "process": "^0.11.1", - "util": "^0.10.3" - } - }, - "node_modules/fhir/node_modules/process": { - "version": "0.11.10", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/fhir/node_modules/q": { - "version": "1.5.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/fhir/node_modules/sax": { - "version": "1.2.4", - "inBundle": true, - "license": "ISC" - }, - "node_modules/fhir/node_modules/util": { - "version": "0.10.4", - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/fhir/node_modules/xml-js": { - "version": "1.6.8", - "inBundle": true, - "license": "MIT", - "dependencies": { - "sax": "^1.2.4" - }, - "bin": { - "xml-js": "bin/cli.js" - } - }, - "node_modules/file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", - "dev": true, - "dependencies": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-natural-number": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", - "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==", - "dev": true - }, - "node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", - "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/istanbul-lib-report/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dev": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-github-actions-reporter": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/jest-github-actions-reporter/-/jest-github-actions-reporter-1.0.3.tgz", - "integrity": "sha512-IwLAKLSWLN8ZVfcfEEv6rfeWb78wKDeOhvOmH9KKXayKsKLSCwceopBcB+KUtwxfB5wYnT8Y9s2eZ+WdhA5yng==", - "dev": true, - "dependencies": { - "@actions/core": "^1.2.0" - } - }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", - "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-snapshot/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", - "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", - "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-untar": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/js-untar/-/js-untar-2.0.0.tgz", - "integrity": "sha512-7CsDLrYQMbLxDt2zl9uKaPZSdmJMvGGQ7wo9hoB3J+z/VcO2w63bXFgHVnjF1+S9wD3zAu8FBVj7EYWjTQ3Z7g==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonminify": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/jsonminify/-/jsonminify-0.4.2.tgz", - "integrity": "sha512-mEtP5ECD0293D+s45JhDutqF5mFCkWY8ClrPFxjSFR2KUoantofky7noSzyKnAnD9Gd8pXHZSUd5bgzLDUBbfA==", - "dev": true, - "engines": { - "node": ">=0.8.0", - "npm": ">=1.1.0" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "engines": { - "node": ">=6" - } - }, - "node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/make-dir/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" - }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/openapi-types": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", - "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", - "peer": true - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", - "dev": true, - "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", - "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/pure-rand": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", - "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] - }, - "node_modules/queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", - "dev": true - }, - "node_modules/randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", - "dependencies": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/readdir-glob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "dev": true, - "dependencies": { - "minimatch": "^5.1.0" - } - }, - "node_modules/readdir-glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/readdir-glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "engines": { - "node": ">=10" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/seek-bzip": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", - "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", - "dev": true, - "dependencies": { - "commander": "^2.8.1" - }, - "bin": { - "seek-bunzip": "bin/seek-bunzip", - "seek-table": "bin/seek-bzip-table" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/streamx": { - "version": "2.15.6", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.6.tgz", - "integrity": "sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==", - "dev": true, - "dependencies": { - "fast-fifo": "^1.1.0", - "queue-tick": "^1.0.1" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", - "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", - "dev": true, - "dependencies": { - "is-natural-number": "^4.0.1" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dev": true, - "dependencies": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" - }, - "node_modules/to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/to-regex-range/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/ts-jest": { - "version": "29.1.2", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz", - "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==", - "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "^7.5.3", - "yargs-parser": "^21.0.1" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^16.10.0 || ^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/types": "^29.0.0", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", - "typescript": ">=4.3 <6" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@jest/types": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "node_modules/ts-jest/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-jest/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-jest/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "devOptional": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/tsconfig-paths": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", - "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", - "dev": true, - "dependencies": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "node_modules/tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "dev": true, - "engines": { - "node": ">=0.6.11 <=0.7.0 || >=0.7.3" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "node_modules/undici": { - "version": "5.28.4", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", - "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", - "dev": true, - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, - "engines": { - "node": ">=14.0" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "devOptional": true - }, - "node_modules/v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "devOptional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zip-a-folder": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/zip-a-folder/-/zip-a-folder-3.1.6.tgz", - "integrity": "sha512-u+qRL0sSsq2T2mDFcDzdgCSVO8sChsJ4swd2aZlzyoIoNwyVL7HBHPKDQVq1t0utd8nPXzCq44gAKzXAhbvpXA==", - "dev": true, - "dependencies": { - "archiver": "^6.0.1", - "glob": "^10.3.10", - "is-glob": "^4.0.3" - } - }, - "node_modules/zip-a-folder/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/zip-a-folder/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/zip-a-folder/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/zip-stream": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-5.0.1.tgz", - "integrity": "sha512-UfZ0oa0C8LI58wJ+moL46BDIMgCQbnsb+2PoiJYtonhBsMh2bq1eRBVkvjfVsqbEHd9/EgKPUuL9saSSsec8OA==", - "dev": true, - "dependencies": { - "archiver-utils": "^4.0.1", - "compress-commons": "^5.0.1", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/zip-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - } - }, - "dependencies": { - "@actions/core": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz", - "integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==", - "dev": true, - "requires": { - "@actions/http-client": "^2.0.1", - "uuid": "^8.3.2" - } - }, - "@actions/http-client": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.0.tgz", - "integrity": "sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==", - "dev": true, - "requires": { - "tunnel": "^0.0.6", - "undici": "^5.25.4" - } - }, - "@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@apidevtools/json-schema-ref-parser": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz", - "integrity": "sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg==", - "requires": { - "@jsdevtools/ono": "^7.1.3", - "call-me-maybe": "^1.0.1", - "js-yaml": "^3.13.1" - } - }, - "@apidevtools/openapi-schemas": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", - "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==" - }, - "@apidevtools/swagger-methods": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", - "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==" - }, - "@apidevtools/swagger-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.1.0.tgz", - "integrity": "sha512-9Kt7EuS/7WbMAUv2gSziqjvxwDbFSg3Xeyfuj5laUODX8o/k/CpsAKiQ8W7/R88eXFTMbJYg6+7uAmOWNKmwnw==", - "requires": { - "@apidevtools/json-schema-ref-parser": "9.0.6", - "@apidevtools/openapi-schemas": "^2.1.0", - "@apidevtools/swagger-methods": "^3.0.2", - "@jsdevtools/ono": "^7.1.3", - "ajv": "^8.6.3", - "ajv-draft-04": "^1.0.0", - "call-me-maybe": "^1.0.1" - } - }, - "@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", - "requires": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==" - }, - "@babel/core": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", - "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.7", - "@babel/parser": "^7.23.6", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - } - }, - "@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", - "requires": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", - "requires": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==" - }, - "@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "requires": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "requires": { - "@babel/types": "^7.22.15" - } - }, - "@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==" - }, - "@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==" - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==" - }, - "@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==" - }, - "@babel/helpers": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.8.tgz", - "integrity": "sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==", - "requires": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6" - } - }, - "@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "requires": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==" - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", - "requires": { - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "requires": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - } - }, - "@babel/traverse": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", - "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", - "requires": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.6", - "@babel/types": "^7.23.6", - "debug": "^4.3.1", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", - "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "devOptional": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "devOptional": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } - } - }, - "@fastify/busboy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", - "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", - "dev": true - }, - "@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "requires": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - } - } - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" - }, - "@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "requires": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "requires": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "requires": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - } - }, - "@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", - "requires": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - } - }, - "@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "requires": { - "jest-get-type": "^29.6.3" - } - }, - "@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "requires": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - } - }, - "@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "requires": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - } - }, - "@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - } - }, - "@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "requires": { - "@sinclair/typebox": "^0.27.8" - } - }, - "@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "requires": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - } - }, - "@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "requires": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "requires": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - } - }, - "@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "requires": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - } - }, - "@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "requires": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "@jridgewell/trace-mapping": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", - "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" - }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true - }, - "@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" - }, - "@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "requires": { - "@sinonjs/commons": "^3.0.0" - } - }, - "@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "devOptional": true - }, - "@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "devOptional": true - }, - "@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "devOptional": true - }, - "@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "devOptional": true - }, - "@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "requires": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", - "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", - "requires": { - "@babel/types": "^7.20.7" - } - }, - "@types/fhir": { - "version": "0.0.40", - "resolved": "https://registry.npmjs.org/@types/fhir/-/fhir-0.0.40.tgz", - "integrity": "sha512-ae00uDa0GrgPl4sDsGpHEdUjxCeot0UEEhgO/4PljimMKrPMyEVMZpsiAjwCp+dARn7zybOflnLK+nfORLjxDw==" - }, - "@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" - }, - "@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "29.5.11", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.11.tgz", - "integrity": "sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ==", - "dev": true, - "requires": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" - } - }, - "@types/node": { - "version": "20.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.6.tgz", - "integrity": "sha512-+EOokTnksGVgip2PbYbr3xnR7kZigh4LbybAfBAw5BpnQ+FqBYUsvCEjYd70IXKlbohQ64mzEYmMtlWUY8q//Q==", - "requires": { - "undici-types": "~5.26.4" - } - }, - "@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" - }, - "@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" - }, - "acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "devOptional": true - }, - "acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "devOptional": true - }, - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-draft-04": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", - "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", - "requires": {} - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "archiver": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-6.0.1.tgz", - "integrity": "sha512-CXGy4poOLBKptiZH//VlWdFuUC1RESbdZjGjILwBuZ73P7WkAUN0htfSfBq/7k6FRFlpu7bg4JOkj1vU9G6jcQ==", - "dev": true, - "requires": { - "archiver-utils": "^4.0.1", - "async": "^3.2.4", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.1.2", - "tar-stream": "^3.0.0", - "zip-stream": "^5.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", - "dev": true, - "requires": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - } - } - }, - "archiver-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-4.0.1.tgz", - "integrity": "sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg==", - "dev": true, - "requires": { - "glob": "^8.0.0", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash": "^4.17.15", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "devOptional": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "axios": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", - "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", - "dev": true, - "requires": { - "follow-redirects": "^1.15.4", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "b4a": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", - "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", - "dev": true - }, - "babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "requires": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "dependencies": { - "istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - } - } - } - }, - "babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "requires": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", - "dev": true, - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", - "requires": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - } - }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "requires": { - "fast-json-stable-stringify": "2.x" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", - "dev": true - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "call-me-maybe": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", - "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==" - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "caniuse-lite": { - "version": "1.0.30001579", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz", - "integrity": "sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" - }, - "ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==" - }, - "cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==" - }, - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==" - }, - "collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==" - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "compress-commons": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-5.0.1.tgz", - "integrity": "sha512-MPh//1cERdLtqwO3pOFLeXtpuai0Y2WCd5AhtKxznqM7WtaMYaOEMSgn45d9D10sIHSfIKE603HlOp8OPGrvag==", - "dev": true, - "requires": { - "crc-32": "^1.2.0", - "crc32-stream": "^5.0.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true - }, - "crc32-stream": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-5.0.0.tgz", - "integrity": "sha512-B0EPa1UK+qnpBZpG+7FgPCu0J2ETLpXq09o9BkLkEAhdB6Z61Qo4pJ3JYu0c+Qi+/SAL7QThqnzS06pmSSyZaw==", - "dev": true, - "requires": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "requires": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - } - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "devOptional": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "decompress": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", - "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", - "dev": true, - "requires": { - "decompress-tar": "^4.0.0", - "decompress-tarbz2": "^4.0.0", - "decompress-targz": "^4.0.0", - "decompress-unzip": "^4.0.1", - "graceful-fs": "^4.1.10", - "make-dir": "^1.0.0", - "pify": "^2.3.0", - "strip-dirs": "^2.0.0" - } - }, - "decompress-tar": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", - "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", - "dev": true, - "requires": { - "file-type": "^5.2.0", - "is-stream": "^1.1.0", - "tar-stream": "^1.5.2" - } - }, - "decompress-tarbz2": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", - "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", - "dev": true, - "requires": { - "decompress-tar": "^4.1.0", - "file-type": "^6.1.0", - "is-stream": "^1.1.0", - "seek-bzip": "^1.0.5", - "unbzip2-stream": "^1.0.9" - }, - "dependencies": { - "file-type": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", - "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", - "dev": true - } - } - }, - "decompress-targz": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", - "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", - "dev": true, - "requires": { - "decompress-tar": "^4.1.1", - "file-type": "^5.2.0", - "is-stream": "^1.1.0" - } - }, - "decompress-unzip": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", - "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", - "dev": true, - "requires": { - "file-type": "^3.8.0", - "get-stream": "^2.2.0", - "pify": "^2.3.0", - "yauzl": "^2.4.2" - }, - "dependencies": { - "file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", - "dev": true - } - } - }, - "dedent": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", - "requires": {} - }, - "deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==" - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "devOptional": true - }, - "diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==" - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.643", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.643.tgz", - "integrity": "sha512-QHscvvS7gt155PtoRC0dR2ilhL8E9LHhfTQEq1uD5AL0524rBLAwpAREFH06f87/e45B9XkR6Ki5dbhbCsVEIg==" - }, - "emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - } - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==" - }, - "expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", - "requires": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "requires": { - "bser": "2.1.1" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "fhir": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/fhir/-/fhir-4.12.0.tgz", - "integrity": "sha512-N+eLuUbYjvjX5NlZPhE08OVrsJJhulQKkVWnW1M3HpNvreWC1yVvoF8ptmGzlvtDZRCrNrBArfLklphFO2L0oA==", - "requires": { - "lodash": "^4.17.19", - "path": "^0.12.7", - "q": "^1.4.1", - "randomatic": "^3.1.0", - "xml-js": "^1.6.8" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "lodash": { - "version": "4.17.21", - "bundled": true - }, - "path": { - "version": "0.12.7", - "bundled": true, - "requires": { - "process": "^0.11.1", - "util": "^0.10.3" - } - }, - "process": { - "version": "0.11.10", - "bundled": true - }, - "q": { - "version": "1.5.1", - "bundled": true - }, - "sax": { - "version": "1.2.4", - "bundled": true - }, - "util": { - "version": "0.10.4", - "bundled": true, - "requires": { - "inherits": "2.0.3" - } - }, - "xml-js": { - "version": "1.6.8", - "bundled": true, - "requires": { - "sax": "^1.2.4" - } - } - } - }, - "file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", - "dev": true - }, - "foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "dependencies": { - "signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true - } - } - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "optional": true - }, - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" - }, - "get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", - "dev": true, - "requires": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "requires": { - "function-bind": "^1.1.2" - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" - }, - "is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "requires": { - "hasown": "^2.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-natural-number": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", - "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==", - "dev": true - }, - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==" - }, - "istanbul-lib-instrument": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", - "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "requires": { - "semver": "^7.5.3" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dev": true, - "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" - } - }, - "jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "requires": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - } - }, - "jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "requires": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" - } - }, - "jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "requires": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "requires": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - } - }, - "jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "requires": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - } - }, - "jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - } - }, - "jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", - "requires": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" - } - }, - "jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "requires": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - } - }, - "jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==" - }, - "jest-github-actions-reporter": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/jest-github-actions-reporter/-/jest-github-actions-reporter-1.0.3.tgz", - "integrity": "sha512-IwLAKLSWLN8ZVfcfEEv6rfeWb78wKDeOhvOmH9KKXayKsKLSCwceopBcB+KUtwxfB5wYnT8Y9s2eZ+WdhA5yng==", - "dev": true, - "requires": { - "@actions/core": "^1.2.0" - } - }, - "jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "requires": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - } - }, - "jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "requires": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - } - }, - "jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - } - }, - "jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "requires": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - } - }, - "jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "requires": {} - }, - "jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==" - }, - "jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", - "requires": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", - "requires": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" - } - }, - "jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", - "requires": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - } - }, - "jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", - "requires": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - } - }, - "jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", - "requires": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "requires": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", - "requires": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "dependencies": { - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" - } - } - }, - "jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", - "requires": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "requires": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-untar": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/js-untar/-/js-untar-2.0.0.tgz", - "integrity": "sha512-7CsDLrYQMbLxDt2zl9uKaPZSdmJMvGGQ7wo9hoB3J+z/VcO2w63bXFgHVnjF1+S9wD3zAu8FBVj7EYWjTQ3Z7g==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" - }, - "jsonminify": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/jsonminify/-/jsonminify-0.4.2.tgz", - "integrity": "sha512-mEtP5ECD0293D+s45JhDutqF5mFCkWY8ClrPFxjSFR2KUoantofky7noSzyKnAnD9Gd8pXHZSUd5bgzLDUBbfA==", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - }, - "lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true - } - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "requires": { - "tmpl": "1.0.5" - } - }, - "math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { - "path-key": "^3.0.0" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "openapi-types": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", - "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", - "peer": true - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - } - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", - "dev": true, - "requires": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", - "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", - "dev": true - } - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==" - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "requires": { - "find-up": "^4.0.0" - } - }, - "pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "requires": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - } - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" - }, - "pure-rand": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", - "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==" - }, - "queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", - "dev": true - }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "readdir-glob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "dev": true, - "requires": { - "minimatch": "^5.1.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - }, - "resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "requires": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - }, - "resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==" - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "seek-bzip": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", - "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", - "dev": true, - "requires": { - "commander": "^2.8.1" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "requires": { - "escape-string-regexp": "^2.0.0" - } - }, - "streamx": { - "version": "2.15.6", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.6.tgz", - "integrity": "sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==", - "dev": true, - "requires": { - "fast-fifo": "^1.1.0", - "queue-tick": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string-width-cjs": { - "version": "npm:string-width@4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-ansi-cjs": { - "version": "npm:strip-ansi@6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" - }, - "strip-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", - "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", - "dev": true, - "requires": { - "is-natural-number": "^4.0.1" - } - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dev": true, - "requires": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" - }, - "to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - }, - "dependencies": { - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - } - } - }, - "ts-jest": { - "version": "29.1.2", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz", - "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==", - "requires": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "^7.5.3", - "yargs-parser": "^21.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "devOptional": true, - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - } - }, - "tsconfig-paths": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", - "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", - "dev": true, - "requires": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - } - } - }, - "tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "dev": true - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" - }, - "typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==" - }, - "unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "undici": { - "version": "5.28.4", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", - "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", - "dev": true, - "requires": { - "@fastify/busboy": "^2.0.0" - } - }, - "undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, - "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "devOptional": true - }, - "v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", - "requires": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - } - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "requires": { - "makeerror": "1.0.12" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrap-ansi-cjs": { - "version": "npm:wrap-ansi@7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "devOptional": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" - }, - "zip-a-folder": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/zip-a-folder/-/zip-a-folder-3.1.6.tgz", - "integrity": "sha512-u+qRL0sSsq2T2mDFcDzdgCSVO8sChsJ4swd2aZlzyoIoNwyVL7HBHPKDQVq1t0utd8nPXzCq44gAKzXAhbvpXA==", - "dev": true, - "requires": { - "archiver": "^6.0.1", - "glob": "^10.3.10", - "is-glob": "^4.0.3" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dev": true, - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - } - }, - "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "zip-stream": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-5.0.1.tgz", - "integrity": "sha512-UfZ0oa0C8LI58wJ+moL46BDIMgCQbnsb+2PoiJYtonhBsMh2bq1eRBVkvjfVsqbEHd9/EgKPUuL9saSSsec8OA==", - "dev": true, - "requires": { - "archiver-utils": "^4.0.1", - "compress-commons": "^5.0.1", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 6c77a41..0000000 --- a/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "scripts": { - "test": "jest --runInBand src/validate.test.ts", - "integration-test": "jest --runInBand src/validator.test.ts", - "build": "ts-node src/populateValidator.ts", - "start": "ts-node src/configureValidator.ts" - }, - "devDependencies": { - "@types/jest": "^29.5.11", - "@types/node": "^20.11.6", - "axios": "^1.6.5", - "decompress": "^4.2.1", - "jest": "^29.7.0", - "jest-github-actions-reporter": "^1.0.3", - "js-untar": "^2.0.0", - "jsonminify": "^0.4.2", - "minimist": "^1.2.8", - "ts-node": "^10.9.2", - "tsconfig-paths": "^4.2.0", - "tslib": "^2.6.2", - "typescript": "^5.3.3", - "zip-a-folder": "^3.1.6" - }, - "dependencies": { - "@apidevtools/swagger-parser": "^10.1.0", - "@types/fhir": "^0.0.40", - "fhir": "4.12.0", - "ts-jest": "^29.1.2" - } -} diff --git a/src/common.js.ts b/src/common.js.ts deleted file mode 100644 index d248b87..0000000 --- a/src/common.js.ts +++ /dev/null @@ -1,914 +0,0 @@ -import axios, {AxiosInstance} from "axios"; -import { - Bundle, CapabilityStatement, - MessageDefinition, - OperationOutcome, - OperationOutcomeIssue, SearchParameter, - StructureDefinition -} from "fhir/r4"; -import fs from "fs"; -import path from "path"; -import * as console from "console"; -import SwaggerParser from "@apidevtools/swagger-parser"; -import {OpenAPI} from "openapi-types"; -import Document = OpenAPI.Document; -import Parameter = OpenAPI.Parameter; - - -// This is only used for converting between XML and Json. Potentially replace with a service -var Fhir = require('fhir').Fhir; - -export const NEW_LINE = '\n'; - -export let defaultBaseUrl = 'http://localhost:9001/FHIR/R4'; -//export let defaultBaseUrl = 'http://lb-fhir-validator-924628614.eu-west-2.elb.amazonaws.com/FHIR/R4'; - -// See also https://github.com/awslabs/fhir-works-on-aws-deployment/blob/mainline/integration-tests/utils.ts -export const getFhirClientJSON = async () => { - return axios.create({ - headers: { - 'Content-Type': 'application/fhir+json', - 'Accept': 'application/fhir+json' - }, - baseURL : defaultBaseUrl - }); -}; - -export const getFhirClientOAS = async () => { - return axios.create({ - headers: { - 'Content-Type': 'text/vnd.yaml', - 'Accept': 'application/json' - }, - baseURL : 'http://localhost:9001' - }); -}; - -export const getFhirClientXML = async () => { - return axios.create({ - headers: { - 'Content-Type': 'application/fhir+xml', - 'Accept': 'application/fhir+json' - }, - baseURL : defaultBaseUrl - }); -}; - -export function resourceChecks(response: any, failOnWarning:boolean) { - - const resource: any = response.data; - expect(resource.resourceType).toEqual('OperationOutcome'); - const errorMessage = getErrors(resource, failOnWarning) - expect(errorMessage).toBeFalsy() -} - -export function resourceCheckErrorMessage(response: any, message: string, failOnWarning:boolean) { - - const resource: any = response.data; - expect(resource.resourceType).toEqual('OperationOutcome'); - - expect(hasErrorMessage(resource)).toEqual(true) - if (message != undefined) { - const error = getErrors(resource,failOnWarning) - expect(error).toContain(message) - } -} - -export function resourceCheckWarningMessage(response: any, message: string) { - - const resource: any = response.data; - expect(resource.resourceType).toEqual('OperationOutcome'); - expect(hasWarningMessage(resource)).toEqual(true) - if (message != undefined) expect(checkForWarningMessage(resource,message)) -} - - -export async function getPatient(): Promise<any> { - return await fs.readFileSync('Examples/pass/patient.json', 'utf8'); -} - -export async function getResource(file: string): Promise<any> { - return await fs.readFileSync(file, 'utf8'); -} - - -export function getJson(file, resource) { - try { - var fileExtension = file.split('.').pop(); - if (fileExtension == 'xml' || fileExtension == 'XML') { - - - var fhir = new Fhir(); - var json = fhir.xmlToJson(resource); - if (JSON.parse(json).resourceType == undefined) throw Error('Invalid JSON Missing resource type ' + file) - - return json; - } else { - - if (JSON.parse(resource).resourceType == undefined) throw Error('Invalid JSON Missing resource type ' + file) - if (JSON.parse(resource).resourceType == "Parameters") { - var jsonResource = { - "resourceType": "Parameters", - "parameter": [ - { - "name": "resource", - "resource": JSON.parse(resource) - } - ] - }; - return JSON.stringify(jsonResource); - } - return resource; - } - } - catch (e) { - //console.error('Error processing '+file + ' Error message '+ (e as Error).message) - return undefined - } - -} - -export async function downloadPackage(destinationPath, name,version ) { - - - const url = 'https://3cdzg7kbj4.execute-api.eu-west-2.amazonaws.com/poc/utility/FHIR/R4/ImplementationGuide/$package?url=https%3A%2F%2Ffhir.nhs.uk%2FImplementationGuide%2F' + name + '-' + version; - console.info('Download from ' + url); - try { - const response = await axios.get(url, { - responseType: 'arraybuffer' - }); - - // @ts-ignore - const buffer = Buffer.from(response.data, 'binary'); - - fs.mkdirSync(path.join(__dirname,destinationPath ),{ recursive: true }); - fs.writeFileSync(path.join(__dirname,destinationPath + '/' + name +'-' + version + '.tgz'), buffer); - console.info('Updated dependency ' + url); - } catch (exception) { - downloadPackageSimplifier(destinationPath, name,version ) - } -} - -export async function downloadPackageSimplifier(destinationPath, name,version ) { - const url = 'https://packages.simplifier.net/' + name + '/' + version; - console.info('Download from ' + url); - try { - const response = await axios.get(url, { - responseType: 'arraybuffer' - }); - - // @ts-ignore - const buffer = Buffer.from(response.data, 'binary'); - - fs.mkdirSync(path.join(__dirname,destinationPath ),{ recursive: true }); - fs.writeFileSync(path.join(__dirname,destinationPath + '/' + name +'-' + version + '.tgz'), buffer); - console.info('Updated dependency ' + url); - } catch (exception) { - process.stderr.write(`ERROR received from ${url}: ${exception}\n`); - throw new Error('Unable to download package '+url); - } -} - -function hasErrorMessage(resource): boolean { - const operationOutcome: OperationOutcome = resource; - if (operationOutcome.issue !== undefined) { - for (const issue of operationOutcome.issue) { - switch (issue.severity) { - case "error": - case "fatal": - return true; - } - } - } - return false; -} - -function hasWarningMessage(resource): boolean { - const operationOutcome: OperationOutcome = resource; - if (operationOutcome.issue !== undefined) { - for (const issue of operationOutcome.issue) { - switch (issue.severity) { - case "warning": - return true; - } - } - } - return false; -} - -function checkForWarningMessage(resource, message) :boolean { - const operationOutcome: OperationOutcome = resource; - let errorMessage = 'None found'; - if (operationOutcome.issue !== undefined) { - for (const issue of operationOutcome.issue) { - - switch (issue.severity) { - case "warning": - errorMessage = getErrorOrWarningFull(issue); - if (errorMessage.includes(message)) return true; - } - } - } - throw new Error('Expected: ' + message + ' Found: '+errorMessage) -} - -function getErrors(operationOutcome : OperationOutcome, failOnWarning:boolean): string { - let issues : String[] = [] - if (operationOutcome.issue !== undefined) { - for (const issue of operationOutcome.issue) { - let str = issueCheck(issue, failOnWarning) - if (str != undefined) issues.push(str ) - } - } - if (issues.length >0) { - return issues.join(NEW_LINE) - } - return undefined; -} -function issueCheck(issue: OperationOutcomeIssue, failOnWarning:boolean) : string { - switch (issue.severity) { - case "error": - case "fatal": - if (raiseError(issue)) return "ERROR "+ getErrorOrWarningFull(issue) - break; - case "warning": - if (raiseWarning(issue, failOnWarning)) return "WARNING "+ getErrorOrWarningFull(issue) - break; - } - return undefined -} - -export function delay(ms: number) { - return new Promise( resolve => setTimeout(resolve, ms) ); -} -function getErrorOrWarningFull(issue: OperationOutcomeIssue) { - let error = issue.diagnostics; - if (issue.location != undefined) { - for(let location of issue.location) { - error += ' [ Location - ' + location + ']' - } - } - return error; -} -// raiseWarning function allows the custom raising (true) or ignoring (false) of warnings when testing files -function raiseWarning(issue: OperationOutcomeIssue, failOnWarning:boolean): boolean { - if (issue != undefined && issue.diagnostics != undefined) { - - //THESE WARNINGS SHOULD ALWAYS ERROR - if (issue.diagnostics.includes('incorrect type for element')) { - return true; - } - // unauthorised requests - if (issue.diagnostics.includes('Error HTTP 401')) { - return true; - } - - // THESE WARNINGS SHOULD ALWAYS BE SILENTLY IGNORED - //if (issue.diagnostics.includes('Code system https://dmd.nhs.uk/ could not be resolved.')) return false - // Issue with hapi giving incorrect error when one code is from the valueset, but another is not. See https://github.com/hapifhir/hapi-fhir/issues/4152 - if (issue.diagnostics.includes('Inappropriate CodeSystem URL') && issue.diagnostics.includes('for ValueSet: http://hl7.org/fhir/ValueSet/all-languages')) { - return false - } - - // LOINC Related warnings can be ignored - if (issue.diagnostics.includes('http://loinc.org')) return false; - if (issue.diagnostics.includes('LOINC is not indexed!')) return false; - - //DICOM warnings can be ignored - if (issue.diagnostics.includes('ValueSet http://dicom.nema.org/')) return false; - - //Fragment codesystems can't be checked - if (issue.diagnostics.includes('Unknown code in fragment CodeSystem')) return false; - - } - - // if error not handled above, return error if FailOnWarning is true - return failOnWarning; -} -// raiseError function allows the custom raising (true) or ignoring (false) of errors when testing files -function raiseError(issue: OperationOutcomeIssue) : boolean { - if (issue != undefined) { - if (issue.diagnostics != undefined) { - // List of errors to ALWAYS ignore - - // Issue with hapi giving incorrect error when one code is from the valueset, but another is not. See https://github.com/hapifhir/hapi-fhir/issues/4152 - if (issue.diagnostics.includes('Inappropriate CodeSystem URL') && issue.diagnostics.includes('for ValueSet: http://hl7.org/fhir/ValueSet/all-languages')) { - return false - } - - // Ignore LOINC Errors for now - if (issue.diagnostics.includes('http://loinc.org')) return false; - - // ignore readctv3 errors - if (issue.diagnostics.includes('http://read.info/ctv3')) return false; - - // ignore ods codesystems - if (issue.diagnostics.includes('https://digital.nhs.uk/services/organisation-data-service/CodeSystem/ODS')) return false; - - // ignore incorrect error for QuestionnaireReponse This relates to a question which isn't enabled (the enableWhen condition is not satisfied so the required condition on the question should not be evaluated) - if (issue.diagnostics.includes('No response answer')) return false; - - //Hide errors relating to finding codes from system:http://human-phenotype-ontology.org as these are not within the Terminology server - if (issue.diagnostics.includes('Validation failed for \'http://human-phenotype-ontology.org')) return false; - - // Issue with GitHub validator requiring code to be in CodeSystem asset when there is none. No issues with the validator itself. The ValueSets in question are https://terminology.hl7.org/5.5.0/CodeSystem-v3-hgvs.html and https://terminology.hl7.org/6.4.0/CodeSystem-SO.html - if (issue.diagnostics.includes('http://varnomen.hgvs.org') || issue.diagnostics.includes('http://www.sequenceontology.org')) return false; - } - if (issue.location !== undefined && issue.location.length>0) { - if (issue.location[0].includes('StructureMap.group')) return false; - } - } - return true; - } - - - -export function testFileError(testDescription, file,message) { - describe(file, () => { - const resource: any = fs.readFileSync(file, 'utf8'); - let client: AxiosInstance; - beforeAll(async () => { - var fileExtension = file.split('.').pop(); - if (fileExtension == 'xml' || fileExtension == 'XML') { - client = await getFhirClientXML(); - } else { - client = await getFhirClientJSON(); - } - }); - test(testDescription, async () => { - expect(resource).toBeDefined() - const response = await client.post('/$validate', resource).catch(function (error) { - return error.response - }) - expect(response.status === 200 || response.status === 400).toBeTruthy() - resourceCheckErrorMessage(response,message, true) - }) - }); -} - -export function testFileErrorProfile(testDescription, file,message, profile) { - describe(file, () => { - const resource: any = fs.readFileSync(file, 'utf8'); - let client: AxiosInstance; - beforeAll(async () => { - var fileExtension = file.split('.').pop(); - if (fileExtension == 'xml' || fileExtension == 'XML') { - client = await getFhirClientXML(); - } else { - client = await getFhirClientJSON(); - } - }); - test(testDescription, async () => { - expect(resource).toBeDefined() - const response = await client.post('/$validate?profile='+profile, resource).catch(function (error) { - return error.response - }) - expect(response.status === 200 || response.status === 400).toBeTruthy() - resourceCheckErrorMessage(response,message, true) - expect(response.status).toEqual(200) - }) - }); -} - - -export function testFileWarning(testDescription, file,message) { - describe(file, () => { - const resource: any = fs.readFileSync(file, 'utf8'); - let client: AxiosInstance; - beforeAll(async () => { - var fileExtension = file.split('.').pop(); - if (fileExtension == 'xml' || fileExtension == 'XML') { - client = await getFhirClientXML(); - } else { - client = await getFhirClientJSON(); - } - }); - test(testDescription, async () => { - expect(resource).toBeDefined() - const response = await client.post('/$validate', resource) - expect(response.status === 200 || response.status === 400).toBeTruthy() - resourceCheckWarningMessage(response,message) - expect(response.status).toEqual(200) - }) - }); -} - -// Read attributes from options.json -interface Options { - strictValidation: boolean; - ErrorIfMetaProfilePresent: boolean; - ignoreFolders: string[]; - ignoreFiles: string[]; -} - -export function setOptions(filePath: string): Options { - let strictValidation: boolean = false; - let ErrorIfMetaProfilePresent: boolean = true; - let ignoreFolders: string[] = []; - let ignoreFiles: string[] = []; - - try { - const data = fs.readFileSync(filePath, 'utf8'); - const options = JSON.parse(data); - - if (options) { - if (typeof options['strict-validation'] === 'boolean') { - strictValidation = options['strict-validation']; - } else if ('strict-validation' in options) { - console.log(`Error: Attribute "strict-validation" is not a boolean in ${filePath}.`); - } else { - console.warn('Warning: Attribute "strict-validation" not found in options.json'); - } - - if (typeof options['error-if-metaProfile-present'] === 'boolean') { - ErrorIfMetaProfilePresent = options['error-if-metaProfile-present']; - } else if ('error-if-metaProfile-present' in options) { - console.log(`Error: Attribute "error-if-metaProfile-present" is not a boolean in ${filePath}.`); - } else { - console.warn('Warning: Attribute "error-if-metaProfile-present" not found in options.json'); - } - - ignoreFolders = options['ignore-folders'] || []; - ignoreFiles = options['ignore-files'] || []; - - if (!options.hasOwnProperty('ignore-folders')) { - console.warn('Warning: The "ignore-folders" attribute is missing in options.json'); - } - if (!options.hasOwnProperty('ignore-files')) { - console.warn('Warning: The "ignore-files" attribute is missing in options.json'); - } - } else { - console.log(`Error: Options file ${filePath} is empty or not valid JSON.`); - } - } catch (error) { - console.log(`Error: File ${filePath} not found or invalid JSON.`); - } - - return { strictValidation, ErrorIfMetaProfilePresent, ignoreFolders, ignoreFiles }; -} - -// used for failOnWarning -export function getStrictValidation() { - const optionsFilePath = '../options.json'; - const { strictValidation } = setOptions(optionsFilePath); - return strictValidation; -} - -const optionsFilePath = '../options.json'; -const { ErrorIfMetaProfilePresent, ignoreFolders, ignoreFiles } = setOptions(optionsFilePath); -console.log('Error if Meta.Profile element is present:', ErrorIfMetaProfilePresent); -console.log('Ignore Folders:', ignoreFolders); -console.log('Ignore Files:', ignoreFiles); - - -// Ignores folders from options.json within the FHIR repo and hardcoded foldernames within this function -export function isIgnoreFolder(folderName : string) : boolean { - if (folderName.startsWith('.')) return true; - // This project needs to avoid these folders - if (folderName == 'validation') return true; - if (folderName == 'validation-service-fhir-r4') return true; - - // For BARS - if (folderName == 'guides') return true; - - // legacy items, need to check if being used in other repos - if (folderName == 'node_modules') return true; - if (folderName == 'Diagrams') return true; - if (folderName == 'Diagams') return true; - if (folderName == 'diagrams') return true; - if (folderName == 'FML') return true; - if (folderName == 'dist') return true; - if (folderName == 'documents') return true; - if (folderName == 'nhsdtheme') return true; - if (folderName == 'ukcore') return true; - if (folderName == 'UKCore') return true; - if (folderName == 'apim') return true; - if (folderName == 'Supporting Information') return true; - - if (ignoreFolders.includes(folderName)) return true; - return false; -} - -// Ignores files from options.json within the FHIR repo and hardcoded filenames within this function -export function isIgnoreFile(directory: string, fileName: string): boolean { - const fileExtension = fileName.split('.').pop()?.toUpperCase(); - const file = `${directory}/${fileName}`; - - // Hardcoded file names to be ignored - const hardcodedIgnoreFiles = ['fhirpkg.lock.json', 'package.json', 'options.json']; - - // Check if the file is in the hardcoded list of files to ignore - if (hardcodedIgnoreFiles.includes(fileName)) return true; - - // Check if the file should be ignored based on the ignoreFiles list - if (ignoreFiles.includes(fileName)) return true; - - // Additional conditions for ignoring based on file extension and content - if (fileExtension === 'JSON' || fileExtension === 'XML') { - // Additional logic for handling specific file extensions or content - if (directory.includes('FHIR')) return false; // Example condition - try { - const json = JSON.parse(getJson(file, fs.readFileSync(file, 'utf8'))); - if (json.resourceType !== undefined) return false; - else { - console.info(`File ignored: ${file}`); - } - } catch (e) { - console.info(`Ignoring file ${file}. Error message: ${(e as Error).message}`); - } - } - - // If none of the conditions for ignoring the file are met, return false - return true; -} - -export function isDefinition(fileNameOriginal: string): boolean { - const validPrefixes = [ - 'CapabilityStatement', - 'ConceptMap', - 'CodeSystem', - 'MessageDefinition', - 'NamingSystem', - 'ObservationDefinition', - 'OperationDefinition', - 'Questionnaire', - 'SearchParameter', - 'StructureDefinition', - 'ValueSet', - 'StructureMap' - ]; - - const fileName = fileNameOriginal.toUpperCase(); - return validPrefixes.some(prefix => fileName.startsWith(prefix.toUpperCase())); -} - -export function testFileValidator(testDescription,file) { - - describe(file, () => { - const resource: any = fs.readFileSync(file, 'utf8'); - let client: AxiosInstance; - beforeAll(async () => { - var fileExtension = file.split('.').pop(); - if (fileExtension == 'xml' || fileExtension == 'XML') { - client = await getFhirClientXML(); - } else { - client = await getFhirClientJSON(); - } - }); - test(testDescription, async () => { - expect(resource).toBeDefined() - const response = await client.post('/$validate', resource).catch(function (error) { - return error.response - }) - expect(response.status === 200 || response.status === 400).toBeTruthy() - resourceChecks(response, true) - expect(response.status).toEqual(200) - }) - }); - - -} - -export function processYAMLfile(dir,file) { - console.info('Yaml: ' + file) - let input = undefined - try { - input = fs.readFileSync(dir + '/' + file, 'utf8'); - // console.info(input) - } catch (e) { - throw new Error('Error with ' + file + ' Error message ' + (e as Error).message) - } - - let resourceMap = new Map<string, string>() - - - SwaggerParser.parse(dir + '/' + file) - .catch((e)=> { - - }) - .then(api => { - - let json: any = api - if (json != undefined && json.paths != undefined) { - let paths = json.paths - for (const key in paths) { - if (paths.hasOwnProperty(key)) { - let operation = paths[key] - for (const keyOp in operation) { - if (operation.hasOwnProperty(keyOp)) { - resourceMap = processOperation(key+'-'+keyOp,operation[keyOp], resourceMap) - } - } - } - } - } - for (let [key, value] of resourceMap) { - fs.writeFile(path.join(dir, '/' + key + '.json'), JSON.stringify(value), function (err) { - if (err) { - return console.error(err); - } - }); - } - buildCapabilityStatement(dir,file,api) - - }); -} - -function processOperation (key,operation, resourceMap :Map<string, string>):Map<string, string> { - - let name = key.split('/').join('-') - name = name.split('{').join('-') - name = name.split('}').join('-') - if (name.startsWith('-')) name=name.replace('-','') - for (const keyOp in operation){ - - if(operation.hasOwnProperty(keyOp)){ - if (keyOp =='requestBody') processRequestBody(name + '-'+ keyOp ,operation[keyOp],resourceMap) - if (keyOp =='responses') processRespones(name +'-'+ keyOp,operation[keyOp],resourceMap) - } - } - return resourceMap -} - -function processContent (name, operation, resourceMap :Map<string, string>):Map<string, string> { - for (const keyOp in operation){ - if(operation.hasOwnProperty(keyOp)){ - if (keyOp == 'application/fhir+json') processFHIR(name, operation[keyOp],resourceMap) - } - } - return resourceMap -} - -function processFHIR (name,operation, resourceMap :Map<string, string>) :Map<string, string>{ - for (const keyOp in operation){ - if(operation.hasOwnProperty(keyOp)){ - if (keyOp == 'example') { - // console.log(JSON.stringify(operation[keyOp])) - resourceMap.set(name + '-' + resourceMap.size,operation[keyOp]) - } - if (keyOp == 'examples') processExamples(name, operation[keyOp],resourceMap) - } - } - return resourceMap -} - -function processExamples (name, operation, resourceMap :Map<string, string>) :Map<string, string> { - for (const keyOp in operation){ - if(operation.hasOwnProperty(keyOp)){ - if (keyOp == 'example') - { - // console.log(JSON.stringify(operation[keyOp].value)) - resourceMap.set(name + '-' + resourceMap.size,operation[keyOp].value) - } - } - } - return resourceMap -} -function processRespones (name, operation, resourceMap :Map<string, string>) :Map<string, string>{ - for (const keyOp in operation){ - if(operation.hasOwnProperty(keyOp)){ - processResponse(name, operation[keyOp],resourceMap) - } - } - return resourceMap -} -function processResponse (name, operation, resourceMap :Map<string, string>):Map<string, string> { - for (const keyOp in operation){ - if(operation.hasOwnProperty(keyOp)){ - if (keyOp =='content') processContent(name, operation[keyOp],resourceMap) - } - } - return resourceMap -} -function processRequestBody (name, operation, resourceMap :Map<string, string>):Map<string, string> { - for (const keyOp in operation){ - if(operation.hasOwnProperty(keyOp)){ - - if (keyOp =='content') processContent(name, operation[keyOp],resourceMap) - } - } - return resourceMap -} - -function ignoreSearchParameter(name: string) { - if (name == '_count') return true; - return false; -} - -export function buildCapabilityStatement(dir: string, file, api: any | void) { - - - if (api != undefined && api.paths != undefined) { - let date = new Date().toISOString() - let cs : CapabilityStatement = { - fhirVersion: "4.0.1", - resourceType: "CapabilityStatement", - date : date, - publisher: "IOPS Test Scripts", - description: "Automatically generated from OAS file", - format: [ - "application/fhir+json" - ], - kind: "requirements", - status: "draft", - rest: [ - { - mode:"server", - resource : [] - } - ] - }; - - for (const path in api.paths) { - - let resource = path.replace(/\/+$/, '').split('/').pop() - - // Need to check this is a FHIR resource - if (!resource.includes('{') && resource.match('^[A-Z].*')) { - let entry = { - type: resource, - profile: 'http://hl7.org/fhir/StructureDefinition/'+resource, - searchParam: [] - } - - if (api.paths.hasOwnProperty(path)) { - if (api.paths[path].get != undefined) { - let get = api.paths[path].get - - if (get.parameters != null) { - for (const parameterId in get.parameters) { - let parameter: any = get.parameters[parameterId] - if (parameter.in != undefined && parameter.in == 'query') { - // TODO need to get correct type, default to string - entry.searchParam.push({ - name: parameter.name, - type: 'string' - - }) - } - } - } - } - } - // Only currently testing search parameters, so only add these - if (entry.searchParam.length>0) { - cs.rest[0].resource.push(entry) - } - } - } - let name = file.split('.')[0] - fs.writeFile(path.join(dir, '/' + name + '-generated.json'), JSON.stringify(cs), function (err) { - if (err) { - return console.error(err); - } - }); - - } -} - -export function testFile( folderName: string, fileName: string, failOnWarning :boolean) -{ - let client: AxiosInstance; - let file = folderName + "/" + fileName; - let resource: any = undefined - let json = undefined - try { - resource = fs.readFileSync(file, 'utf8'); - json = JSON.parse(getJson(file, resource)) - } catch (e) { - throw new Error('Error with ' + file + ' Error message ' + (e as Error).message) - } - - describe(fileName, () => { - - beforeAll(async () => { - - var fileExtension = file.split('.').pop(); - if (fileExtension == 'xml' || fileExtension == 'XML') { - client = await getFhirClientXML(); - } else { - client = await getFhirClientJSON(); - } - }); - test('Check profiles are not present in resource (Implementation Guide Best Practice)', () => { - // Disable profile check for Parameters - if (json.meta != undefined && json.resourceType !== 'Parameters') { - if (ErrorIfMetaProfilePresent == true) { - expect(json.meta.profile == undefined).toBeTruthy() - } - } - if (json.resourceType === 'Bundle') { - let bundle : Bundle = json - if (bundle.entry != undefined) { - for (let entry of bundle.entry) { - // Disable profile check for Parameters - if (entry.resource !== undefined && entry.resource.meta != undefined && entry.resource.resourceType !== 'Parameters') { - if (ErrorIfMetaProfilePresent == true) { - expect(entry.resource.meta.profile == undefined).toBeTruthy() - } - } - } - } - } - }) - test('Profile has no snapshot and Resource is present', () => { - expect(resource).toBeDefined() - - if (json.resourceType == "StructureDefinition") { - let structureDefinition: StructureDefinition = json - expect(structureDefinition.snapshot).toBeFalsy() - } - }) - - if (json.resourceType == "MessageDefinition") { - test('FHIR Message - check MessageDefinition.focus does not contain MessageHeader or other Definitions', () => { - let messageDefinition: MessageDefinition = json - for (let focus of messageDefinition.focus) { - // Having a messageHeader be the focus of a MessageHeader makes no sense - potential loop - expect(focus.code !== 'MessageHeader').toBeTruthy() - expect(focus.code.endsWith('Definition')).toBeFalsy() - } - - }) - } - if (json.resourceType == "CapabilityStatement") { - describe('FHIR CapabilityStatement', () => { - let capabilityStatement: CapabilityStatement = json - if ( - folderName === "CapabilityStatement" - && capabilityStatement != undefined - && (capabilityStatement.kind !== undefined && capabilityStatement.kind !== "instance") - && capabilityStatement.rest != undefined - && capabilityStatement.rest.length > 0 - && capabilityStatement.rest[0].resource != undefined) { - for (let resource of capabilityStatement.rest[0].resource) { - if (resource.searchParam != undefined && resource.searchParam.length > 0) { - describe(resource.type + ' Search Parameter', () => { - for (let searchParameter of resource.searchParam) { - if (searchParameter.name != undefined) { - let resourceName = resource.type - if (!ignoreSearchParameter(searchParameter.name)) { - describe(searchParameter.name, () => { - test('Verify '+resource.type + ' SearchParameter = '+searchParameter.name, async () => { - - const response = await client.get('/SearchParameter?code=' + searchParameter.name + '&base=' + resourceName).catch(function (error) { - return error.response - }) - expect(response.status).toEqual(200) - expect(response.data).toBeDefined() - var resource = response.data - expect(resource.resourceType == 'Bundle').toBeTruthy() - var bundle: Bundle = resource - expect(bundle.entry).toBeDefined() - expect(bundle.entry.length > 0).toBeTruthy() - expect(bundle.entry[0].resource).toBeDefined() - expect(bundle.entry[0].resource.resourceType == 'SearchParameter').toBeTruthy() - var search : SearchParameter = bundle.entry[0].resource as SearchParameter - expect(search.type).toBeDefined() - expect(searchParameter.type).toBeDefined() - // TODO this needs group involvement before elaboration - // expect(search.type == searchParameter.type).toBeTruthy() - - }) - }) - } - } - } - }) - } - } - } - }) - } - let validate = true - if (json != undefined && json.resourceType == "StructureDefinition") { - if (json.kind == "logical") { - // skip for now - validate = false - } - } - if (validate) { - test('FHIR Validation', async () => { - const response = await client.post('/$validate', resource).catch(function (error) { - return error.response - }) - if (!response) { - console.error("FHIR call did not return a response object"); - } - expect(response && (response.status === 200 || response.status === 400)).toBeTruthy(); - - //we can ignore warnings on retired resources - these would not be in a balloted package - if (json.status == 'retired') { - resourceChecks(response, false) - } else { - resourceChecks(response, failOnWarning) - } - expect(response.status).toEqual(200) - }); - } - } - ) -} - - - diff --git a/src/configureValidator.ts b/src/configureValidator.ts deleted file mode 100644 index bc95531..0000000 --- a/src/configureValidator.ts +++ /dev/null @@ -1,267 +0,0 @@ -import * as fs from "fs"; -import path from "path"; -import { - buildCapabilityStatement, - downloadPackage, - getJson, - isDefinition, - isIgnoreFolder, - processYAMLfile -} from "./common.js"; -import { tar } from 'zip-a-folder'; -import * as console from "console"; - - -const jsonminify = require("jsonminify"); -let fileName = 'package.json'; - let source = '../' - let destination = '../../' - - const args = require('minimist')(process.argv.slice(2)) - - let destinationPath = 'validation-service-fhir-r4/src/main/resources'; - - -let ontoServer: string = 'https://ontology.nhs.uk/authoring/fhir/'; -if (process.env.ONTO_URL != undefined) { - ontoServer = process.env.ONTO_URL; - } - if (args != undefined) { - if (args['source'] != undefined) { - source = args['source']; - } - if (args['destination'] != undefined) { - destination = args['destination']; - } - } - - - destinationPath = destination + destinationPath - console.info('Destination - ' + destinationPath) - console.info('Current directory - ' + __dirname) - - const workerDir = __dirname; - - class TarMe { - static async main(src, destination) { - await tar(src, destination); - } - } - - // update manifest file if source supplied, skip otherwise - let manifest = []; - - - fileName = source + fileName - - const packageName: string = process.env.PACKAGE_NAME; - const packageVersion: string = process.env.PACKAGE_VERSION; - - if (packageName != undefined && packageVersion != undefined) { - // Extract FHIR from OAS - processFolderOAS(source, source); - - console.info('Configuring manifest for ' + packageName + ' ' + packageVersion) - manifest.push({ - "packageName": packageName, - "version": packageVersion - }) - fs.writeFile(path.join(workerDir, '../validation-service-fhir-r4/src/main/resources' + '/manifest.json'), JSON.stringify(manifest, null, 2), function (err) { - if (err) { - return console.error(err); - } - }); - - - - // process OAS files and extract FHIR Examples? - function processFolderOAS(dir : string, source: string) { - // console.info(dir) - if (fs.existsSync(dir)) { - processFolderContentOAS(dir,source) - } - } - - function processFolderContentOAS(dir : string, source: string) { - // console.info('Process folder: '+dir) - const list = fs.readdirSync(dir); - list.forEach(function (file) { - if (fs.lstatSync(dir +'/'+file).isDirectory()) { - if (!isIgnoreFolder(file)) processFolderOAS(dir+ "/" + file, source) - } else { - if (file.toUpperCase().endsWith('YAML') || file.toUpperCase().endsWith('YML')) { - - processYAMLfile(dir, file) - - } - } - }) - } - - - - - } else - if (fs.existsSync(fileName)) { - const file = fs.readFileSync(fileName, 'utf-8'); - const pkg = JSON.parse(file); - pkg.version = '0.0.0-prerelease'; - - if (pkg.dependencies != undefined) { - for (let key in pkg.dependencies) { - if (key != 'hl7.fhir.r4.core') { - const entry = { - "packageName": key, - "version": pkg.dependencies[key] - }; - console.info('Using package ' + key + '-' + pkg.dependencies[key]) - - // downloadPackage(destinationPath, key, pkg.dependencies[key]); - manifest.push(entry); - } - } - console.info('Adding manifest entry for ' + pkg.name) - manifest.push({ - "packageName": pkg.name, - "version": pkg.version - }) - // Ensure temp dir is empty - console.info('Current directory - ' + __dirname) - try { - fs.rmdirSync(path.join(workerDir, '../temp'), {recursive: true}); - } catch (error) { - // do nothing - console.info('clean up - directory did not exist') - } - // new version fs.rmSync(path.join(__dirname, '../temp'), { recursive: true, force: true }); - - fs.mkdirSync(path.join(workerDir, '../temp/package/examples'), {recursive: true}); - fs.mkdirSync(path.join(workerDir, destinationPath), {recursive: true}); - fs.writeFile(path.join(workerDir, destinationPath + '/manifest.json'), JSON.stringify(manifest, null, 2), function (err) { - if (err) { - return console.error(err); - } - }); - console.info(JSON.stringify(pkg)) - fs.writeFile('temp/package/package.json', JSON.stringify(pkg, null, 2), function (err) { - if (err) { - return console.error(err); - } - }); - const list = fs.readdirSync(source); - list.forEach(function (fileName) { - if (!isIgnoreFolder(fileName)) { - if (fs.lstatSync(source + fileName).isDirectory()) { - if (isDefinition(fileName)) { - copyFolder(source + fileName); - } else { - copyExamplesFolder(source + fileName); - } - } - } - }); - - console.info('Creating temporary package ' + pkg.name + '-' + pkg.version); - console.info('Deleting temporary files'); - deleteFile('temp/package/.DS_Store.json'); - deleteFile('temp/package/examples/.DS_Store.json'); - - TarMe.main(path.join(__dirname, '../temp'), path.join(__dirname, destinationPath + '/' + pkg.name + '-' + pkg.version + '.tgz')) - .then(function () { - }); - - } - } else { - const manifestFile = path.join(workerDir, destinationPath + '/manifest.json'); - if (fs.existsSync(manifestFile)) { - console.info("Reading manifest file"); - const file = fs.readFileSync(manifestFile, 'utf-8'); - manifest = JSON.parse(file); - for (let index in manifest) { - - if (manifest[index].packageName != 'hl7.fhir.r4.core') { - const entry = manifest[index]; - console.info('Using package ' + entry.packageName + '-' + entry.version) - downloadPackage(destinationPath, entry.packageName, entry.version); - } - } - } else { - - console.info(manifest); - console.info("Error - No source package.json or validator manifest.json found"); - - } - } - - function deleteFile(file) { - fs.stat(file, function (err) { - //console.info(stats);//here we got all information of file in stats variable - if (err) { - //return console.error(err); - } - fs.unlink(file, function (err) { - if (err) { - return; - } - console.info('file deleted successfully ' + file); - }); - }); - } - - - function copyExamplesFolder(dir) { - - console.info('Processing Examples Folder ' + dir); - if (fs.existsSync(dir)) { - - const list = fs.readdirSync(dir); - list.forEach(function (file) { - if (!file.startsWith(".")) { - let ext: string = path.extname(file) - let root: string = file.substring(0, file.length - ext.length) - let destination = 'temp/package/examples/' + root + '.json'; - - const resource: any = fs.readFileSync(dir + "/" + file, 'utf8'); - // TODO This may not be 100% - if we can use XML in packages we should do - const json = getJson(file, resource); - fs.writeFile(destination, jsonminify(json), function (err) { - if (err) { - return console.error(err); - } - }); - } - }) - } else { - console.info('INFO Folder not found ' + dir); - } - } - - function copyFolder(dir) { - - console.info('Processing Definition Folder ' + dir); - if (fs.existsSync(dir)) { - - const list = fs.readdirSync(dir); - list.forEach(function (file) { - let ext: string = path.extname(file) - let root: string = file.substring(0, file.length - ext.length) - let destination = 'temp/package/' + root + '.json'; - if (dir.includes('MessageDefinition') || dir.includes('ObservationDefinition')) { - destination = 'temp/package/examples/' + root + '.json'; - } - try { - const resource: any = fs.readFileSync(dir + "/" + file, 'utf8'); - const json = getJson(file, resource); - fs.writeFile(destination, jsonminify(json), function (err) { - if (err) { - return console.error(err); - } - }); - } catch (e) { - console.error(e.message + ' Directory '+ dir + "/" + file) - } - }) - } else { - console.info('INFO Folder not found ' + dir); - } - } diff --git a/src/populateValidator.ts b/src/populateValidator.ts deleted file mode 100644 index df3fd6a..0000000 --- a/src/populateValidator.ts +++ /dev/null @@ -1,165 +0,0 @@ - -import axios from "axios"; -import {URLSearchParams} from "url"; -import fs from "fs"; -import path from "path"; -import {delay, getJson} from "./common.js"; - -const fileName = '../package.json'; - -const decompress = require('decompress'); - -const args = require('minimist')(process.argv.slice(2)) - -const readThrottle = 10 -const postThrottle = 500 - -let accessToken: String; - -let ontoServer = 'https://ontology.nhs.uk/authoring/fhir'; - -if (process.env.ONTO_CLIENT_ID!= undefined) { - ontoServer = process.env.ONTO_CLIENT_ID; -} -let clientId: string; //process.env.ONTO_CLIENT_ID -let clientSecret: string; //process.env.ONTO_CLIENT_SECRET -let fileNo = 0; -let postNo = 0; -const destinationPath = '/'; - -if (args!= undefined) { - if (args['clientId']!= undefined) { - clientId = args['clientId']; - } - if (args['clientSecret']!= undefined) { - clientSecret = args['clientSecret']; - } -} - - if (clientId != undefined && clientSecret != undefined) { - console.info('Configuring NHS Onto Server connection') - const params = new URLSearchParams(); - params.append('grant_type', 'client_credentials'); - params.append('client_id', clientId); - params.append('client_secret', clientSecret); - axios.post('https://ontology.nhs.uk/authorisation/auth/realms/nhs-digital-terminology/protocol/openid-connect/token', - params.toString()).then(response => { - const data: any = response.data - accessToken = data.access_token - processPackages() - },err =>{ - console.error(err) - }) - } - - function processPackages() { - if (fs.existsSync(fileName)) { - const file = fs.readFileSync(fileName, 'utf-8'); - const pkg = JSON.parse(file); - - if (pkg.dependencies != undefined) { - for( let key in pkg.dependencies) { - console.info('Using package '+ key + '-' + pkg.dependencies[key]) - dldPackage(destinationPath,key,pkg.dependencies[key] ); - - } - } - } - } - -async function dldPackage(destinationPath, name,version ) { - const url = 'https://packages.simplifier.net/' + name + '/' + version; - console.info('Download from ' + url); - try { - const response = await axios.get(url, { - responseType: 'arraybuffer' - }); - - // @ts-ignore - const buffer = Buffer.from(response.data, 'binary'); - - fs.mkdirSync(path.join(__dirname,destinationPath ),{ recursive: true }); - fs.writeFileSync(path.join(__dirname,destinationPath + '/' + name +'-' + version + '.tgz'), buffer); - decompress(path.join(__dirname,destinationPath + '/' + name +'-' + version + '.tgz'), path.join(__dirname,destinationPath + '/' + name +'-' + version)).then(() => { - const dir = path.join(__dirname,destinationPath + '/' + name +'-' + version + '/package') - if (fs.existsSync(dir)) { - processPkg(dir) - } - }); - - } catch (exception) { - process.stderr.write(`ERROR received from ${url}: ${exception}\n`); - throw new Error('Unable to download package '+url); - } -} - -async function processPkg( dir) { - - - const list = fs.readdirSync(dir); - list.forEach(function (file) { - if (file.includes('.DS_Store')) return; - if (file.includes('examples')) return; - file = dir + "/" + file; - const data: any = fs.readFileSync(file, 'utf8'); - - const resource = JSON.parse(getJson(file,data)) - - if (resource.resourceType =='CodeSystem') { - checkResource(resource) - } - if (resource.resourceType =='ValueSet') { - checkResource(resource) - } - }) - -} - - -async function checkResource(resource : any) { - fileNo++ - // throttle requests - const localFiledNo = fileNo; - await delay( fileNo * readThrottle) - console.info(localFiledNo + ' - Checking '+ resource.resourceType + ' url ' + resource.url); - await axios.get(ontoServer + '/'+resource.resourceType+'?url=' + resource.url, { - headers: { - 'Authorization': 'Bearer '+accessToken - } - }).then( response => { - const bundle: any = response.data - - if (bundle.resourceType == 'Bundle') - if ((bundle.entry == undefined || bundle.entry.length == 0 )) { - console.info(localFiledNo + ' - Not found, adding ' + resource.url) - postResource(localFiledNo, resource) - } else { - console.info(localFiledNo + ' - Found ' + resource.url) - if (bundle.entry.length > 1) console.info('WARN ' + resource.url + ' = ' + bundle.entry.length ) - } - }, - error => { - console.info(localFiledNo + ' - Search failed for '+ resource.resourceType + ' url=' + resource.url + ' failed with ' + error.message) - //console.info(error) - } - ) -} - async function postResource(localFileNo, resource) { - - // start 2 seconds after query - postNo++; - const localPostNo = postNo - await delay(postThrottle * postNo) - console.info(localFileNo + '-'+ localPostNo +' Posting '+ resource.url); - await axios.post(ontoServer + '/'+resource.resourceType, resource, { - headers: { - 'Authorization': 'Bearer ' + accessToken - } - }).then(() => { - console.info(localFileNo + '-'+ localPostNo+ ' - Posted - ' + resource.url) - }, err => { - console.info(localFileNo + '-'+ localPostNo+ ' - Post for ' + resource.url + ' failed with ' + err.message) - if (err.data != undefined) console.info(err.data) - - }) - } diff --git a/src/validate.test.ts b/src/validate.test.ts deleted file mode 100644 index 7676f73..0000000 --- a/src/validate.test.ts +++ /dev/null @@ -1,123 +0,0 @@ -import { - getFhirClientJSON, isIgnoreFile, isIgnoreFolder, NEW_LINE, testFile, getStrictValidation -} from "./common.js"; -import * as fs from "fs"; -import {describe, expect, jest} from "@jest/globals"; -import axios, {AxiosInstance} from "axios"; -import * as console from "console"; - -// Retry: This lines address the "$validate-code" read timeoout (e.g., when the terminology endpoint is slow) -jest.retryTimes(2, { logErrorsBeforeRetry: true }); - -// Initial terminology queries can take a long time to process - cached responses are much more responsive -jest.setTimeout(120_000) - - -let gitHubSummary = '### :fire_engine: Logs '+NEW_LINE; - -const args = require('minimist')(process.argv.slice(2)) - //const args = process.argv - - let source = '../' - let examples: string - -const failOnWarning = getStrictValidation(); -console.log(`failOnWarning: ${failOnWarning}`); - - gitHubSummary += 'Strict validation: ' + failOnWarning + NEW_LINE; - - if (args!= undefined) { - if (args['source']!= undefined) { - source = args['source']; - - } - if (args['examples']!= undefined) { - examples = args['folder']; - source = '../' - } - } - - try { - const resource: any = fs.readFileSync(source + '/package.json', 'utf8') - if (resource != undefined) { - let pkg = JSON.parse(resource) - if (pkg.name.startsWith('fhir.r4.ukcore') || pkg.name.startsWith('UKCore')) { - gitHubSummary += 'Detected UKCore ' + NEW_LINE; - } - if (pkg.dependencies != undefined) { - for (let key in pkg.dependencies) { - if (key.startsWith('fhir.r4.ukcore')) { - gitHubSummary += 'ukcore dependency found' + NEW_LINE - } - } - } - } - } catch (e) { - gitHubSummary += 'No package.json found' + NEW_LINE; - } - - describe('Test Environment', ()=> { - let client: AxiosInstance; - beforeAll(async () => { - client = await getFhirClientJSON(); - }); - test('Validator is functioning ', async function () { - - const result = await client.get('/metadata') - expect(result.status).toEqual(200) - - }) - }); - - gitHubSummary += 'Current directory - ' + __dirname - - // Main body of the tests - testFolder(source, source) - - - // Experiment to writeback additional information - const gitSummaryFile = process.env.GITHUB_STEP_SUMMARY - console.info('GitSummary Text = '+gitHubSummary) - if (fs.existsSync(gitSummaryFile)) { - console.info('Git Summary found : ' + gitSummaryFile) - try { - fs.appendFileSync(gitSummaryFile, gitHubSummary); - } catch (e) { - console.info('Error processing '+ gitSummaryFile + ' Error message '+ (e as Error).message) - } - } else { - console.info('Git Summary not found : ' + gitSummaryFile) - } - - function testDescription(folder: string) : string { - return folder.split('/').pop() - } - - function testFolder(dir : string, source: string) { - - if (fs.existsSync(dir)) { - if (dir == source ) { - testFolderContent(dir,source) - } else { - describe(testDescription(dir), () => { - testFolderContent(dir, source) - }); - } - } - } - - -function testFolderContent(dir : string, source: string) { - console.info('Test folder: '+dir) - const list = fs.readdirSync(dir); - list.forEach(function (file) { - if (fs.lstatSync(dir +'/'+file).isDirectory()) { - if (!isIgnoreFolder(file)) testFolder(dir+ "/" + file, source) - - } else { - if (!isIgnoreFile(dir,file)) { - testFile( dir, file, failOnWarning) - } - } - }) - } diff --git a/src/validator.test.ts b/src/validator.test.ts deleted file mode 100644 index a040069..0000000 --- a/src/validator.test.ts +++ /dev/null @@ -1,97 +0,0 @@ -import { - getFhirClientJSON, NEW_LINE, testFileError, testFileErrorProfile, testFileValidator, testFileWarning, -} from "./common.js"; -import {describe, expect, jest} from "@jest/globals"; -import {AxiosInstance} from "axios"; -import fs from "fs"; - - -// Retry: This lines address the "$validate-code" read timeoout (e.g., when the terminology endpoint is slow) -jest.retryTimes(2, { logErrorsBeforeRetry: true }); - -const args = require('minimist')(process.argv.slice(2)) - -let terminology = true; -jest.setTimeout(120_000) - -let gitHubSummary = '### :fire_engine: Logs '+NEW_LINE; - - let failOnWarning = true; - if (process.env.FAILONWARNING != undefined && process.env.FAILONWARNING.toLowerCase() == 'false') { - failOnWarning = false; - } - gitHubSummary += 'Strict validation: ' + failOnWarning + NEW_LINE; - -describe('Test Environment', ()=> { - let client: AxiosInstance; - beforeAll(async () => { - client = await getFhirClientJSON(); - }); - test('Validator is functioning ', async function () { - - const result = await client.get('/metadata') - expect(result.status).toEqual(200) - - }) -}); - -describe('Testing validation passes for valid HL7 FHIR resources', () => { - // Patient - testFileValidator('Test HL7 FHIR resource passes validation ','Examples/pass/patient.json') - - // MedicationRequest - testFileValidator('Test HL7 FHIR resource passes validation ','Examples/pass/MedicationRequest-pass.json') - - // MedicationDispense - testFileValidator('Test HL7 FHIR resource passes validation ','Examples/pass/MedicationDispense-pass.json') - - // Bundle - testFileValidator('Test HL7 FHIR Seaarch Immmunization Bundle passes validation ','Examples/pass/Bundle-searchset-COVIDImmunization.json') - testFileValidator('Test HL7 FHIR Seaarch Observation Bundle passes validation ','Examples/pass/Bundle-searchset-COVIDObservation.json') - - // TODO This should be a pass - testFileError('Test EPS fhirPath constraint issue (present in 6.2.x HAPI) ','Examples/pass/MedicationRequest-constraints.json', undefined) -}); - -describe('Testing validation fails invalid FHIR resources', () => { - - //Patient - - - // PractitionerRole - - - // MedicationRequest - testFileError('Check validation fails when no medication code is supplied', 'Examples/fail/MedicationRequest-missingMedication.json',undefined) - // testFileError('Check validation fails when no medication code is supplied','Examples/fail/MedicationRequest-missingMedication.json','MedicationRequest.medication[x]: minimum required = 1') - testFileError('Check validation fails when identifier is an object not an array (AEA-1820)','Examples/fail/MedicationRequest-invalid-json.json', undefined) - - // MedicationDispense - testFileError('Check validation fails when daysSupply has an incorrect unitsofmeasure code','Examples/fail/MedicationDispense-daysSupply-invalidaUnitOfMeasure.json',undefined) - testFileError('Check validation fails when dosageInstruction.timing has an incorrect unitsofmeasure code','Examples/fail/MedicationDispense-timing-invalidaUnitOfMeasure.json','UnitsOfTime') - - testFileError('Check validation fails when MedicationRequest references Patient in the MessageHeader.focus but is present','Examples/fail/Bundle-prescription-order-incorrectFocus.json', 'Invalid Resource target type.') - // Should be in MessageDefinition?? - testFileWarning('Check validation fails when Location is referenced but not present in the FHIR Message','Examples/fail/Bundle-prescription-order-locationNotPresent.json', 'URN reference is not locally contained within the bundle') - - testFileError('Check validation fails when Message Bundle.entry.fullUrl is absent','Examples/fail/Bundle-prescription-order-missingFullUrl.json','Bundle entry missing fullUrl') - testFileError('Check validation fails when SearchSet Bundle.entry.fullUrl is absent (AEA-1828)','Examples/fail/Bundle-searchset-COVIDExemption-missingFullUrl.json','Except for transactions and batches') - -}); - - -const gitSummaryFile = process.env.GITHUB_STEP_SUMMARY -console.info('GitSummary Text = '+gitHubSummary) -if (fs.existsSync(gitSummaryFile)) { - console.info('Git Summary found :' + gitSummaryFile) - try { - fs.appendFileSync(gitSummaryFile, gitHubSummary); - } catch (e) { - console.info('Error processing '+ gitSummaryFile + ' Error message '+ (e as Error).message) - } -} else { - console.info('Git Summary not found :' + gitSummaryFile) -} - - - diff --git a/test-reporter/index.js b/test-reporter/index.js deleted file mode 100644 index b9303f9..0000000 --- a/test-reporter/index.js +++ /dev/null @@ -1,17 +0,0 @@ -const tsNode = require("ts-node"); - -tsNode.register({ - transpileOnly: true, - compilerOptions: { - "module": "commonjs", - "esModuleInterop": true, - "target": "es2017", - "lib": [ - "es2019" - ], - "moduleResolution": "node", - "baseUrl": ".", - }, -}); - -module.exports = require("./test-reporter"); diff --git a/test-reporter/test-reporter.ts b/test-reporter/test-reporter.ts deleted file mode 100644 index 7e8d726..0000000 --- a/test-reporter/test-reporter.ts +++ /dev/null @@ -1,103 +0,0 @@ -import {Reporter, TestContext} from '@jest/reporters'; -import { AggregatedResult } from '@jest/test-result'; -import fs from "fs"; -import {NEW_LINE} from "../src/common.js"; -import * as process from "process"; -import * as console from "console"; - -type CustomReporter = Pick<Reporter, "onRunComplete">; - - - -export default class TestReporter implements CustomReporter { - constructor() {} - - onRunComplete(_: Set<TestContext>, results: AggregatedResult) { - let gitHubSummary = NEW_LINE + NEW_LINE+'### :fire: Report '+NEW_LINE; - let gitrepoBranch = process.env.GITHUB_REF_NAME - const gitrepoName = process.env.GITHUB_REPOSITORY - - if (gitrepoBranch != null) { - gitHubSummary += ' Branch '+ gitrepoBranch+' '+NEW_LINE; - } else { - gitrepoBranch = 'main'; - } - if (gitrepoName != null) { - gitHubSummary += ' Name '+ gitrepoName+' '+NEW_LINE+NEW_LINE; - } - gitHubSummary += ' :x: Failed '+ results.numFailedTests+' '+NEW_LINE; - gitHubSummary += ' :white_check_mark: Passed '+ results.numPassedTests+' '+NEW_LINE; - gitHubSummary += NEW_LINE+NEW_LINE; - for(let parent of results.testResults) { - let lastGroupName=''; - - for (let status of ['issues','summary']) { - if (status == 'issues') gitHubSummary += '### Issues'+NEW_LINE+NEW_LINE; - if (status == 'issues') gitHubSummary += '### Summary'+NEW_LINE+NEW_LINE; - for (let result of parent.testResults) { - if ((status == 'issues' && result.status == 'failed') || - (status == 'summary') ) { - let group = result.fullName.split(result.title) - if (lastGroupName == '' || (group.length > 0 && lastGroupName != group[0])) { - lastGroupName = group[0] - if (lastGroupName.includes('.')) { - // may be able to get rid of this - let destination = process.env.TEST_REPO - let destinationBranch = process.env.TEST_BRANCH - if (destinationBranch == undefined) destinationBranch = 'main' - let name = result.ancestorTitles.join('/') - if (destination != undefined) { - gitHubSummary += '[' + name + '](' + ('https://github.com/' + destination + '/blob/' + destinationBranch + '/' + name) + ') ' + NEW_LINE; - } else { - gitHubSummary += '[' + name + '](' + ('../../blob/' + gitrepoBranch + '/' + name) + ') ' + NEW_LINE; - } - } else { - gitHubSummary += '#### ' + lastGroupName + ' ' + NEW_LINE; - } - } - if (result.status == 'passed') gitHubSummary += ' * :white_check_mark:' - if (result.status == 'failed') gitHubSummary += ' * :x:' - gitHubSummary += " " + result.title + NEW_LINE; - if (status =='issues') { - // Only list errors for issues section - for (let error of result.failureMessages) { - // Remove the stack, does not mean anything to modellers - var pattern = 'at '; - error = error.split(NEW_LINE).filter(function (str) { return !(str.trim().startsWith(pattern)); }) - .join(NEW_LINE + ' > '); - error = this.urlify(error) - gitHubSummary += NEW_LINE + ' > ' + error + NEW_LINE + NEW_LINE - } - } - } - } - } - } - - const gitSummaryFile = process.env.GITHUB_STEP_SUMMARY - console.info('GitSummary Text = '+gitHubSummary) - if (fs.existsSync(gitSummaryFile)) { - console.info('Git Summary found :' + gitSummaryFile) - try { - fs.appendFileSync(gitSummaryFile, gitHubSummary); - } catch (e) { - console.error('Error processing '+ gitSummaryFile + ' Error message '+ (e as Error).message) - } - } else { - console.info('Git Summary not found :' + gitSummaryFile) - } - } - - urlify(text: string): string { - var urlRegex = /(https?:\/\/[^\s]+)/g; - return text.replace(urlRegex, function(url) { - function getSimplifierUrl(url: string) { - url = url.replace(')','') - if (process.env.PACKAGE_NAME == undefined) return '[' + url + ']('+ 'https://simplifier.net/resolve?fhirVersion=R4&scope=uk.nhsdigital.r4&canonical='+url + ')' - return '[' + url + ']('+ 'https://simplifier.net/resolve?fhirVersion=R4&scope='+ process.env.PACKAGE_NAME +'@' + process.env.PACKAGE_VERSION + '&canonical='+url + ')' - } - return getSimplifierUrl(url); - }) - } - -} diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 7db77b1..0000000 --- a/tsconfig.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "esModuleInterop": true, - "target": "es2017", - "lib": [ - "es2019" - ], - "moduleResolution": "node", - "baseUrl": ".", - }, - "include": [ - "specs/**/*", - "." - ], - "ts-node": { - // Do not forget to `npm i -D tsconfig-paths` - "require": ["tsconfig-paths/register"] - } -} diff --git a/validation.iml b/validation.iml deleted file mode 100644 index 8021953..0000000 --- a/validation.iml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<module type="WEB_MODULE" version="4"> - <component name="NewModuleRootManager" inherit-compiler-output="true"> - <exclude-output /> - <content url="file://$MODULE_DIR$" /> - <orderEntry type="inheritedJdk" /> - <orderEntry type="sourceFolder" forTests="false" /> - </component> -</module> \ No newline at end of file