diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index e69de29b..260758d9 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -0,0 +1,3 @@ +* Large rework of preset system to include pre-cached validation engines +* Expand version endpoint to include core version +* Updated core version including fixes related to locale terminology validation diff --git a/gradle.properties b/gradle.properties index f0ae98c5..2eed6f81 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ kotlin.code.style=official kotlin.js.generate.executable.default=false # versions -fhirCoreVersion=6.3.10 +fhirCoreVersion= 6.3.20 junitVersion=5.7.1 mockk_version=1.10.2 @@ -39,6 +39,3 @@ koinVersion=3.2.1 logbackVersion=1.5.3 kmongoVersion=4.5.0 - - - diff --git a/http-client-tests/http-client.env.json b/http-client-tests/http-client.env.json new file mode 100644 index 00000000..15809801 --- /dev/null +++ b/http-client-tests/http-client.env.json @@ -0,0 +1,8 @@ +{ + "default": { + "host": "https://validator.fhir.org" + }, + "local": { + "host": "http://localhost:8082" + } +} \ No newline at end of file diff --git a/http-client-tests/resources/explicit-preset-requests/cda.json b/http-client-tests/resources/explicit-preset-requests/cda.json new file mode 100644 index 00000000..ab111684 --- /dev/null +++ b/http-client-tests/resources/explicit-preset-requests/cda.json @@ -0,0 +1,16 @@ +{ + "cliContext": { + "sv": "5.0.0", + "igs": [ + "hl7.cda.uv.core#2.0.0-sd-snapshot1" + ], + "locale": "en" + }, + "filesToValidate": [ + { + "fileName": "manually_entered_file.xml", + "fileContent": "\n\n\n\n\t\n\t\n\t\n \n \n \n\t\n\t\n\t\n\tGood Health Hospital Care Plan\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t2222 Home Street\n\t\t\t\tBeaverton\n\t\t\t\tOR\n\t\t\t\t97867\n\t\t\t\tUS\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tEve\n\t\t\t\t\t\n\t\t\t\t\tBetterhalf\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tEve\n\t\t\t\t\t\n\t\t\t\t\tEverywoman\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t2222 Home Street\n\t\t\t\t\t\tBeaverton\n\t\t\t\t\t\tOR\n\t\t\t\t\t\t97867\n\t\t\t\t\t\tUS\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tBoris\n\t\t\t\t\t\t\tBo\n\t\t\t\t\t\t\tBetterhalf\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t4444 Home Street\n\t\t\t\t\t\t\tBeaverton\n\t\t\t\t\t\t\tOR\n\t\t\t\t\t\t\t97867\n\t\t\t\t\t\t\tUS\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\tThe DoctorsTogether Physician Group\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t1007 Health Drive\n\t\t\t\t\tPortland\n\t\t\t\t\tOR\n\t\t\t\t\t99123\n\t\t\t\t\tUS\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t1007 Healthcare Drive\n\t\t\t\tPortland\n\t\t\t\tOR\n\t\t\t\t99123\n\t\t\t\tUS\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tEllen\n\t\t\t\t\tEnter\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t1007 Healthcare Drive\n\t\t\t\tPortland\n\t\t\t\tOR\n\t\t\t\t99123\n\t\t\t\tUS\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tHarold\n\t\t\t\t\tHippocrates\n\t\t\t\t\tD.O.\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\tGood Health HIE\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t1009 Healthcare Drive \n\t\t\t\t\tPortland\n\t\t\t\t\tOR\n\t\t\t\t\t99123\n\t\t\t\t\tUS\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t100 Better Health Rd.\n\t\t\t\tAnn Arbor\n\t\t\t\tMI\n\t\t\t\t97857\n\t\t\t\tUS\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tNurse\n\t\t\t\t\tCaresalot\n\t\t\t\t\tRN\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tBetter Health Hospital\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t100 Better Health Rd.\n\t\t\t\t\tAnn Arbor\n\t\t\t\t\tMI\n\t\t\t\t\t97857\n\t\t\t\t\tUS\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t17 Daws Rd.\n\t\t\t\tAnn Arbor\n\t\t\t\tMI\n\t\t\t\t97857\n\t\t\t\tUS\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tMrs.\n\t\t\t\t\tMartha\n\t\t\t\t\tJones\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t17 Daws Rd.\n\t\t\t\tAnn Arbor\n\t\t\t\tMI\n\t\t\t\t97857\n\t\t\t\tUS\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tMrs.\n\t\t\t\t\tMartha\n\t\t\t\t\tJones\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n \n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tPROBLEMS\n\t\t\t\tNo Information\n\t\t\t
\n\t\t
\n
\n\t
\n
", + "fileType": null + } + ] +} \ No newline at end of file diff --git a/http-client-tests/resources/explicit-preset-requests/default.json b/http-client-tests/resources/explicit-preset-requests/default.json new file mode 100644 index 00000000..60777a93 --- /dev/null +++ b/http-client-tests/resources/explicit-preset-requests/default.json @@ -0,0 +1,13 @@ +{ +"cliContext": { +"sv": "4.0.1", +"locale": "en" +}, +"filesToValidate": [ +{ +"fileName": "manually_entered_file.json", +"fileContent": "{\n \"resourceType\": \"Observation\",\n \"id\": \"blood-pressure\",\n \"meta\": {\n \"profile\": [\n \"http://hl7.org/fhir/StructureDefinition/vitalsigns\"\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"

Generated Narrative with Details

id: blood-pressure

meta:

identifier: urn:uuid:187e0c12-8dd2-67e2-99b2-bf273c878281

basedOn:

status: final

category: Vital Signs (Details : {http://terminology.hl7.org/CodeSystem/observation-category code 'vital-signs' = 'Vital Signs', given as 'Vital Signs'})

code: Blood pressure systolic & diastolic (Details : {LOINC code '85354-9' = 'Blood pressure panel with all children optional', given as 'Blood pressure panel with all children optional'})

subject: Patient/example

effective: 17/09/2012

performer: Practitioner/example

interpretation: Below low normal (Details : {http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation code 'L' = 'Low', given as 'low'})

bodySite: Right arm (Details : {SNOMED CT code '368209003' = 'Right upper arm', given as 'Right arm'})

component

code: Systolic blood pressure (Details : {LOINC code '8480-6' = 'Systolic blood pressure', given as 'Systolic blood pressure'}; {SNOMED CT code '271649006' = 'Systolic blood pressure', given as 'Systolic blood pressure'}; {http://acme.org/devices/clinical-codes code 'bp-s' = 'bp-s', given as 'Systolic Blood pressure'})

value: 107 mmHg (Details: UCUM code mm[Hg] = 'mmHg')

interpretation: Normal (Details : {http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation code 'N' = 'Normal', given as 'normal'})

component

code: Diastolic blood pressure (Details : {LOINC code '8462-4' = 'Diastolic blood pressure', given as 'Diastolic blood pressure'})

value: 60 mmHg (Details: UCUM code mm[Hg] = 'mmHg')

interpretation: Below low normal (Details : {http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation code 'L' = 'Low', given as 'low'})

\"\n },\n \"identifier\": [\n {\n \"system\": \"urn:ietf:rfc:3986\",\n \"value\": \"urn:uuid:187e0c12-8dd2-67e2-99b2-bf273c878281\"\n }\n ],\n \"basedOn\": [\n {\n \"identifier\": {\n \"system\": \"https://acme.org/identifiers\",\n \"value\": \"1234\"\n }\n }\n ],\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\",\n \"display\": \"Vital Signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"85354-9\",\n \"display\": \"Blood pressure panel with all children optional\"\n }\n ],\n \"text\": \"Blood pressure systolic & diastolic\"\n },\n \"subject\": {\n \"reference\": \"Patient/example\"\n },\n \"effectiveDateTime\": \"2012-09-17\",\n \"performer\": [\n {\n \"reference\": \"Practitioner/example\"\n }\n ],\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"L\",\n \"display\": \"low\"\n }\n ],\n \"text\": \"Below low normal\"\n }\n ],\n \"bodySite\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"368209003\",\n \"display\": \"Right arm\"\n }\n ]\n },\n \"component\": [\n {\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8480-6\",\n \"display\": \"Systolic blood pressure\"\n },\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"271649006\",\n \"display\": \"Systolic blood pressure\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 107,\n \"unit\": \"mmHg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mm[Hg]\"\n },\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"N\",\n \"display\": \"normal\"\n }\n ],\n \"text\": \"Normal\"\n }\n ]\n },\n {\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8462-4\",\n \"display\": \"Diastolic blood pressure\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 60,\n \"unit\": \"mmHg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mm[Hg]\"\n },\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"L\",\n \"display\": \"low\"\n }\n ],\n \"text\": \"Below low normal\"\n }\n ]\n }\n ]\n}", +"fileType": null +} +] +} \ No newline at end of file diff --git a/http-client-tests/resources/explicit-preset-requests/ips-au.json b/http-client-tests/resources/explicit-preset-requests/ips-au.json new file mode 100644 index 00000000..31b0f152 --- /dev/null +++ b/http-client-tests/resources/explicit-preset-requests/ips-au.json @@ -0,0 +1,29 @@ +{ + "cliContext": { + "extensions": [ + "any" + ], + "sv": "4.0.1", + "igs": [ + "hl7.fhir.au.ips#current" + ], + "profiles": [ + "http://hl7.org.au/fhir/ips/StructureDefinition/Bundle-au-ips" + ], + "checkIPSCodes": true, + "bundleValidationRules": [ + { + "rule": "Composition:0", + "profile": "http://hl7.org.au/fhir/ips/StructureDefinition/Composition-au-ips" + } + ], + "locale": "en" + }, + "filesToValidate": [ + { + "fileName": "manually_entered_file.json", + "fileContent": "{\n \"resourceType\" : \"Bundle\",\n \"id\" : \"bundle-minimal\",\n \"language\" : \"en-US\",\n \"identifier\" : {\n \"system\" : \"urn:oid:2.16.724.4.8.10.200.10\",\n \"value\" : \"28b95815-76ce-457b-b7ae-a972e527db40\"\n },\n \"type\" : \"document\",\n \"timestamp\" : \"2020-12-11T14:30:00+01:00\",\n \"entry\" : [{\n \"fullUrl\" : \"urn:uuid:6e1fb74a-742b-4c7b-8487-171dacb88766\",\n \"resource\" : {\n \"resourceType\" : \"Composition\",\n \"id\" : \"6e1fb74a-742b-4c7b-8487-171dacb88766\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative

Resource \\\"6e1fb74a-742b-4c7b-8487-171dacb88766\\\"

status: final

type: Patient summary Document (LOINC#60591-5)

date: 2020-12-11 02:30:00+0100

author: Beetje van Hulp, MD

title: Patient Summary as of December 11, 2020 14:30

confidentiality: N

attester

mode: legal

time: 2020-12-11 02:30:00+0100

party: Beetje van Hulp, MD

attester

mode: legal

time: 2020-12-11 02:30:00+0100

party: Anorg Aniza Tion BV

custodian: Anorg Aniza Tion BV

RelatesTos

-CodeTarget[x]
*appendsid: 20e12ce3-857f-49c0-b888-cb670597f191

Events

-CodePeriod
*care provision (ActClass#PCPR)?? --> 2020-12-11 02:30:00+0100
\"\n },\n \"status\" : \"final\",\n \"type\" : {\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"60591-5\",\n \"display\" : \"Patient summary Document\"\n }]\n },\n \"subject\" : {\n \"reference\" : \"Patient/7685713c-e29e-4a75-8a90-45be7ba3be94\"\n },\n \"date\" : \"2020-12-11T14:30:00+01:00\",\n \"author\" : [{\n \"reference\" : \"Practitioner/98315ba9-ffea-41ef-b59b-a836c039858f\"\n }],\n \"title\" : \"Patient Summary as of December 11, 2020 14:30\",\n \"confidentiality\" : \"N\",\n \"attester\" : [{\n \"mode\" : \"legal\",\n \"time\" : \"2020-12-11T14:30:00+01:00\",\n \"party\" : {\n \"reference\" : \"Practitioner/98315ba9-ffea-41ef-b59b-a836c039858f\"\n }\n },\n {\n \"mode\" : \"legal\",\n \"time\" : \"2020-12-11T14:30:00+01:00\",\n \"party\" : {\n \"reference\" : \"Organization/bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d\"\n }\n }],\n \"custodian\" : {\n \"reference\" : \"Organization/bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d\"\n },\n \"relatesTo\" : [{\n \"code\" : \"appends\",\n \"targetIdentifier\" : {\n \"system\" : \"urn:oid:2.16.724.4.8.10.200.10\",\n \"value\" : \"20e12ce3-857f-49c0-b888-cb670597f191\"\n }\n }],\n \"event\" : [{\n \"code\" : [{\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/v3-ActClass\",\n \"code\" : \"PCPR\"\n }]\n }],\n \"period\" : {\n \"end\" : \"2020-12-11T14:30:00+01:00\"\n }\n }],\n \"section\" : [{\n \"title\" : \"Active Problems\",\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"11450-4\",\n \"display\" : \"Problem list Reported\"\n }]\n },\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"
  • Condition Name: Menopausal Flushing
    Code: 198436008
    Status: Active
\"\n },\n \"entry\" : [{\n \"reference\" : \"Condition/ad84b7a2-b4dd-474e-bef3-0779e6cb595f\"\n }]\n },\n {\n \"title\" : \"Medication\",\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"10160-0\",\n \"display\" : \"History of Medication use Narrative\"\n }]\n },\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"
  • Medication Name: Oral anastrozole 1mg tablet
    Code:
    Status: Active, started March 2015
    Instructions: Take 1 time per day
\"\n },\n \"entry\" : [{\n \"reference\" : \"MedicationStatement/6e883e5e-7648-485a-86de-3640a61601fe\"\n }]\n },\n {\n \"title\" : \"Allergies and Intolerances\",\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"48765-2\",\n \"display\" : \"Allergies and adverse reactions Document\"\n }]\n },\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"
  • Allergy Name: Pencillins
    Verification Status: Confirmed
    Reaction: no information
\"\n },\n \"entry\" : [{\n \"reference\" : \"AllergyIntolerance/fe2769fd-22c9-4307-9122-ee0466e5aebb\"\n }]\n }]\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:7685713c-e29e-4a75-8a90-45be7ba3be94\",\n \"resource\" : {\n \"resourceType\" : \"Patient\",\n \"id\" : \"7685713c-e29e-4a75-8a90-45be7ba3be94\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: Patient

Resource Patient "7685713c-e29e-4a75-8a90-45be7ba3be94"

identifier: id:\\u00a0574687583

active: true

name: Martha DeLarosa

telecom: +31788700800

gender: female

birthDate: 1972-05-01

address: Laan Van Europa 1600 Dordrecht 3317 DB NL

Contacts

-RelationshipNameTelecomAddress
*mother (RoleCode#MTH)Martha Mum +33-555-20036Promenade des Anglais 111 Lyon 69001 FR
\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:2.16.840.1.113883.2.4.6.3\",\n \"value\" : \"574687583\"\n }],\n \"active\" : true,\n \"name\" : [{\n \"family\" : \"DeLarosa\",\n \"given\" : [\"Martha\"]\n }],\n \"telecom\" : [{\n \"system\" : \"phone\",\n \"value\" : \"+31788700800\",\n \"use\" : \"home\"\n }],\n \"gender\" : \"female\",\n \"birthDate\" : \"1972-05-01\",\n \"address\" : [{\n \"line\" : [\"Laan Van Europa 1600\"],\n \"city\" : \"Dordrecht\",\n \"postalCode\" : \"3317 DB\",\n \"country\" : \"NL\"\n }],\n \"contact\" : [{\n \"relationship\" : [{\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/v3-RoleCode\",\n \"code\" : \"MTH\"\n }]\n }],\n \"name\" : {\n \"family\" : \"Mum\",\n \"given\" : [\"Martha\"]\n },\n \"telecom\" : [{\n \"system\" : \"phone\",\n \"value\" : \"+33-555-20036\",\n \"use\" : \"home\"\n }],\n \"address\" : {\n \"line\" : [\"Promenade des Anglais 111\"],\n \"city\" : \"Lyon\",\n \"postalCode\" : \"69001\",\n \"country\" : \"FR\"\n }\n }]\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:98315ba9-ffea-41ef-b59b-a836c039858f\",\n \"resource\" : {\n \"resourceType\" : \"Practitioner\",\n \"id\" : \"98315ba9-ffea-41ef-b59b-a836c039858f\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: Practitioner

Resource Practitioner "98315ba9-ffea-41ef-b59b-a836c039858f"

identifier: id:\\u00a0129854633

active: true

name: Beetje van Hulp

Qualifications

-Code
*Doctor of Medicine (degreeLicenseCertificate[2.7]#MD)
\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:2.16.528.1.1007.3.1\",\n \"value\" : \"129854633\",\n \"assigner\" : {\n \"display\" : \"CIBG\"\n }\n }],\n \"active\" : true,\n \"name\" : [{\n \"family\" : \"van Hulp\",\n \"given\" : [\"Beetje\"]\n }],\n \"qualification\" : [{\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/v2-0360\",\n \"version\" : \"2.7\",\n \"code\" : \"MD\",\n \"display\" : \"Doctor of Medicine\"\n }]\n }\n }]\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d\",\n \"resource\" : {\n \"resourceType\" : \"Organization\",\n \"id\" : \"bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: Organization

Resource Organization "bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d"

identifier: id:\\u00a0564738757

active: true

name: Anorg Aniza Tion BV / The best custodian ever

telecom: +31-51-34343400

address: Houttuinen 27 Dordrecht 3311 CE NL (WORK)

\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:2.16.528.1.1007.3.3\",\n \"value\" : \"564738757\"\n }],\n \"active\" : true,\n \"name\" : \"Anorg Aniza Tion BV / The best custodian ever\",\n \"telecom\" : [{\n \"system\" : \"phone\",\n \"value\" : \"+31-51-34343400\",\n \"use\" : \"work\"\n }],\n \"address\" : [{\n \"use\" : \"work\",\n \"line\" : [\"Houttuinen 27\"],\n \"city\" : \"Dordrecht\",\n \"postalCode\" : \"3311 CE\",\n \"country\" : \"NL\"\n }]\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:ad84b7a2-b4dd-474e-bef3-0779e6cb595f\",\n \"resource\" : {\n \"resourceType\" : \"Condition\",\n \"id\" : \"ad84b7a2-b4dd-474e-bef3-0779e6cb595f\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: Condition

Resource Condition "ad84b7a2-b4dd-474e-bef3-0779e6cb595f"

identifier: id:\\u00a0cacceb57-395f-48e1-9c88-e9c9704dc2d2

clinicalStatus: Active (Condition Clinical Status Codes#active)

verificationStatus: Confirmed (ConditionVerificationStatus#confirmed)

category: Problem (LOINC#75326-9)

severity: Moderate (LOINC#LA6751-7)

code: Menopausal flushing (finding) (SNOMED CT#198436008; ICD-10#N95.1 "Menopausal and female climacteric states")

subject: See above (Patient/7685713c-e29e-4a75-8a90-45be7ba3be94)

onset: 2015

recordedDate: 2016-10

\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:1.2.3.999\",\n \"value\" : \"cacceb57-395f-48e1-9c88-e9c9704dc2d2\"\n }],\n \"clinicalStatus\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\" : \"active\"\n }]\n },\n \"verificationStatus\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/condition-ver-status\",\n \"code\" : \"confirmed\"\n }]\n },\n \"category\" : [{\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"75326-9\",\n \"display\" : \"Problem\"\n }]\n }],\n \"severity\" : {\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"LA6751-7\",\n \"display\" : \"Moderate\"\n }]\n },\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://snomed.info/sct\",\n \"code\" : \"198436008\",\n \"display\" : \"Menopausal flushing (finding)\",\n \"_display\" : {\n \"extension\" : [{\n \"extension\" : [{\n \"url\" : \"lang\",\n \"valueCode\" : \"nl-NL\"\n },\n {\n \"url\" : \"content\",\n \"valueString\" : \"opvliegers\"\n }],\n \"url\" : \"http://hl7.org/fhir/StructureDefinition/translation\"\n }]\n }\n },\n {\n \"system\" : \"http://hl7.org/fhir/sid/icd-10\",\n \"code\" : \"N95.1\",\n \"display\" : \"Menopausal and female climacteric states\"\n }]\n },\n \"subject\" : {\n \"reference\" : \"Patient/7685713c-e29e-4a75-8a90-45be7ba3be94\"\n },\n \"onsetDateTime\" : \"2015\",\n \"recordedDate\" : \"2016-10\"\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:6e883e5e-7648-485a-86de-3640a61601fe\",\n \"resource\" : {\n \"resourceType\" : \"MedicationStatement\",\n \"id\" : \"6e883e5e-7648-485a-86de-3640a61601fe\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: MedicationStatement

Resource MedicationStatement "6e883e5e-7648-485a-86de-3640a61601fe"

identifier: id:\\u00a08faf0319-89d3-427c-b9d1-e8c8fd390dca

status: active

medication: See above (Medication/6369a973-afc7-4617-8877-3e9811e05a5b)

subject: See above (Patient/7685713c-e29e-4a75-8a90-45be7ba3be94)

effective: 2015-03 --> (ongoing)

dosage

timing: Count 1 times, Once

route: Oral use (standardterms.edqm.eu#20053000)

doseAndRate

\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:1.2.3.999\",\n \"value\" : \"8faf0319-89d3-427c-b9d1-e8c8fd390dca\"\n }],\n \"status\" : \"active\",\n \"medicationReference\" : {\n \"reference\" : \"Medication/6369a973-afc7-4617-8877-3e9811e05a5b\"\n },\n \"subject\" : {\n \"reference\" : \"Patient/7685713c-e29e-4a75-8a90-45be7ba3be94\"\n },\n \"effectivePeriod\" : {\n \"start\" : \"2015-03\"\n },\n \"dosage\" : [{\n \"timing\" : {\n \"repeat\" : {\n \"count\" : 1,\n \"periodUnit\" : \"d\"\n }\n },\n \"route\" : {\n \"coding\" : [{\n \"system\" : \"http://standardterms.edqm.eu\",\n \"code\" : \"20053000\",\n \"display\" : \"Oral use\"\n }]\n },\n \"doseAndRate\" : [{\n \"type\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/dose-rate-type\",\n \"code\" : \"ordered\",\n \"display\" : \"Ordered\"\n }]\n },\n \"doseQuantity\" : {\n \"value\" : 1,\n \"unit\" : \"tablet\",\n \"system\" : \"http://unitsofmeasure.org\",\n \"code\" : \"1\"\n }\n }]\n }]\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:6369a973-afc7-4617-8877-3e9811e05a5b\",\n \"resource\" : {\n \"resourceType\" : \"Medication\",\n \"id\" : \"6369a973-afc7-4617-8877-3e9811e05a5b\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: Medication

Resource Medication "6369a973-afc7-4617-8877-3e9811e05a5b"

code: Product containing anastrozole (medicinal product) (SNOMED CT#108774000; unknown#99872 "ANASTROZOL 1MG TABLET"; unknown#2076667 "ANASTROZOL CF TABLET FILMOMHULD 1MG"; WHO ATC#L02BG03 "anastrozole")

\"\n },\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://snomed.info/sct\",\n \"code\" : \"108774000\",\n \"display\" : \"Product containing anastrozole (medicinal product)\"\n },\n {\n \"system\" : \"urn:oid:2.16.840.1.113883.2.4.4.1\",\n \"code\" : \"99872\",\n \"display\" : \"ANASTROZOL 1MG TABLET\"\n },\n {\n \"system\" : \"urn:oid:2.16.840.1.113883.2.4.4.7\",\n \"code\" : \"2076667\",\n \"display\" : \"ANASTROZOL CF TABLET FILMOMHULD 1MG\"\n },\n {\n \"system\" : \"http://www.whocc.no/atc\",\n \"code\" : \"L02BG03\",\n \"display\" : \"anastrozole\"\n }]\n }\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:fe2769fd-22c9-4307-9122-ee0466e5aebb\",\n \"resource\" : {\n \"resourceType\" : \"AllergyIntolerance\",\n \"id\" : \"fe2769fd-22c9-4307-9122-ee0466e5aebb\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: AllergyIntolerance

Resource AllergyIntolerance "fe2769fd-22c9-4307-9122-ee0466e5aebb"

identifier: id:\\u00a08d9566a4-d26d-46be-a3e4-c9f3a0e5cd83

clinicalStatus: Active (AllergyIntolerance Clinical Status Codes#active)

verificationStatus: Confirmed (AllergyIntolerance Verification Status#confirmed)

type: allergy

category: medication

criticality: high

code: Substance with penicillin structure and antibacterial mechanism of action (substance) (SNOMED CT#373270004)

patient: See above (Patient/7685713c-e29e-4a75-8a90-45be7ba3be94)

onset: 2010

\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:1.2.3.999\",\n \"value\" : \"8d9566a4-d26d-46be-a3e4-c9f3a0e5cd83\"\n }],\n \"clinicalStatus\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical\",\n \"code\" : \"active\"\n }]\n },\n \"verificationStatus\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/allergyintolerance-verification\",\n \"code\" : \"confirmed\"\n }]\n },\n \"type\" : \"allergy\",\n \"category\" : [\"medication\"],\n \"criticality\" : \"high\",\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://snomed.info/sct\",\n \"code\" : \"373270004\",\n \"display\" : \"Substance with penicillin structure and antibacterial mechanism of action (substance)\"\n }]\n },\n \"patient\" : {\n \"reference\" : \"Patient/7685713c-e29e-4a75-8a90-45be7ba3be94\"\n },\n \"onsetDateTime\" : \"2010\"\n }\n }]\n}", + "fileType": null + } + ] +} \ No newline at end of file diff --git a/http-client-tests/resources/explicit-preset-requests/ips-nz.json b/http-client-tests/resources/explicit-preset-requests/ips-nz.json new file mode 100644 index 00000000..12c4420e --- /dev/null +++ b/http-client-tests/resources/explicit-preset-requests/ips-nz.json @@ -0,0 +1,29 @@ +{ + "cliContext": { + "extensions": [ + "any" + ], + "sv": "4.0.1", + "igs": [ + "tewhatuora.fhir.nzps#current" + ], + "profiles": [ + "https://standards.digital.health.nz/fhir/StructureDefinition/nzps-bundle" + ], + "checkIPSCodes": true, + "bundleValidationRules": [ + { + "rule": "Composition:0", + "profile": "https://standards.digital.health.nz/fhir/StructureDefinition/nzps-composition" + } + ], + "locale": "en" + }, + "filesToValidate": [ + { + "fileName": "manually_entered_file.json", + "fileContent": "{\n \"resourceType\": \"Bundle\",\n \"id\": \"NZ-IPS-20231121031219\",\n \"language\": \"en-NZ\",\n \"identifier\": {\n \"system\": \"urn:oid:2.16.724.4.8.10.200.10\",\n \"value\": \"3d5006e9-f003-4a78-a253-40ab405b7ef2\"\n },\n \"type\": \"document\",\n \"timestamp\": \"2023-11-21T03:12:19.1242772+00:00\",\n \"entry\": [\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Composition/9b9e4f64-c976-47e9-a8a5-4b9b0484a709\",\n \"resource\": {\n \"resourceType\": \"Composition\",\n \"id\": \"9b9e4f64-c976-47e9-a8a5-4b9b0484a709\",\n \"meta\": {\n \"versionId\": \"1\"\n },\n \"language\": \"en-NZ\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
International Patient Summary for Iosefa Test-Fuimaono
\"\n },\n \"identifier\": {\n \"system\": \"urn:oid:2.16.840.1.113883.2.18.7.2\",\n \"value\": \"3d5006e9-f003-4a78-a253-40ab405b7ef2\"\n },\n \"status\": \"final\",\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"60591-5\",\n \"display\": \"Patient summary Document\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"date\": \"2023-11-21\",\n \"author\": [\n {\n \"reference\": \"Organization/9c9542df-e45f-4131-9d44-8f5974e56d5b\"\n }\n ],\n \"title\": \"International Patient Summary\",\n \"confidentiality\": \"N\",\n \"attester\": [\n {\n \"mode\": \"professional\",\n \"time\": \"2023-11-21\",\n \"party\": {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n }\n ],\n \"custodian\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n },\n \"relatesTo\": [\n {\n \"code\": \"transforms\",\n \"targetIdentifier\": {\n \"system\": \"urn:oid:2.16.840.1.113883.2.18.7.2\",\n \"value\": \"3d5006e9-f003-4a78-a253-40ab405b7ef2\"\n }\n }\n ],\n \"event\": [\n {\n \"code\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ActClass\",\n \"code\": \"PCPR\"\n }\n ]\n }\n ],\n \"period\": {\n \"end\": \"2023-11-21\"\n }\n }\n ],\n \"section\": [\n {\n \"title\": \"Allergies and Intolerances\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"48765-2\",\n \"display\": \"Allergies and adverse reactions Document\"\n }\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
CodeTypeRecorded OnAsserted ByClinical StatusVerification Status
Flucloxacillin-containing productAllergy\\r\\n Patient/ZKT9319activeconfirmed
Diazepam-containing productAllergy\\r\\n Patient/ZKT9319activeconfirmed
\\r\\n
\"\n },\n \"entry\": [\n {\n \"reference\": \"AllergyIntolerance/1dfacb6d-4260-4fd4-84e9-a1c13aafa72c\"\n },\n {\n \"reference\": \"AllergyIntolerance/e9b9aeaf-e5ac-4f72-b01d-df4c6107f746\"\n }\n ]\n },\n {\n \"title\": \"Problem List\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"11450-4\",\n \"display\": \"Problem list - Reported\"\n }\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
ConditionCategoryRecorded OnClinical StatusVerification Status
Postconcussion syndromeProblem List Item\\r\\n activeconfirmed
Diabetes type 2 on insulinProblem List Item\\r\\n activeconfirmed
GoutProblem List Item\\r\\n activeconfirmed
Benign essential hypertensionProblem List Item\\r\\n activeconfirmed
Anxiety disorder due to a general medical conditionProblem List Item\\r\\n inactiveconfirmed
Fracture of neck of femurProblem List Item\\r\\n inactiveconfirmed
\\r\\n
\"\n },\n \"entry\": [\n {\n \"reference\": \"Condition/2eafb947-e816-4d9f-978b-c91d0dbe4acc\"\n },\n {\n \"reference\": \"Condition/1923f2ca-043b-432c-9eed-404c81474e60\"\n },\n {\n \"reference\": \"Condition/4f40d5e3-9a5f-4e3f-b799-c3378da8e7dd\"\n },\n {\n \"reference\": \"Condition/08992112-ac66-4c66-a803-89f80bb6d2aa\"\n },\n {\n \"reference\": \"Condition/9b54fc7a-8302-45cc-9ff6-e60c623c5bf9\"\n },\n {\n \"reference\": \"Condition/dd40111a-683f-4d72-bccc-3c6848bc0813\"\n }\n ]\n },\n {\n \"title\": \"Medication Summary\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"10160-0\",\n \"display\": \"History of Medication use Narrative\"\n }\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
DrugStatusEffectiveInstructions
insulin glargine 100 international units/mL injection, 10 mL vialActive2023-02-21Inject 20 units per day into your upper arms, abdomen or thights.You should vary the site where you inject each dose of Lantus. This helps reduce your risk of certain side effects, such as pits or lumps in your skin.
dulaglutide 1.5 mg/0.5 mL injection, prefilled injection deviceActive2023-02-21Inject once a week, on the same day each week, into the skin of your stomach, thigh or upper arm. You can use the same area of your body each time, but choose a different place within that area. You can inject it any time of the day, with or without meals.
metformin hydrochloride 1000 mg tabletActive2023-02-21Take ONE tablet, two times a day, with meals.
amlodipine 5 mg tabletActive2023-02-21Take ONE tablet at any time of day, but try to make sure it's around the same time every day.
losartan potassium 50 mg tabletActive2023-02-21Take ONE tablet daily
aspirin 75 mg tablet: enteric-coatedActive2023-02-21Take ONE tablet daily
allopurinol 300 mg tabletActive2023-02-21Take ONE tablet daily, after meals
\\r\\n
\"\n },\n \"entry\": [\n {\n \"reference\": \"MedicationStatement/8ecbe74a-a3fa-4edf-8133-44ca8903a645\"\n },\n {\n \"reference\": \"MedicationStatement/06c4eda2-df30-4231-af09-0135e5f84548\"\n },\n {\n \"reference\": \"MedicationStatement/4b5f40b9-f59c-4090-81b1-4609ac6b7af8\"\n },\n {\n \"reference\": \"MedicationStatement/e19dc087-0055-4feb-a847-72e77cf55a0a\"\n },\n {\n \"reference\": \"MedicationStatement/f7a26186-dd57-420f-95be-c0deeee49367\"\n },\n {\n \"reference\": \"MedicationStatement/b6b49f33-a0e4-4b94-92f3-caa3267ad4f7\"\n },\n {\n \"reference\": \"MedicationStatement/ce2395b9-d7ef-4df0-b38f-fc9be0e44f94\"\n }\n ]\n },\n {\n \"title\": \"Immunizations\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"11369-6\",\n \"display\": \"History of Immunization Narrative\"\n }\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
VaccineStatusOccuranceRouteDose #Series
SARS-COV-2 (COVID-19) vaccine, mRNA, spike protein, LNP, preservative free, 30 mcg/0.3mL doseCompleted2022-02-01Injection, intramuscular212 (At risk, no previous history)
SARS-COV-2 (COVID-19) vaccine, mRNA, spike protein, LNP, preservative free, 30 mcg/0.3mL doseCompleted2021-08-05Injection, intramuscular112 (At risk, no previous history)
Influenza, seasonal, injectableCompleted2019-05-20Injection, intramuscular11 (Over 65 years (Influenza))
diphtheria, tetanus toxoids and acellular pertussis vaccineCompleted2019-04-24Injection, intramuscular16 (Booster)
tetanus and diphtheria toxoids, not adsorbed, for adult useCompleted2018-04-05Injection, intramuscular16 (Booster)
pneumococcal conjugate vaccine, 13 valentCompleted2015-09-25Injection, intramuscular121 (PCV catch up)
Influenza, seasonal, injectableCompleted2015-05-01Injection, intramuscular11 (Over 65 years (Influenza))
\\r\\n
\"\n },\n \"entry\": [\n {\n \"reference\": \"Immunization/998e59d9-a7f4-4503-b08e-85ce9b206b0a\"\n },\n {\n \"reference\": \"Immunization/fc6b3454-527b-4deb-a266-7f52c63d0d3c\"\n },\n {\n \"reference\": \"Immunization/33c971d3-0992-4e93-b904-6325ed4602e3\"\n },\n {\n \"reference\": \"Immunization/12c253d4-20e8-4dd4-935c-fd1ec8a49279\"\n },\n {\n \"reference\": \"Immunization/70308bba-2bc4-4505-ba9b-520f9d3dc30b\"\n },\n {\n \"reference\": \"Immunization/acd3a963-0985-4679-a126-8eb9ed981d36\"\n },\n {\n \"reference\": \"Immunization/bae44614-43cc-4df4-94b3-c26d34b0ea37\"\n }\n ]\n },\n {\n \"title\": \"Procedures\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"47519-4\",\n \"display\": \"History of Procedures Document\"\n }\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Date(s) Procedure Location Performer Comments
01/09/2020 to 01/09/2020 Operative procedure on hip Waikato Hospital
31/03/2018 to 31/03/2018 Hand closure Samoa
\"\n },\n \"entry\": [\n {\n \"reference\": \"Procedure/8414198c-a43b-4ef1-b06f-3b39fb4b39cc\"\n },\n {\n \"reference\": \"Procedure/1096ab80-e982-41b3-85c2-8e1d2466d147\"\n }\n ]\n },\n {\n \"title\": \"Results\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"30954-2\",\n \"display\": \"Relevant diagnostic tests/laboratory data Narrative\"\n }\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Result Group: Lipids Result Date: 05 Mar 2023 00:00 Result Status: completed
Result Name Value Reference Range Abnormal Indicator Comments
Total cholesterol:HDL ratio 5.1 mmol/L <4 mmol/L (high risk) H
HDL Cholesterol 1.5 mmol/L >1 mmol/L N
LDL Cholesterol 3.4 mmol/L <1.8 mmol/L H
Result Group: HbA1C Result Date: 05 Mar 2023 00:00 Result Status: completed
Result Name Value Reference Range Abnormal Indicator Comments
HbA1c 60 mmol/mol 50 – 55 mmol/mol (diabetes) H
\"\n },\n \"entry\": [\n {\n \"reference\": \"Observation/2f3ad263-1b4e-443b-95ca-66d2abb6e927\"\n },\n {\n \"reference\": \"Observation/fe53810f-a341-4093-a959-4048ad62f85b\"\n },\n {\n \"reference\": \"Observation/6adb76b4-73f3-4552-87a6-09ac3dc1f558\"\n },\n {\n \"reference\": \"DiagnosticReport/9e0d995f-a78d-45f4-b3aa-23037972a3e6\"\n },\n {\n \"reference\": \"Observation/63ad8984-003c-4e44-bc56-31dd6abc0897\"\n },\n {\n \"reference\": \"DiagnosticReport/2da4116e-7158-4d59-b6c4-873b37f7d65f\"\n }\n ]\n },\n {\n \"title\": \"Vital Signs\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8716-3\",\n \"display\": \"Vital signs\"\n }\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Result Group: Vital signs, weight, height, head circumference, oxygen saturation and BMI panel Result Date: 29 Sep 2023 00:00 Result Status: completed
Result Name Value
Body temperature 37.5 C
Heart rate 84 beats/minute
Respiratory rate 18 breaths/minute
Systolic blood pressure 136 mm[Hg]
Diastolic blood pressure 88 mm[Hg]
Body height 1.84 cm
Body weight 104 kg
Result Group: Vital signs, weight, height, head circumference, oxygen saturation and BMI panel Result Date: 05 Mar 2023 00:00 Result Status: completed
Result Name Value
Body temperature 37.2 C
Heart rate 86 beats/minute
Respiratory rate 14 breaths/minute
Systolic blood pressure 130 mm[Hg]
Diastolic blood pressure 82 mm[Hg]
Body weight 103 kg
\"\n },\n \"entry\": [\n {\n \"reference\": \"Observation/6f64547c-89a3-459d-a993-b89e995c1f14\"\n },\n {\n \"reference\": \"Observation/da3bbb11-e485-4396-a25c-611354789c65\"\n },\n {\n \"reference\": \"Observation/5dead0bd-80c7-42f7-9720-3aaf047eb89b\"\n },\n {\n \"reference\": \"Observation/126f25f0-d921-4d9a-85a2-5b847cfb89fb\"\n },\n {\n \"reference\": \"Observation/cf628f81-f66b-42a7-a33a-c5d38a604861\"\n },\n {\n \"reference\": \"Observation/dd309bef-3b36-4422-a202-39d040113a5d\"\n },\n {\n \"reference\": \"Observation/4c5e0a16-2e2c-47cc-8e1d-a87afee4d6f1\"\n },\n {\n \"reference\": \"Observation/eda3092b-5228-420b-b0ce-f5eb77e73942\"\n },\n {\n \"reference\": \"Observation/2d420435-f380-46e1-ad93-b9fef57f4b71\"\n },\n {\n \"reference\": \"Observation/7a422837-80f5-4fa6-b3ac-8a0e44b99356\"\n },\n {\n \"reference\": \"Observation/af9ae822-ae5d-4bec-88bf-4dd250350783\"\n }\n ]\n },\n {\n \"title\": \"Social History\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"29762-2\",\n \"display\": \"Social history Narrative\"\n }\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Type Item Date(s) Comment
other Worked as a forestry worker. Worked as a forestry worker. Was always physically active until 2020 fall.Has had subsequent falls. Now depends on a walker or scooter.
smoking Ex-smoker 30/06/2005 30 - pack - year smoking history, quit smoking ~2005.
\"\n },\n \"entry\": [\n {\n \"reference\": \"Observation/33624327-7e1b-4912-bca1-2d0c8d36b952\"\n }\n ]\n },\n {\n \"title\": \"Functional Status\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"47420-5\",\n \"display\": \"Functional status assessment note\"\n }\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Functional Condition Effective Dates Condition Status
Often confused, struggles to communicate in English Active
Depends on a walking frame or electric scooter to get around. Active
Doesn’t leave the house much. Active
Relies on caregiver Cindy for assistance with many activities of daily living. Active
Family has made the decision to transfer Iosefa to residential care soon, arrangements currently being finalised. Active
\"\n },\n \"entry\": [\n {\n \"reference\": \"Condition/4464bdfe-dc87-4179-a10d-2884c975a6eb\"\n },\n {\n \"reference\": \"Condition/f0982a2a-8eb2-4b1a-9e73-6a82d2102003\"\n },\n {\n \"reference\": \"Condition/94c0216a-183b-45e9-9e98-f244ac0b4d4f\"\n },\n {\n \"reference\": \"Condition/14863bd8-1d6d-4c85-9bcc-1b33699908c4\"\n },\n {\n \"reference\": \"Condition/b008f275-c141-4cd5-b1bb-46c399eaf42d\"\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Patient/ZKT9319\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"id\": \"ZKT9319\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Name: Iosefa Test-Fuimaono
\"\n },\n \"identifier\": [\n {\n \"system\": \"https://standards.digital.health.nz/ns/nhi-id\",\n \"value\": \"ZKT9319\"\n }\n ],\n \"name\": [\n {\n \"use\": \"usual\",\n \"family\": \"Test-Fuimaono\",\n \"given\": [\n \"Iosefa\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"birthDate\": \"1950-07-04\",\n \"address\": [\n {\n \"use\": \"home\",\n \"type\": \"physical\",\n \"line\": [\n \"Flat 1\",\n \"1 Brooklyn Road\",\n \"Claudelands\"\n ],\n \"city\": \"Hamilton\",\n \"postalCode\": \"3214\",\n \"country\": \"NZ\"\n }\n ],\n \"maritalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-MaritalStatus\",\n \"code\": \"W\",\n \"display\": \"Widowed\"\n }\n ]\n },\n \"contact\": [\n {\n \"relationship\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v2-0131\",\n \"code\": \"N\",\n \"display\": \"Next-of-Kin\"\n }\n ]\n }\n ],\n \"name\": {\n \"use\": \"usual\",\n \"family\": \"Test-Fuimaono\",\n \"given\": [\n \"Cindy\",\n \"Test-Fuimaono\"\n ]\n },\n \"telecom\": [\n {\n \"system\": \"phone\",\n \"value\": \"021 111111\",\n \"use\": \"mobile\"\n }\n ],\n \"address\": {\n \"use\": \"home\",\n \"type\": \"physical\",\n \"line\": [\n \"Flat 1\",\n \"1 Brooklyn Road\",\n \"Claudelands\"\n ],\n \"city\": \"Hamilton\",\n \"postalCode\": \"3214\",\n \"country\": \"NZ\"\n }\n },\n {\n \"relationship\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v2-0131\",\n \"code\": \"C\",\n \"display\": \"Emergency Contact\"\n }\n ]\n }\n ],\n \"name\": {\n \"use\": \"usual\",\n \"family\": \"Test-Fuimaono\",\n \"given\": [\n \"Cindy\",\n \"Test-Fuimaono\"\n ]\n },\n \"telecom\": [\n {\n \"system\": \"phone\",\n \"value\": \"021 111111\",\n \"use\": \"mobile\"\n }\n ],\n \"address\": {\n \"use\": \"home\",\n \"type\": \"physical\",\n \"line\": [\n \"Flat 1\",\n \"1 Brooklyn Road\",\n \"Claudelands\"\n ],\n \"city\": \"Hamilton\",\n \"postalCode\": \"3214\",\n \"country\": \"NZ\"\n }\n }\n ],\n \"communication\": [\n {\n \"language\": {\n \"text\": \"en-NZ\"\n }\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Organization/9c9542df-e45f-4131-9d44-8f5974e56d5b\",\n \"resource\": {\n \"resourceType\": \"Organization\",\n \"id\": \"9c9542df-e45f-4131-9d44-8f5974e56d5b\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Name: Fairfield Medical Centre
\"\n },\n \"identifier\": [\n {\n \"system\": \"https://standards.digital.health.nz/ns/hpi-facility-id\",\n \"value\": \"F0U044-C\"\n }\n ],\n \"name\": \"Fairfield Medical Centre\"\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\",\n \"resource\": {\n \"resourceType\": \"PractitionerRole\",\n \"id\": \"c9288aea-5e73-4182-8231-aacbe50d3244\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Role: Doctor
\"\n },\n \"practitioner\": {\n \"reference\": \"Practitioner/4d4b76bf-55b5-40b8-a130-99ea24a84c23\"\n },\n \"code\": [\n {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"158965000\",\n \"display\": \"Doctor\"\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Practitioner/4d4b76bf-55b5-40b8-a130-99ea24a84c23\",\n \"resource\": {\n \"resourceType\": \"Practitioner\",\n \"id\": \"4d4b76bf-55b5-40b8-a130-99ea24a84c23\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Name: Dr James Test-Smith
\"\n },\n \"name\": [\n {\n \"use\": \"usual\",\n \"family\": \"Test-Smith\",\n \"given\": [\n \"Dr\",\n \"James\",\n \"Test-Smith\"\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\",\n \"resource\": {\n \"resourceType\": \"Organization\",\n \"id\": \"644f2fb9-c264-4c32-898b-4048dddd6d1b\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Name: Fairfield Medical Centre
\"\n },\n \"identifier\": [\n {\n \"system\": \"https://standards.digital.health.nz/ns/hpi-facility-id\",\n \"value\": \"F0U044-C\"\n }\n ],\n \"name\": \"Fairfield Medical Centre\"\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Location/F05076-A\",\n \"resource\": {\n \"resourceType\": \"Location\",\n \"id\": \"F05076-A\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
\\r\\n

Waikato Hospital

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
IdentifierF05076-A
Identifier Systemhttps://standards.digital.health.nz/ns/hpi-facility-id
StatusActive
ModeInstance
TypeLocation
Address183 Pembroke Street, Waikato Hospital, Hamilton 3204
\\r\\n
\"\n },\n \"identifier\": [\n {\n \"system\": \"https://standards.digital.health.nz/ns/hpi-facility-id\",\n \"value\": \"F05076-A\"\n }\n ],\n \"status\": \"active\",\n \"name\": \"Waikato Hospital\"\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/AllergyIntolerance/1dfacb6d-4260-4fd4-84e9-a1c13aafa72c\",\n \"resource\": {\n \"resourceType\": \"AllergyIntolerance\",\n \"id\": \"1dfacb6d-4260-4fd4-84e9-a1c13aafa72c\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Flucloxacillin-containing product (Penicillin adverse reaction)
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"verificationStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/allergyintolerance-verification\",\n \"code\": \"confirmed\"\n }\n ]\n },\n \"type\": \"allergy\",\n \"category\": [\n \"medication\"\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"96067005\",\n \"display\": \"Flucloxacillin-containing product\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"asserter\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"reaction\": [\n {\n \"manifestation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"292954005\",\n \"display\": \"Penicillin adverse reaction\"\n }\n ]\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/AllergyIntolerance/e9b9aeaf-e5ac-4f72-b01d-df4c6107f746\",\n \"resource\": {\n \"resourceType\": \"AllergyIntolerance\",\n \"id\": \"e9b9aeaf-e5ac-4f72-b01d-df4c6107f746\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Diazepam-containing product (Diazepam adverse reaction)
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"verificationStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/allergyintolerance-verification\",\n \"code\": \"confirmed\"\n }\n ]\n },\n \"type\": \"allergy\",\n \"category\": [\n \"medication\"\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"48546005\",\n \"display\": \"Diazepam-containing product\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"asserter\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"reaction\": [\n {\n \"manifestation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"292360004\",\n \"display\": \"Diazepam adverse reaction\"\n }\n ]\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/2eafb947-e816-4d9f-978b-c91d0dbe4acc\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"2eafb947-e816-4d9f-978b-c91d0dbe4acc\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Postconcussion
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"verificationStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-ver-status\",\n \"code\": \"confirmed\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-category\",\n \"code\": \"problem-list-item\",\n \"display\": \"Problem List Item\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"40425004\",\n \"display\": \"Postconcussion syndrome\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/1923f2ca-043b-432c-9eed-404c81474e60\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"1923f2ca-043b-432c-9eed-404c81474e60\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Diabetes type 2 on insulin
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"verificationStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-ver-status\",\n \"code\": \"confirmed\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-category\",\n \"code\": \"problem-list-item\",\n \"display\": \"Problem List Item\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"237599002\",\n \"display\": \"Diabetes type 2 on insulin\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/4f40d5e3-9a5f-4e3f-b799-c3378da8e7dd\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"4f40d5e3-9a5f-4e3f-b799-c3378da8e7dd\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Gout
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"verificationStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-ver-status\",\n \"code\": \"confirmed\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-category\",\n \"code\": \"problem-list-item\",\n \"display\": \"Problem List Item\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"90560007\",\n \"display\": \"Gout\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/08992112-ac66-4c66-a803-89f80bb6d2aa\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"08992112-ac66-4c66-a803-89f80bb6d2aa\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Benign essential hypertension
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"verificationStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-ver-status\",\n \"code\": \"confirmed\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-category\",\n \"code\": \"problem-list-item\",\n \"display\": \"Problem List Item\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"1201005\",\n \"display\": \"Benign essential hypertension\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/9b54fc7a-8302-45cc-9ff6-e60c623c5bf9\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"9b54fc7a-8302-45cc-9ff6-e60c623c5bf9\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Anxiety disorder due to a general medical condition
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"inactive\"\n }\n ]\n },\n \"verificationStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-ver-status\",\n \"code\": \"confirmed\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-category\",\n \"code\": \"problem-list-item\",\n \"display\": \"Problem List Item\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"52910006\",\n \"display\": \"Anxiety disorder due to a general medical condition\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/dd40111a-683f-4d72-bccc-3c6848bc0813\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"dd40111a-683f-4d72-bccc-3c6848bc0813\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Fracture of neck of femur
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"inactive\"\n }\n ]\n },\n \"verificationStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-ver-status\",\n \"code\": \"confirmed\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-category\",\n \"code\": \"problem-list-item\",\n \"display\": \"Problem List Item\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"5913000\",\n \"display\": \"Fracture of neck of femur\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/4464bdfe-dc87-4179-a10d-2884c975a6eb\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"4464bdfe-dc87-4179-a10d-2884c975a6eb\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Often confused, struggles to communicate in English
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"code\": {\n \"text\": \"Often confused, struggles to communicate in English\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/f0982a2a-8eb2-4b1a-9e73-6a82d2102003\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"f0982a2a-8eb2-4b1a-9e73-6a82d2102003\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Depends on a walking frame or electric scooter to get around.
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"code\": {\n \"text\": \"Depends on a walking frame or electric scooter to get around.\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/94c0216a-183b-45e9-9e98-f244ac0b4d4f\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"94c0216a-183b-45e9-9e98-f244ac0b4d4f\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Doesn’t leave the house much.
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"code\": {\n \"text\": \"Doesn’t leave the house much.\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/14863bd8-1d6d-4c85-9bcc-1b33699908c4\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"14863bd8-1d6d-4c85-9bcc-1b33699908c4\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Relies on caregiver Cindy for assistance with many activities of daily living.
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"code\": {\n \"text\": \"Relies on caregiver Cindy for assistance with many activities of daily living.\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/b008f275-c141-4cd5-b1bb-46c399eaf42d\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"b008f275-c141-4cd5-b1bb-46c399eaf42d\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Family has made the decision to transfer Iosefa to residential care soon, arrangements currently being finalised.
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"code\": {\n \"text\": \"Family has made the decision to transfer Iosefa to residential care soon, arrangements currently being finalised.\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/MedicationStatement/8ecbe74a-a3fa-4edf-8133-44ca8903a645\",\n \"resource\": {\n \"resourceType\": \"MedicationStatement\",\n \"id\": \"8ecbe74a-a3fa-4edf-8133-44ca8903a645\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
10368421000116106 (insulin glargine 100 international units/mL injection, 10 mL vial)
\"\n },\n \"status\": \"active\",\n \"medicationCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"126212009\",\n \"display\": \"Product containing insulin glargine (medicinal product)\"\n }\n ],\n \"text\": \"insulin glargine 100 international units/mL injection, 10 mL vial\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-02-21\",\n \"informationSource\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n },\n \"dosage\": [\n {\n \"text\": \"Inject 20 units per day into your upper arms, abdomen or thights.You should vary the site where you inject each dose of Lantus. This helps reduce your risk of certain side effects, such as pits or lumps in your skin.\",\n \"timing\": {\n \"repeat\": {\n \"frequency\": 1,\n \"period\": 1,\n \"periodUnit\": \"d\"\n }\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"34206005\",\n \"display\": \"subcutaneous route\"\n }\n ]\n },\n \"doseAndRate\": [\n {\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/dose-rate-type\",\n \"code\": \"ordered\",\n \"display\": \"Ordered\"\n }\n ]\n },\n \"doseQuantity\": {\n \"value\": 1,\n \"unit\": \"unit\",\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"767525000\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/MedicationStatement/06c4eda2-df30-4231-af09-0135e5f84548\",\n \"resource\": {\n \"resourceType\": \"MedicationStatement\",\n \"id\": \"06c4eda2-df30-4231-af09-0135e5f84548\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
47230201000116108 (dulaglutide 1.5 mg/0.5 mL injection, prefilled injection device)
\"\n },\n \"status\": \"active\",\n \"medicationCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"714081009\",\n \"display\": \"Product containing dulaglutide (medicinal product)\"\n }\n ],\n \"text\": \"dulaglutide 1.5 mg/0.5 mL injection, prefilled injection device\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-02-21\",\n \"informationSource\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n },\n \"dosage\": [\n {\n \"text\": \"Inject once a week, on the same day each week, into the skin of your stomach, thigh or upper arm. You can use the same area of your body each time, but choose a different place within that area. You can inject it any time of the day, with or without meals.\",\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"34206005\",\n \"display\": \"subcutaneous route\"\n }\n ]\n },\n \"doseAndRate\": [\n {\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/dose-rate-type\",\n \"code\": \"ordered\",\n \"display\": \"Ordered\"\n }\n ]\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/MedicationStatement/4b5f40b9-f59c-4090-81b1-4609ac6b7af8\",\n \"resource\": {\n \"resourceType\": \"MedicationStatement\",\n \"id\": \"4b5f40b9-f59c-4090-81b1-4609ac6b7af8\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
44221701000116102 (metformin hydrochloride 1000 mg tablet)
\"\n },\n \"status\": \"active\",\n \"medicationCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"109081006\",\n \"display\": \"Product containing metformin (medicinal product)\"\n }\n ],\n \"text\": \"metformin hydrochloride 1000 mg tablet\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-02-21\",\n \"informationSource\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n },\n \"dosage\": [\n {\n \"text\": \"Take ONE tablet, two times a day, with meals.\",\n \"timing\": {\n \"repeat\": {\n \"frequency\": 2,\n \"period\": 1,\n \"periodUnit\": \"d\"\n }\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"26643006\",\n \"display\": \"Oral route\"\n }\n ]\n },\n \"doseAndRate\": [\n {\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/dose-rate-type\",\n \"code\": \"ordered\",\n \"display\": \"Ordered\"\n }\n ]\n },\n \"doseQuantity\": {\n \"value\": 1,\n \"unit\": \"Tablet - unit of product usage\",\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"428673006\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/MedicationStatement/e19dc087-0055-4feb-a847-72e77cf55a0a\",\n \"resource\": {\n \"resourceType\": \"MedicationStatement\",\n \"id\": \"e19dc087-0055-4feb-a847-72e77cf55a0a\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
10109621000116108 (amlodipine 5 mg tablet)
\"\n },\n \"status\": \"active\",\n \"medicationCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"108537001\",\n \"display\": \"Product containing amlodipine (medicinal product)\"\n }\n ],\n \"text\": \"amlodipine 5 mg tablet\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-02-21\",\n \"informationSource\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n },\n \"dosage\": [\n {\n \"text\": \"Take ONE tablet at any time of day, but try to make sure it's around the same time every day.\",\n \"timing\": {\n \"repeat\": {\n \"frequency\": 1,\n \"period\": 1,\n \"periodUnit\": \"d\"\n }\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"26643006\",\n \"display\": \"Oral route\"\n }\n ]\n },\n \"doseAndRate\": [\n {\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/dose-rate-type\",\n \"code\": \"ordered\",\n \"display\": \"Ordered\"\n }\n ]\n },\n \"doseQuantity\": {\n \"value\": 1,\n \"unit\": \"Tablet - unit of product usage\",\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"428673006\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/MedicationStatement/f7a26186-dd57-420f-95be-c0deeee49367\",\n \"resource\": {\n \"resourceType\": \"MedicationStatement\",\n \"id\": \"f7a26186-dd57-420f-95be-c0deeee49367\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
10195211000116102 (losartan potassium 50 mg tablet)
\"\n },\n \"status\": \"active\",\n \"medicationCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"96309000\",\n \"display\": \"Product containing losartan (medicinal product)\"\n }\n ],\n \"text\": \"losartan potassium 50 mg tablet\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-02-21\",\n \"informationSource\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n },\n \"dosage\": [\n {\n \"text\": \"Take ONE tablet daily\",\n \"timing\": {\n \"repeat\": {\n \"frequency\": 1,\n \"period\": 1,\n \"periodUnit\": \"d\"\n }\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"26643006\",\n \"display\": \"Oral route\"\n }\n ]\n },\n \"doseAndRate\": [\n {\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/dose-rate-type\",\n \"code\": \"ordered\",\n \"display\": \"Ordered\"\n }\n ]\n },\n \"doseQuantity\": {\n \"value\": 1,\n \"unit\": \"Tablet - unit of product usage\",\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"428673006\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/MedicationStatement/b6b49f33-a0e4-4b94-92f3-caa3267ad4f7\",\n \"resource\": {\n \"resourceType\": \"MedicationStatement\",\n \"id\": \"b6b49f33-a0e4-4b94-92f3-caa3267ad4f7\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
10077081000116106 (aspirin 75 mg tablet: enteric-coated)
\"\n },\n \"status\": \"active\",\n \"medicationCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"7947003\",\n \"display\": \"Product containing aspirin (medicinal product)\"\n }\n ],\n \"text\": \"aspirin 75 mg tablet: enteric-coated\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-02-21\",\n \"informationSource\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n },\n \"dosage\": [\n {\n \"text\": \"Take ONE tablet daily\",\n \"timing\": {\n \"repeat\": {\n \"frequency\": 1,\n \"period\": 1,\n \"periodUnit\": \"d\"\n }\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"26643006\",\n \"display\": \"Oral route\"\n }\n ]\n },\n \"doseAndRate\": [\n {\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/dose-rate-type\",\n \"code\": \"ordered\",\n \"display\": \"Ordered\"\n }\n ]\n },\n \"doseQuantity\": {\n \"value\": 1,\n \"unit\": \"Tablet - unit of product usage\",\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"428673006\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/MedicationStatement/ce2395b9-d7ef-4df0-b38f-fc9be0e44f94\",\n \"resource\": {\n \"resourceType\": \"MedicationStatement\",\n \"id\": \"ce2395b9-d7ef-4df0-b38f-fc9be0e44f94\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
10030521000116104 (allopurinol 300 mg tablet)
\"\n },\n \"status\": \"active\",\n \"medicationCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"25246002\",\n \"display\": \"Product containing allopurinol (medicinal product)\"\n }\n ],\n \"text\": \"allopurinol 300 mg tablet\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-02-21\",\n \"informationSource\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n },\n \"dosage\": [\n {\n \"text\": \"Take ONE tablet daily, after meals\",\n \"timing\": {\n \"repeat\": {\n \"frequency\": 1,\n \"period\": 1,\n \"periodUnit\": \"d\"\n }\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"26643006\",\n \"display\": \"Oral route\"\n }\n ]\n },\n \"doseAndRate\": [\n {\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/dose-rate-type\",\n \"code\": \"ordered\",\n \"display\": \"Ordered\"\n }\n ]\n },\n \"doseQuantity\": {\n \"value\": 1,\n \"unit\": \"Tablet - unit of product usage\",\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"428673006\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Immunization/998e59d9-a7f4-4503-b08e-85ce9b206b0a\",\n \"resource\": {\n \"resourceType\": \"Immunization\",\n \"id\": \"998e59d9-a7f4-4503-b08e-85ce9b206b0a\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
208 (Pfizer/BioNtech)
\"\n },\n \"status\": \"completed\",\n \"vaccineCode\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/sid/cvx\",\n \"code\": \"208\",\n \"display\": \"SARS-COV-2 (COVID-19) vaccine, mRNA, spike protein, LNP, preservative free, 30 mcg/0.3mL dose\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"occurrenceDateTime\": \"2022-02-01\",\n \"site\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"16217701000119102\",\n \"display\": \"Structure of left deltoid muscle\"\n }\n ]\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration\",\n \"code\": \"IM\",\n \"display\": \"Injection, intramuscular\"\n }\n ]\n },\n \"performer\": [\n {\n \"actor\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n }\n }\n ],\n \"protocolApplied\": [\n {\n \"series\": \"12 (At risk, no previous history)\",\n \"doseNumberPositiveInt\": 2\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Immunization/fc6b3454-527b-4deb-a266-7f52c63d0d3c\",\n \"resource\": {\n \"resourceType\": \"Immunization\",\n \"id\": \"fc6b3454-527b-4deb-a266-7f52c63d0d3c\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
208 (Pfizer/BioNtech)
\"\n },\n \"status\": \"completed\",\n \"vaccineCode\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/sid/cvx\",\n \"code\": \"208\",\n \"display\": \"SARS-COV-2 (COVID-19) vaccine, mRNA, spike protein, LNP, preservative free, 30 mcg/0.3mL dose\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"occurrenceDateTime\": \"2021-08-05\",\n \"site\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"16217701000119102\",\n \"display\": \"Structure of left deltoid muscle\"\n }\n ]\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration\",\n \"code\": \"IM\",\n \"display\": \"Injection, intramuscular\"\n }\n ]\n },\n \"performer\": [\n {\n \"actor\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n }\n }\n ],\n \"protocolApplied\": [\n {\n \"series\": \"12 (At risk, no previous history)\",\n \"doseNumberPositiveInt\": 1\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Immunization/33c971d3-0992-4e93-b904-6325ed4602e3\",\n \"resource\": {\n \"resourceType\": \"Immunization\",\n \"id\": \"33c971d3-0992-4e93-b904-6325ed4602e3\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
99006 (Influenza)
\"\n },\n \"status\": \"completed\",\n \"vaccineCode\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/sid/cvx\",\n \"code\": \"141\",\n \"display\": \"Influenza, seasonal, injectable\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"occurrenceDateTime\": \"2019-05-20\",\n \"site\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"16217701000119102\",\n \"display\": \"Structure of left deltoid muscle\"\n }\n ]\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration\",\n \"code\": \"IM\",\n \"display\": \"Injection, intramuscular\"\n }\n ]\n },\n \"performer\": [\n {\n \"actor\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n }\n }\n ],\n \"protocolApplied\": [\n {\n \"series\": \"1 (Over 65 years (Influenza))\",\n \"doseNumberPositiveInt\": 1\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Immunization/12c253d4-20e8-4dd4-935c-fd1ec8a49279\",\n \"resource\": {\n \"resourceType\": \"Immunization\",\n \"id\": \"12c253d4-20e8-4dd4-935c-fd1ec8a49279\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
20 (DTaP)
\"\n },\n \"status\": \"completed\",\n \"vaccineCode\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/sid/cvx\",\n \"code\": \"20\",\n \"display\": \"diphtheria, tetanus toxoids and acellular pertussis vaccine\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"occurrenceDateTime\": \"2019-04-24\",\n \"site\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"16217701000119102\",\n \"display\": \"Structure of left deltoid muscle\"\n }\n ]\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration\",\n \"code\": \"IM\",\n \"display\": \"Injection, intramuscular\"\n }\n ]\n },\n \"performer\": [\n {\n \"actor\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n }\n }\n ],\n \"protocolApplied\": [\n {\n \"series\": \"6 (Booster)\",\n \"doseNumberPositiveInt\": 1\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Immunization/70308bba-2bc4-4505-ba9b-520f9d3dc30b\",\n \"resource\": {\n \"resourceType\": \"Immunization\",\n \"id\": \"70308bba-2bc4-4505-ba9b-520f9d3dc30b\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
[Tetanus booster (given as DT)]
\"\n },\n \"status\": \"completed\",\n \"vaccineCode\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/sid/cvx\",\n \"code\": \"138\",\n \"display\": \"tetanus and diphtheria toxoids, not adsorbed, for adult use\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"occurrenceDateTime\": \"2018-04-05\",\n \"site\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"16217701000119102\",\n \"display\": \"Structure of left deltoid muscle\"\n }\n ]\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration\",\n \"code\": \"IM\",\n \"display\": \"Injection, intramuscular\"\n }\n ]\n },\n \"performer\": [\n {\n \"actor\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n }\n }\n ],\n \"protocolApplied\": [\n {\n \"series\": \"6 (Booster)\",\n \"doseNumberPositiveInt\": 1\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Immunization/acd3a963-0985-4679-a126-8eb9ed981d36\",\n \"resource\": {\n \"resourceType\": \"Immunization\",\n \"id\": \"acd3a963-0985-4679-a126-8eb9ed981d36\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
133 (PCV13)
\"\n },\n \"status\": \"completed\",\n \"vaccineCode\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/sid/cvx\",\n \"code\": \"133\",\n \"display\": \"pneumococcal conjugate vaccine, 13 valent\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"occurrenceDateTime\": \"2015-09-25\",\n \"site\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"16217701000119102\",\n \"display\": \"Structure of left deltoid muscle\"\n }\n ]\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration\",\n \"code\": \"IM\",\n \"display\": \"Injection, intramuscular\"\n }\n ]\n },\n \"performer\": [\n {\n \"actor\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n }\n }\n ],\n \"protocolApplied\": [\n {\n \"series\": \"21 (PCV catch up)\",\n \"doseNumberPositiveInt\": 1\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Immunization/bae44614-43cc-4df4-94b3-c26d34b0ea37\",\n \"resource\": {\n \"resourceType\": \"Immunization\",\n \"id\": \"bae44614-43cc-4df4-94b3-c26d34b0ea37\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
99006 (Influenza)
\"\n },\n \"status\": \"completed\",\n \"vaccineCode\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/sid/cvx\",\n \"code\": \"141\",\n \"display\": \"Influenza, seasonal, injectable\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"occurrenceDateTime\": \"2015-05-01\",\n \"site\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"16217701000119102\",\n \"display\": \"Structure of left deltoid muscle\"\n }\n ]\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration\",\n \"code\": \"IM\",\n \"display\": \"Injection, intramuscular\"\n }\n ]\n },\n \"performer\": [\n {\n \"actor\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n }\n }\n ],\n \"protocolApplied\": [\n {\n \"series\": \"1 (Over 65 years (Influenza))\",\n \"doseNumberPositiveInt\": 1\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Procedure/8414198c-a43b-4ef1-b06f-3b39fb4b39cc\",\n \"resource\": {\n \"resourceType\": \"Procedure\",\n \"id\": \"8414198c-a43b-4ef1-b06f-3b39fb4b39cc\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Operative procedure on hip
\"\n },\n \"status\": \"unknown\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"265132005\",\n \"display\": \"Primary open reduction and internal fixation of proximal femoral fracture with screw/nail and plate device\"\n }\n ],\n \"text\": \"Operative procedure on hip\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"performedDateTime\": \"2020-09-01\",\n \"location\": {\n \"reference\": \"Location/F05076-A\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Procedure/1096ab80-e982-41b3-85c2-8e1d2466d147\",\n \"resource\": {\n \"resourceType\": \"Procedure\",\n \"id\": \"1096ab80-e982-41b3-85c2-8e1d2466d147\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Hand closure
\"\n },\n \"status\": \"unknown\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"287903004\",\n \"display\": \"Suturing of hand\"\n }\n ],\n \"text\": \"Hand closure\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"performedDateTime\": \"2018-03-31\"\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/DiagnosticReport/9e0d995f-a78d-45f4-b3aa-23037972a3e6\",\n \"resource\": {\n \"resourceType\": \"DiagnosticReport\",\n \"id\": \"9e0d995f-a78d-45f4-b3aa-23037972a3e6\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
[Lipids]
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v2-0074\",\n \"code\": \"LAB\",\n \"display\": \"Laboratory\"\n }\n ]\n }\n ],\n \"code\": {\n \"text\": \"[Lipids]\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"result\": [\n {\n \"reference\": \"Observation/2f3ad263-1b4e-443b-95ca-66d2abb6e927\"\n },\n {\n \"reference\": \"Observation/fe53810f-a341-4093-a959-4048ad62f85b\"\n },\n {\n \"reference\": \"Observation/6adb76b4-73f3-4552-87a6-09ac3dc1f558\"\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/DiagnosticReport/2da4116e-7158-4d59-b6c4-873b37f7d65f\",\n \"resource\": {\n \"resourceType\": \"DiagnosticReport\",\n \"id\": \"2da4116e-7158-4d59-b6c4-873b37f7d65f\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
[HbA1C]
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v2-0074\",\n \"code\": \"LAB\",\n \"display\": \"Laboratory\"\n }\n ]\n }\n ],\n \"code\": {\n \"text\": \"[HbA1C]\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"result\": [\n {\n \"reference\": \"Observation/63ad8984-003c-4e44-bc56-31dd6abc0897\"\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/2f3ad263-1b4e-443b-95ca-66d2abb6e927\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"2f3ad263-1b4e-443b-95ca-66d2abb6e927\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
[Total cholesterol:HDL ratio]
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"laboratory\"\n }\n ]\n }\n ],\n \"code\": {\n \"text\": \"[Total cholesterol:HDL ratio]\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/8363e64e-f639-4f55-bd3c-6302bf87a6d3\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 5.1,\n \"unit\": \"mmol/L\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mmol/L\"\n },\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"H\",\n \"display\": \"High\"\n }\n ]\n }\n ],\n \"referenceRange\": [\n {\n \"text\": \"<4 mmol/L (high risk)\"\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/fe53810f-a341-4093-a959-4048ad62f85b\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"fe53810f-a341-4093-a959-4048ad62f85b\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
[HDL Cholesterol]
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"laboratory\"\n }\n ]\n }\n ],\n \"code\": {\n \"text\": \"[HDL Cholesterol]\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/8363e64e-f639-4f55-bd3c-6302bf87a6d3\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 1.5,\n \"unit\": \"mmol/L\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mmol/L\"\n },\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"N\",\n \"display\": \"Normal\"\n }\n ]\n }\n ],\n \"referenceRange\": [\n {\n \"text\": \">1 mmol/L\"\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/6adb76b4-73f3-4552-87a6-09ac3dc1f558\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"6adb76b4-73f3-4552-87a6-09ac3dc1f558\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
[LDL Cholesterol]
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"laboratory\"\n }\n ]\n }\n ],\n \"code\": {\n \"text\": \"[LDL Cholesterol]\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/8363e64e-f639-4f55-bd3c-6302bf87a6d3\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 3.4,\n \"unit\": \"mmol/L\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mmol/L\"\n },\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"H\",\n \"display\": \"High\"\n }\n ]\n }\n ],\n \"referenceRange\": [\n {\n \"text\": \"<1.8 mmol/L\"\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/63ad8984-003c-4e44-bc56-31dd6abc0897\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"63ad8984-003c-4e44-bc56-31dd6abc0897\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
[HbA1c]
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"laboratory\"\n }\n ]\n }\n ],\n \"code\": {\n \"text\": \"[HbA1c]\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/8363e64e-f639-4f55-bd3c-6302bf87a6d3\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 60,\n \"unit\": \"mmol/mol\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mmol/mol\"\n },\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"H\",\n \"display\": \"High\"\n }\n ]\n }\n ],\n \"referenceRange\": [\n {\n \"text\": \"50 – 55 mmol/mol (diabetes)\"\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/6f64547c-89a3-459d-a993-b89e995c1f14\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"6f64547c-89a3-459d-a993-b89e995c1f14\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Body temperature
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8310-5\",\n \"display\": \"Body temperature\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-09-29T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 37.5,\n \"unit\": \"Cel\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"Cel\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/da3bbb11-e485-4396-a25c-611354789c65\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"da3bbb11-e485-4396-a25c-611354789c65\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Heart rate
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8867-4\",\n \"display\": \"Heart rate\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-09-29T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 84,\n \"unit\": \"/min\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"/min\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/5dead0bd-80c7-42f7-9720-3aaf047eb89b\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"5dead0bd-80c7-42f7-9720-3aaf047eb89b\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Respiratory rate
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"9279-1\",\n \"display\": \"Respiratory rate\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-09-29T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 18,\n \"unit\": \"/min\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"/min\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/126f25f0-d921-4d9a-85a2-5b847cfb89fb\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"126f25f0-d921-4d9a-85a2-5b847cfb89fb\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Blood pressure panel with all children optional
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"85354-9\",\n \"display\": \"Blood pressure panel with all children optional\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-09-29T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"component\": [\n {\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8480-6\",\n \"display\": \"Systolic blood pressure\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 136,\n \"unit\": \"mmHg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mm[Hg]\"\n }\n },\n {\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8462-4\",\n \"display\": \"Diastolic blood pressure\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 88,\n \"unit\": \"mmHg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mm[Hg]\"\n }\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/cf628f81-f66b-42a7-a33a-c5d38a604861\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"cf628f81-f66b-42a7-a33a-c5d38a604861\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Body height
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8302-2\",\n \"display\": \"Body height\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-09-29T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 1.84,\n \"unit\": \"cm\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"cm\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/dd309bef-3b36-4422-a202-39d040113a5d\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"dd309bef-3b36-4422-a202-39d040113a5d\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Body weight
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"29463-7\",\n \"display\": \"Body weight\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-09-29T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 104,\n \"unit\": \"kg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"kg\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/4c5e0a16-2e2c-47cc-8e1d-a87afee4d6f1\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"4c5e0a16-2e2c-47cc-8e1d-a87afee4d6f1\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Body temperature
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8310-5\",\n \"display\": \"Body temperature\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 37.2,\n \"unit\": \"Cel\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"Cel\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/eda3092b-5228-420b-b0ce-f5eb77e73942\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"eda3092b-5228-420b-b0ce-f5eb77e73942\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Heart rate
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8867-4\",\n \"display\": \"Heart rate\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 86,\n \"unit\": \"/min\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"/min\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/2d420435-f380-46e1-ad93-b9fef57f4b71\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"2d420435-f380-46e1-ad93-b9fef57f4b71\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Respiratory rate
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"9279-1\",\n \"display\": \"Respiratory rate\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 14,\n \"unit\": \"/min\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"/min\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/7a422837-80f5-4fa6-b3ac-8a0e44b99356\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"7a422837-80f5-4fa6-b3ac-8a0e44b99356\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Blood pressure panel with all children optional
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"85354-9\",\n \"display\": \"Blood pressure panel with all children optional\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"component\": [\n {\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8480-6\",\n \"display\": \"Systolic blood pressure\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 130,\n \"unit\": \"mmHg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mm[Hg]\"\n }\n },\n {\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8462-4\",\n \"display\": \"Diastolic blood pressure\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 82,\n \"unit\": \"mmHg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mm[Hg]\"\n }\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/af9ae822-ae5d-4bec-88bf-4dd250350783\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"af9ae822-ae5d-4bec-88bf-4dd250350783\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Body weight
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"29463-7\",\n \"display\": \"Body weight\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 103,\n \"unit\": \"kg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"kg\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/33624327-7e1b-4912-bca1-2d0c8d36b952\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"33624327-7e1b-4912-bca1-2d0c8d36b952\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Tobacco smoking status
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"social-history\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"72166-2\",\n \"display\": \"Tobacco smoking status\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2005-06-30\",\n \"performer\": [\n {\n \"reference\": \"Patient/ZKT9319\"\n }\n ],\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"LA15920-4\",\n \"display\": \"Former smoker\"\n }\n ]\n },\n \"note\": [\n {\n \"text\": \"30 - pack - year smoking history, quit smoking ~2005.\"\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/PractitionerRole/8363e64e-f639-4f55-bd3c-6302bf87a6d3\",\n \"resource\": {\n \"resourceType\": \"PractitionerRole\",\n \"id\": \"8363e64e-f639-4f55-bd3c-6302bf87a6d3\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Role: Clinical pathologist
\"\n },\n \"code\": [\n {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"81464008\",\n \"display\": \"Clinical pathologist\"\n }\n ]\n }\n ]\n }\n }\n ]\n}", + "fileType": null + } + ] +} \ No newline at end of file diff --git a/http-client-tests/resources/explicit-preset-requests/ips.json b/http-client-tests/resources/explicit-preset-requests/ips.json new file mode 100644 index 00000000..ec046d68 --- /dev/null +++ b/http-client-tests/resources/explicit-preset-requests/ips.json @@ -0,0 +1,29 @@ +{ + "cliContext": { + "extensions": [ + "any" + ], + "sv": "4.0.1", + "igs": [ + "hl7.fhir.uv.ips#1.1.0" + ], + "profiles": [ + "http://hl7.org/fhir/uv/ips/StructureDefinition/Bundle-uv-ips" + ], + "checkIPSCodes": true, + "bundleValidationRules": [ + { + "rule": "Composition:0", + "profile": "http://hl7.org/fhir/uv/ips/StructureDefinition/Composition-uv-ips" + } + ], + "locale": "en" + }, + "filesToValidate": [ + { + "fileName": "manually_entered_file.json", + "fileContent": "{\n \"resourceType\" : \"Bundle\",\n \"id\" : \"bundle-minimal\",\n \"language\" : \"en-US\",\n \"identifier\" : {\n \"system\" : \"urn:oid:2.16.724.4.8.10.200.10\",\n \"value\" : \"28b95815-76ce-457b-b7ae-a972e527db40\"\n },\n \"type\" : \"document\",\n \"timestamp\" : \"2020-12-11T14:30:00+01:00\",\n \"entry\" : [{\n \"fullUrl\" : \"urn:uuid:6e1fb74a-742b-4c7b-8487-171dacb88766\",\n \"resource\" : {\n \"resourceType\" : \"Composition\",\n \"id\" : \"6e1fb74a-742b-4c7b-8487-171dacb88766\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative

Resource \\\"6e1fb74a-742b-4c7b-8487-171dacb88766\\\"

status: final

type: Patient summary Document (LOINC#60591-5)

date: 2020-12-11 02:30:00+0100

author: Beetje van Hulp, MD

title: Patient Summary as of December 11, 2020 14:30

confidentiality: N

attester

mode: legal

time: 2020-12-11 02:30:00+0100

party: Beetje van Hulp, MD

attester

mode: legal

time: 2020-12-11 02:30:00+0100

party: Anorg Aniza Tion BV

custodian: Anorg Aniza Tion BV

RelatesTos

-CodeTarget[x]
*appendsid: 20e12ce3-857f-49c0-b888-cb670597f191

Events

-CodePeriod
*care provision (ActClass#PCPR)?? --> 2020-12-11 02:30:00+0100
\"\n },\n \"status\" : \"final\",\n \"type\" : {\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"60591-5\",\n \"display\" : \"Patient summary Document\"\n }]\n },\n \"subject\" : {\n \"reference\" : \"Patient/7685713c-e29e-4a75-8a90-45be7ba3be94\"\n },\n \"date\" : \"2020-12-11T14:30:00+01:00\",\n \"author\" : [{\n \"reference\" : \"Practitioner/98315ba9-ffea-41ef-b59b-a836c039858f\"\n }],\n \"title\" : \"Patient Summary as of December 11, 2020 14:30\",\n \"confidentiality\" : \"N\",\n \"attester\" : [{\n \"mode\" : \"legal\",\n \"time\" : \"2020-12-11T14:30:00+01:00\",\n \"party\" : {\n \"reference\" : \"Practitioner/98315ba9-ffea-41ef-b59b-a836c039858f\"\n }\n },\n {\n \"mode\" : \"legal\",\n \"time\" : \"2020-12-11T14:30:00+01:00\",\n \"party\" : {\n \"reference\" : \"Organization/bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d\"\n }\n }],\n \"custodian\" : {\n \"reference\" : \"Organization/bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d\"\n },\n \"relatesTo\" : [{\n \"code\" : \"appends\",\n \"targetIdentifier\" : {\n \"system\" : \"urn:oid:2.16.724.4.8.10.200.10\",\n \"value\" : \"20e12ce3-857f-49c0-b888-cb670597f191\"\n }\n }],\n \"event\" : [{\n \"code\" : [{\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/v3-ActClass\",\n \"code\" : \"PCPR\"\n }]\n }],\n \"period\" : {\n \"end\" : \"2020-12-11T14:30:00+01:00\"\n }\n }],\n \"section\" : [{\n \"title\" : \"Active Problems\",\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"11450-4\",\n \"display\" : \"Problem list Reported\"\n }]\n },\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"
  • Condition Name: Menopausal Flushing
    Code: 198436008
    Status: Active
\"\n },\n \"entry\" : [{\n \"reference\" : \"Condition/ad84b7a2-b4dd-474e-bef3-0779e6cb595f\"\n }]\n },\n {\n \"title\" : \"Medication\",\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"10160-0\",\n \"display\" : \"History of Medication use Narrative\"\n }]\n },\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"
  • Medication Name: Oral anastrozole 1mg tablet
    Code:
    Status: Active, started March 2015
    Instructions: Take 1 time per day
\"\n },\n \"entry\" : [{\n \"reference\" : \"MedicationStatement/6e883e5e-7648-485a-86de-3640a61601fe\"\n }]\n },\n {\n \"title\" : \"Allergies and Intolerances\",\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"48765-2\",\n \"display\" : \"Allergies and adverse reactions Document\"\n }]\n },\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"
  • Allergy Name: Pencillins
    Verification Status: Confirmed
    Reaction: no information
\"\n },\n \"entry\" : [{\n \"reference\" : \"AllergyIntolerance/fe2769fd-22c9-4307-9122-ee0466e5aebb\"\n }]\n }]\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:7685713c-e29e-4a75-8a90-45be7ba3be94\",\n \"resource\" : {\n \"resourceType\" : \"Patient\",\n \"id\" : \"7685713c-e29e-4a75-8a90-45be7ba3be94\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: Patient

Resource Patient "7685713c-e29e-4a75-8a90-45be7ba3be94"

identifier: id:\\u00a0574687583

active: true

name: Martha DeLarosa

telecom: +31788700800

gender: female

birthDate: 1972-05-01

address: Laan Van Europa 1600 Dordrecht 3317 DB NL

Contacts

-RelationshipNameTelecomAddress
*mother (RoleCode#MTH)Martha Mum +33-555-20036Promenade des Anglais 111 Lyon 69001 FR
\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:2.16.840.1.113883.2.4.6.3\",\n \"value\" : \"574687583\"\n }],\n \"active\" : true,\n \"name\" : [{\n \"family\" : \"DeLarosa\",\n \"given\" : [\"Martha\"]\n }],\n \"telecom\" : [{\n \"system\" : \"phone\",\n \"value\" : \"+31788700800\",\n \"use\" : \"home\"\n }],\n \"gender\" : \"female\",\n \"birthDate\" : \"1972-05-01\",\n \"address\" : [{\n \"line\" : [\"Laan Van Europa 1600\"],\n \"city\" : \"Dordrecht\",\n \"postalCode\" : \"3317 DB\",\n \"country\" : \"NL\"\n }],\n \"contact\" : [{\n \"relationship\" : [{\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/v3-RoleCode\",\n \"code\" : \"MTH\"\n }]\n }],\n \"name\" : {\n \"family\" : \"Mum\",\n \"given\" : [\"Martha\"]\n },\n \"telecom\" : [{\n \"system\" : \"phone\",\n \"value\" : \"+33-555-20036\",\n \"use\" : \"home\"\n }],\n \"address\" : {\n \"line\" : [\"Promenade des Anglais 111\"],\n \"city\" : \"Lyon\",\n \"postalCode\" : \"69001\",\n \"country\" : \"FR\"\n }\n }]\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:98315ba9-ffea-41ef-b59b-a836c039858f\",\n \"resource\" : {\n \"resourceType\" : \"Practitioner\",\n \"id\" : \"98315ba9-ffea-41ef-b59b-a836c039858f\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: Practitioner

Resource Practitioner "98315ba9-ffea-41ef-b59b-a836c039858f"

identifier: id:\\u00a0129854633

active: true

name: Beetje van Hulp

Qualifications

-Code
*Doctor of Medicine (degreeLicenseCertificate[2.7]#MD)
\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:2.16.528.1.1007.3.1\",\n \"value\" : \"129854633\",\n \"assigner\" : {\n \"display\" : \"CIBG\"\n }\n }],\n \"active\" : true,\n \"name\" : [{\n \"family\" : \"van Hulp\",\n \"given\" : [\"Beetje\"]\n }],\n \"qualification\" : [{\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/v2-0360\",\n \"version\" : \"2.7\",\n \"code\" : \"MD\",\n \"display\" : \"Doctor of Medicine\"\n }]\n }\n }]\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d\",\n \"resource\" : {\n \"resourceType\" : \"Organization\",\n \"id\" : \"bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: Organization

Resource Organization "bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d"

identifier: id:\\u00a0564738757

active: true

name: Anorg Aniza Tion BV / The best custodian ever

telecom: +31-51-34343400

address: Houttuinen 27 Dordrecht 3311 CE NL (WORK)

\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:2.16.528.1.1007.3.3\",\n \"value\" : \"564738757\"\n }],\n \"active\" : true,\n \"name\" : \"Anorg Aniza Tion BV / The best custodian ever\",\n \"telecom\" : [{\n \"system\" : \"phone\",\n \"value\" : \"+31-51-34343400\",\n \"use\" : \"work\"\n }],\n \"address\" : [{\n \"use\" : \"work\",\n \"line\" : [\"Houttuinen 27\"],\n \"city\" : \"Dordrecht\",\n \"postalCode\" : \"3311 CE\",\n \"country\" : \"NL\"\n }]\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:ad84b7a2-b4dd-474e-bef3-0779e6cb595f\",\n \"resource\" : {\n \"resourceType\" : \"Condition\",\n \"id\" : \"ad84b7a2-b4dd-474e-bef3-0779e6cb595f\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: Condition

Resource Condition "ad84b7a2-b4dd-474e-bef3-0779e6cb595f"

identifier: id:\\u00a0cacceb57-395f-48e1-9c88-e9c9704dc2d2

clinicalStatus: Active (Condition Clinical Status Codes#active)

verificationStatus: Confirmed (ConditionVerificationStatus#confirmed)

category: Problem (LOINC#75326-9)

severity: Moderate (LOINC#LA6751-7)

code: Menopausal flushing (finding) (SNOMED CT#198436008; ICD-10#N95.1 "Menopausal and female climacteric states")

subject: See above (Patient/7685713c-e29e-4a75-8a90-45be7ba3be94)

onset: 2015

recordedDate: 2016-10

\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:1.2.3.999\",\n \"value\" : \"cacceb57-395f-48e1-9c88-e9c9704dc2d2\"\n }],\n \"clinicalStatus\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\" : \"active\"\n }]\n },\n \"verificationStatus\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/condition-ver-status\",\n \"code\" : \"confirmed\"\n }]\n },\n \"category\" : [{\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"75326-9\",\n \"display\" : \"Problem\"\n }]\n }],\n \"severity\" : {\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"LA6751-7\",\n \"display\" : \"Moderate\"\n }]\n },\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://snomed.info/sct\",\n \"code\" : \"198436008\",\n \"display\" : \"Menopausal flushing (finding)\",\n \"_display\" : {\n \"extension\" : [{\n \"extension\" : [{\n \"url\" : \"lang\",\n \"valueCode\" : \"nl-NL\"\n },\n {\n \"url\" : \"content\",\n \"valueString\" : \"opvliegers\"\n }],\n \"url\" : \"http://hl7.org/fhir/StructureDefinition/translation\"\n }]\n }\n },\n {\n \"system\" : \"http://hl7.org/fhir/sid/icd-10\",\n \"code\" : \"N95.1\",\n \"display\" : \"Menopausal and female climacteric states\"\n }]\n },\n \"subject\" : {\n \"reference\" : \"Patient/7685713c-e29e-4a75-8a90-45be7ba3be94\"\n },\n \"onsetDateTime\" : \"2015\",\n \"recordedDate\" : \"2016-10\"\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:6e883e5e-7648-485a-86de-3640a61601fe\",\n \"resource\" : {\n \"resourceType\" : \"MedicationStatement\",\n \"id\" : \"6e883e5e-7648-485a-86de-3640a61601fe\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: MedicationStatement

Resource MedicationStatement "6e883e5e-7648-485a-86de-3640a61601fe"

identifier: id:\\u00a08faf0319-89d3-427c-b9d1-e8c8fd390dca

status: active

medication: See above (Medication/6369a973-afc7-4617-8877-3e9811e05a5b)

subject: See above (Patient/7685713c-e29e-4a75-8a90-45be7ba3be94)

effective: 2015-03 --> (ongoing)

dosage

timing: Count 1 times, Once

route: Oral use (standardterms.edqm.eu#20053000)

doseAndRate

\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:1.2.3.999\",\n \"value\" : \"8faf0319-89d3-427c-b9d1-e8c8fd390dca\"\n }],\n \"status\" : \"active\",\n \"medicationReference\" : {\n \"reference\" : \"Medication/6369a973-afc7-4617-8877-3e9811e05a5b\"\n },\n \"subject\" : {\n \"reference\" : \"Patient/7685713c-e29e-4a75-8a90-45be7ba3be94\"\n },\n \"effectivePeriod\" : {\n \"start\" : \"2015-03\"\n },\n \"dosage\" : [{\n \"timing\" : {\n \"repeat\" : {\n \"count\" : 1,\n \"periodUnit\" : \"d\"\n }\n },\n \"route\" : {\n \"coding\" : [{\n \"system\" : \"http://standardterms.edqm.eu\",\n \"code\" : \"20053000\",\n \"display\" : \"Oral use\"\n }]\n },\n \"doseAndRate\" : [{\n \"type\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/dose-rate-type\",\n \"code\" : \"ordered\",\n \"display\" : \"Ordered\"\n }]\n },\n \"doseQuantity\" : {\n \"value\" : 1,\n \"unit\" : \"tablet\",\n \"system\" : \"http://unitsofmeasure.org\",\n \"code\" : \"1\"\n }\n }]\n }]\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:6369a973-afc7-4617-8877-3e9811e05a5b\",\n \"resource\" : {\n \"resourceType\" : \"Medication\",\n \"id\" : \"6369a973-afc7-4617-8877-3e9811e05a5b\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: Medication

Resource Medication "6369a973-afc7-4617-8877-3e9811e05a5b"

code: Product containing anastrozole (medicinal product) (SNOMED CT#108774000; unknown#99872 "ANASTROZOL 1MG TABLET"; unknown#2076667 "ANASTROZOL CF TABLET FILMOMHULD 1MG"; WHO ATC#L02BG03 "anastrozole")

\"\n },\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://snomed.info/sct\",\n \"code\" : \"108774000\",\n \"display\" : \"Product containing anastrozole (medicinal product)\"\n },\n {\n \"system\" : \"urn:oid:2.16.840.1.113883.2.4.4.1\",\n \"code\" : \"99872\",\n \"display\" : \"ANASTROZOL 1MG TABLET\"\n },\n {\n \"system\" : \"urn:oid:2.16.840.1.113883.2.4.4.7\",\n \"code\" : \"2076667\",\n \"display\" : \"ANASTROZOL CF TABLET FILMOMHULD 1MG\"\n },\n {\n \"system\" : \"http://www.whocc.no/atc\",\n \"code\" : \"L02BG03\",\n \"display\" : \"anastrozole\"\n }]\n }\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:fe2769fd-22c9-4307-9122-ee0466e5aebb\",\n \"resource\" : {\n \"resourceType\" : \"AllergyIntolerance\",\n \"id\" : \"fe2769fd-22c9-4307-9122-ee0466e5aebb\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: AllergyIntolerance

Resource AllergyIntolerance "fe2769fd-22c9-4307-9122-ee0466e5aebb"

identifier: id:\\u00a08d9566a4-d26d-46be-a3e4-c9f3a0e5cd83

clinicalStatus: Active (AllergyIntolerance Clinical Status Codes#active)

verificationStatus: Confirmed (AllergyIntolerance Verification Status#confirmed)

type: allergy

category: medication

criticality: high

code: Substance with penicillin structure and antibacterial mechanism of action (substance) (SNOMED CT#373270004)

patient: See above (Patient/7685713c-e29e-4a75-8a90-45be7ba3be94)

onset: 2010

\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:1.2.3.999\",\n \"value\" : \"8d9566a4-d26d-46be-a3e4-c9f3a0e5cd83\"\n }],\n \"clinicalStatus\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical\",\n \"code\" : \"active\"\n }]\n },\n \"verificationStatus\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/allergyintolerance-verification\",\n \"code\" : \"confirmed\"\n }]\n },\n \"type\" : \"allergy\",\n \"category\" : [\"medication\"],\n \"criticality\" : \"high\",\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://snomed.info/sct\",\n \"code\" : \"373270004\",\n \"display\" : \"Substance with penicillin structure and antibacterial mechanism of action (substance)\"\n }]\n },\n \"patient\" : {\n \"reference\" : \"Patient/7685713c-e29e-4a75-8a90-45be7ba3be94\"\n },\n \"onsetDateTime\" : \"2010\"\n }\n }]\n}", + "fileType": null + } + ] +} \ No newline at end of file diff --git a/http-client-tests/resources/explicit-preset-requests/sql-on-fhir.json b/http-client-tests/resources/explicit-preset-requests/sql-on-fhir.json new file mode 100644 index 00000000..b4a2db2b --- /dev/null +++ b/http-client-tests/resources/explicit-preset-requests/sql-on-fhir.json @@ -0,0 +1,16 @@ +{ + "cliContext": { + "sv": "5.0.0", + "igs": [ + "hl7.fhir.uv.sql-on-fhir#current" + ], + "locale": "en" + }, + "filesToValidate": [ + { + "fileName": "manually_entered_file.json", + "fileContent": "{\n \"resourceType\": \"http://hl7.org/fhir/uv/sql-on-fhir/StructureDefinition/ViewDefinition\",\n \"select\": [\n {\n \"column\": [\n {\n \"path\": \"getResourceKey()\",\n \"name\": \"patient_id\"\n }\n ]\n },\n {\n \"column\": [\n {\n \"path\": \"line.join('\\n')\",\n \"name\": \"street\",\n \"description\": \"The full street address, including newlines if present.\"\n },\n {\n \"path\": \"use\",\n \"name\": \"use\"\n },\n {\n \"path\": \"city\",\n \"name\": \"city\"\n },\n {\n \"path\": \"postalCode\",\n \"name\": \"zip\"\n }\n ],\n \"forEach\": \"address\"\n }\n ],\n \"name\": \"patient_addresses\",\n \"status\": \"draft\",\n \"resource\": \"Patient\"\n }", + "fileType": null + } + ] +} \ No newline at end of file diff --git a/http-client-tests/resources/explicit-preset-requests/us-ccda.json b/http-client-tests/resources/explicit-preset-requests/us-ccda.json new file mode 100644 index 00000000..e5d0832f --- /dev/null +++ b/http-client-tests/resources/explicit-preset-requests/us-ccda.json @@ -0,0 +1,16 @@ +{ + "cliContext": { + "sv": "5.0.0", + "igs": [ + "hl7.cda.us.ccda#3.0.0-ballot" + ], + "locale": "en" + }, + "filesToValidate": [ + { + "fileName": "manually_entered_file.xml", + "fileContent": "\n\n\n\n\t\n\t\n\t\n \n \n \n\t\n\t\n\t\n\tGood Health Hospital Care Plan\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t2222 Home Street\n\t\t\t\tBeaverton\n\t\t\t\tOR\n\t\t\t\t97867\n\t\t\t\tUS\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tEve\n\t\t\t\t\t\n\t\t\t\t\tBetterhalf\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tEve\n\t\t\t\t\t\n\t\t\t\t\tEverywoman\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t2222 Home Street\n\t\t\t\t\t\tBeaverton\n\t\t\t\t\t\tOR\n\t\t\t\t\t\t97867\n\t\t\t\t\t\tUS\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tBoris\n\t\t\t\t\t\t\tBo\n\t\t\t\t\t\t\tBetterhalf\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t4444 Home Street\n\t\t\t\t\t\t\tBeaverton\n\t\t\t\t\t\t\tOR\n\t\t\t\t\t\t\t97867\n\t\t\t\t\t\t\tUS\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\tThe DoctorsTogether Physician Group\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t1007 Health Drive\n\t\t\t\t\tPortland\n\t\t\t\t\tOR\n\t\t\t\t\t99123\n\t\t\t\t\tUS\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t1007 Healthcare Drive\n\t\t\t\tPortland\n\t\t\t\tOR\n\t\t\t\t99123\n\t\t\t\tUS\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tEllen\n\t\t\t\t\tEnter\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t1007 Healthcare Drive\n\t\t\t\tPortland\n\t\t\t\tOR\n\t\t\t\t99123\n\t\t\t\tUS\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tHarold\n\t\t\t\t\tHippocrates\n\t\t\t\t\tD.O.\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\tGood Health HIE\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t1009 Healthcare Drive \n\t\t\t\t\tPortland\n\t\t\t\t\tOR\n\t\t\t\t\t99123\n\t\t\t\t\tUS\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t100 Better Health Rd.\n\t\t\t\tAnn Arbor\n\t\t\t\tMI\n\t\t\t\t97857\n\t\t\t\tUS\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tNurse\n\t\t\t\t\tCaresalot\n\t\t\t\t\tRN\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tBetter Health Hospital\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t100 Better Health Rd.\n\t\t\t\t\tAnn Arbor\n\t\t\t\t\tMI\n\t\t\t\t\t97857\n\t\t\t\t\tUS\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t17 Daws Rd.\n\t\t\t\tAnn Arbor\n\t\t\t\tMI\n\t\t\t\t97857\n\t\t\t\tUS\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tMrs.\n\t\t\t\t\tMartha\n\t\t\t\t\tJones\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t17 Daws Rd.\n\t\t\t\tAnn Arbor\n\t\t\t\tMI\n\t\t\t\t97857\n\t\t\t\tUS\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tMrs.\n\t\t\t\t\tMartha\n\t\t\t\t\tJones\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n \n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tPROBLEMS\n\t\t\t\tNo Information\n\t\t\t
\n\t\t
\n
\n\t
\n
", + "fileType": null + } + ] +} \ No newline at end of file diff --git a/http-client-tests/resources/preset-requests/cda.json b/http-client-tests/resources/preset-requests/cda.json new file mode 100644 index 00000000..e6c91446 --- /dev/null +++ b/http-client-tests/resources/preset-requests/cda.json @@ -0,0 +1,13 @@ +{ + "cliContext": { + "baseEngine": "CDA", + "locale": "en" + }, + "filesToValidate": [ + { + "fileName": "manually_entered_file.xml", + "fileContent": "\n\n\n\n\t\n\t\n\t\n \n \n \n\t\n\t\n\t\n\tGood Health Hospital Care Plan\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t2222 Home Street\n\t\t\t\tBeaverton\n\t\t\t\tOR\n\t\t\t\t97867\n\t\t\t\tUS\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tEve\n\t\t\t\t\t\n\t\t\t\t\tBetterhalf\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tEve\n\t\t\t\t\t\n\t\t\t\t\tEverywoman\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t2222 Home Street\n\t\t\t\t\t\tBeaverton\n\t\t\t\t\t\tOR\n\t\t\t\t\t\t97867\n\t\t\t\t\t\tUS\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tBoris\n\t\t\t\t\t\t\tBo\n\t\t\t\t\t\t\tBetterhalf\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t4444 Home Street\n\t\t\t\t\t\t\tBeaverton\n\t\t\t\t\t\t\tOR\n\t\t\t\t\t\t\t97867\n\t\t\t\t\t\t\tUS\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\tThe DoctorsTogether Physician Group\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t1007 Health Drive\n\t\t\t\t\tPortland\n\t\t\t\t\tOR\n\t\t\t\t\t99123\n\t\t\t\t\tUS\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t1007 Healthcare Drive\n\t\t\t\tPortland\n\t\t\t\tOR\n\t\t\t\t99123\n\t\t\t\tUS\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tEllen\n\t\t\t\t\tEnter\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t1007 Healthcare Drive\n\t\t\t\tPortland\n\t\t\t\tOR\n\t\t\t\t99123\n\t\t\t\tUS\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tHarold\n\t\t\t\t\tHippocrates\n\t\t\t\t\tD.O.\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\tGood Health HIE\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t1009 Healthcare Drive \n\t\t\t\t\tPortland\n\t\t\t\t\tOR\n\t\t\t\t\t99123\n\t\t\t\t\tUS\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t100 Better Health Rd.\n\t\t\t\tAnn Arbor\n\t\t\t\tMI\n\t\t\t\t97857\n\t\t\t\tUS\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tNurse\n\t\t\t\t\tCaresalot\n\t\t\t\t\tRN\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tBetter Health Hospital\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t100 Better Health Rd.\n\t\t\t\t\tAnn Arbor\n\t\t\t\t\tMI\n\t\t\t\t\t97857\n\t\t\t\t\tUS\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t17 Daws Rd.\n\t\t\t\tAnn Arbor\n\t\t\t\tMI\n\t\t\t\t97857\n\t\t\t\tUS\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tMrs.\n\t\t\t\t\tMartha\n\t\t\t\t\tJones\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t17 Daws Rd.\n\t\t\t\tAnn Arbor\n\t\t\t\tMI\n\t\t\t\t97857\n\t\t\t\tUS\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tMrs.\n\t\t\t\t\tMartha\n\t\t\t\t\tJones\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n \n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tPROBLEMS\n\t\t\t\tNo Information\n\t\t\t
\n\t\t
\n
\n\t
\n
", + "fileType": null + } + ] +} \ No newline at end of file diff --git a/http-client-tests/resources/preset-requests/default.json b/http-client-tests/resources/preset-requests/default.json new file mode 100644 index 00000000..1be4debb --- /dev/null +++ b/http-client-tests/resources/preset-requests/default.json @@ -0,0 +1,13 @@ +{ +"cliContext": { + "baseEngine": "DEFAULT", + "locale": "en" +}, +"filesToValidate": [ +{ +"fileName": "manually_entered_file.json", +"fileContent": "{\n \"resourceType\": \"Observation\",\n \"id\": \"blood-pressure\",\n \"meta\": {\n \"profile\": [\n \"http://hl7.org/fhir/StructureDefinition/vitalsigns\"\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"

Generated Narrative with Details

id: blood-pressure

meta:

identifier: urn:uuid:187e0c12-8dd2-67e2-99b2-bf273c878281

basedOn:

status: final

category: Vital Signs (Details : {http://terminology.hl7.org/CodeSystem/observation-category code 'vital-signs' = 'Vital Signs', given as 'Vital Signs'})

code: Blood pressure systolic & diastolic (Details : {LOINC code '85354-9' = 'Blood pressure panel with all children optional', given as 'Blood pressure panel with all children optional'})

subject: Patient/example

effective: 17/09/2012

performer: Practitioner/example

interpretation: Below low normal (Details : {http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation code 'L' = 'Low', given as 'low'})

bodySite: Right arm (Details : {SNOMED CT code '368209003' = 'Right upper arm', given as 'Right arm'})

component

code: Systolic blood pressure (Details : {LOINC code '8480-6' = 'Systolic blood pressure', given as 'Systolic blood pressure'}; {SNOMED CT code '271649006' = 'Systolic blood pressure', given as 'Systolic blood pressure'}; {http://acme.org/devices/clinical-codes code 'bp-s' = 'bp-s', given as 'Systolic Blood pressure'})

value: 107 mmHg (Details: UCUM code mm[Hg] = 'mmHg')

interpretation: Normal (Details : {http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation code 'N' = 'Normal', given as 'normal'})

component

code: Diastolic blood pressure (Details : {LOINC code '8462-4' = 'Diastolic blood pressure', given as 'Diastolic blood pressure'})

value: 60 mmHg (Details: UCUM code mm[Hg] = 'mmHg')

interpretation: Below low normal (Details : {http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation code 'L' = 'Low', given as 'low'})

\"\n },\n \"identifier\": [\n {\n \"system\": \"urn:ietf:rfc:3986\",\n \"value\": \"urn:uuid:187e0c12-8dd2-67e2-99b2-bf273c878281\"\n }\n ],\n \"basedOn\": [\n {\n \"identifier\": {\n \"system\": \"https://acme.org/identifiers\",\n \"value\": \"1234\"\n }\n }\n ],\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\",\n \"display\": \"Vital Signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"85354-9\",\n \"display\": \"Blood pressure panel with all children optional\"\n }\n ],\n \"text\": \"Blood pressure systolic & diastolic\"\n },\n \"subject\": {\n \"reference\": \"Patient/example\"\n },\n \"effectiveDateTime\": \"2012-09-17\",\n \"performer\": [\n {\n \"reference\": \"Practitioner/example\"\n }\n ],\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"L\",\n \"display\": \"low\"\n }\n ],\n \"text\": \"Below low normal\"\n }\n ],\n \"bodySite\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"368209003\",\n \"display\": \"Right arm\"\n }\n ]\n },\n \"component\": [\n {\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8480-6\",\n \"display\": \"Systolic blood pressure\"\n },\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"271649006\",\n \"display\": \"Systolic blood pressure\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 107,\n \"unit\": \"mmHg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mm[Hg]\"\n },\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"N\",\n \"display\": \"normal\"\n }\n ],\n \"text\": \"Normal\"\n }\n ]\n },\n {\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8462-4\",\n \"display\": \"Diastolic blood pressure\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 60,\n \"unit\": \"mmHg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mm[Hg]\"\n },\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"L\",\n \"display\": \"low\"\n }\n ],\n \"text\": \"Below low normal\"\n }\n ]\n }\n ]\n}", +"fileType": null +} +] +} \ No newline at end of file diff --git a/http-client-tests/resources/preset-requests/ips-au.json b/http-client-tests/resources/preset-requests/ips-au.json new file mode 100644 index 00000000..7ff09de0 --- /dev/null +++ b/http-client-tests/resources/preset-requests/ips-au.json @@ -0,0 +1,16 @@ +{ + "cliContext": { + "baseEngine": "IPS_AU", + "locale": "en", + "profiles": [ + "http://hl7.org.au/fhir/ips/StructureDefinition/Bundle-au-ips" + ] + }, + "filesToValidate": [ + { + "fileName": "manually_entered_file.json", + "fileContent": "{\n \"resourceType\" : \"Bundle\",\n \"id\" : \"bundle-minimal\",\n \"language\" : \"en-US\",\n \"identifier\" : {\n \"system\" : \"urn:oid:2.16.724.4.8.10.200.10\",\n \"value\" : \"28b95815-76ce-457b-b7ae-a972e527db40\"\n },\n \"type\" : \"document\",\n \"timestamp\" : \"2020-12-11T14:30:00+01:00\",\n \"entry\" : [{\n \"fullUrl\" : \"urn:uuid:6e1fb74a-742b-4c7b-8487-171dacb88766\",\n \"resource\" : {\n \"resourceType\" : \"Composition\",\n \"id\" : \"6e1fb74a-742b-4c7b-8487-171dacb88766\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative

Resource \\\"6e1fb74a-742b-4c7b-8487-171dacb88766\\\"

status: final

type: Patient summary Document (LOINC#60591-5)

date: 2020-12-11 02:30:00+0100

author: Beetje van Hulp, MD

title: Patient Summary as of December 11, 2020 14:30

confidentiality: N

attester

mode: legal

time: 2020-12-11 02:30:00+0100

party: Beetje van Hulp, MD

attester

mode: legal

time: 2020-12-11 02:30:00+0100

party: Anorg Aniza Tion BV

custodian: Anorg Aniza Tion BV

RelatesTos

-CodeTarget[x]
*appendsid: 20e12ce3-857f-49c0-b888-cb670597f191

Events

-CodePeriod
*care provision (ActClass#PCPR)?? --> 2020-12-11 02:30:00+0100
\"\n },\n \"status\" : \"final\",\n \"type\" : {\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"60591-5\",\n \"display\" : \"Patient summary Document\"\n }]\n },\n \"subject\" : {\n \"reference\" : \"Patient/7685713c-e29e-4a75-8a90-45be7ba3be94\"\n },\n \"date\" : \"2020-12-11T14:30:00+01:00\",\n \"author\" : [{\n \"reference\" : \"Practitioner/98315ba9-ffea-41ef-b59b-a836c039858f\"\n }],\n \"title\" : \"Patient Summary as of December 11, 2020 14:30\",\n \"confidentiality\" : \"N\",\n \"attester\" : [{\n \"mode\" : \"legal\",\n \"time\" : \"2020-12-11T14:30:00+01:00\",\n \"party\" : {\n \"reference\" : \"Practitioner/98315ba9-ffea-41ef-b59b-a836c039858f\"\n }\n },\n {\n \"mode\" : \"legal\",\n \"time\" : \"2020-12-11T14:30:00+01:00\",\n \"party\" : {\n \"reference\" : \"Organization/bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d\"\n }\n }],\n \"custodian\" : {\n \"reference\" : \"Organization/bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d\"\n },\n \"relatesTo\" : [{\n \"code\" : \"appends\",\n \"targetIdentifier\" : {\n \"system\" : \"urn:oid:2.16.724.4.8.10.200.10\",\n \"value\" : \"20e12ce3-857f-49c0-b888-cb670597f191\"\n }\n }],\n \"event\" : [{\n \"code\" : [{\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/v3-ActClass\",\n \"code\" : \"PCPR\"\n }]\n }],\n \"period\" : {\n \"end\" : \"2020-12-11T14:30:00+01:00\"\n }\n }],\n \"section\" : [{\n \"title\" : \"Active Problems\",\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"11450-4\",\n \"display\" : \"Problem list Reported\"\n }]\n },\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"
  • Condition Name: Menopausal Flushing
    Code: 198436008
    Status: Active
\"\n },\n \"entry\" : [{\n \"reference\" : \"Condition/ad84b7a2-b4dd-474e-bef3-0779e6cb595f\"\n }]\n },\n {\n \"title\" : \"Medication\",\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"10160-0\",\n \"display\" : \"History of Medication use Narrative\"\n }]\n },\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"
  • Medication Name: Oral anastrozole 1mg tablet
    Code:
    Status: Active, started March 2015
    Instructions: Take 1 time per day
\"\n },\n \"entry\" : [{\n \"reference\" : \"MedicationStatement/6e883e5e-7648-485a-86de-3640a61601fe\"\n }]\n },\n {\n \"title\" : \"Allergies and Intolerances\",\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"48765-2\",\n \"display\" : \"Allergies and adverse reactions Document\"\n }]\n },\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"
  • Allergy Name: Pencillins
    Verification Status: Confirmed
    Reaction: no information
\"\n },\n \"entry\" : [{\n \"reference\" : \"AllergyIntolerance/fe2769fd-22c9-4307-9122-ee0466e5aebb\"\n }]\n }]\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:7685713c-e29e-4a75-8a90-45be7ba3be94\",\n \"resource\" : {\n \"resourceType\" : \"Patient\",\n \"id\" : \"7685713c-e29e-4a75-8a90-45be7ba3be94\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: Patient

Resource Patient "7685713c-e29e-4a75-8a90-45be7ba3be94"

identifier: id:\\u00a0574687583

active: true

name: Martha DeLarosa

telecom: +31788700800

gender: female

birthDate: 1972-05-01

address: Laan Van Europa 1600 Dordrecht 3317 DB NL

Contacts

-RelationshipNameTelecomAddress
*mother (RoleCode#MTH)Martha Mum +33-555-20036Promenade des Anglais 111 Lyon 69001 FR
\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:2.16.840.1.113883.2.4.6.3\",\n \"value\" : \"574687583\"\n }],\n \"active\" : true,\n \"name\" : [{\n \"family\" : \"DeLarosa\",\n \"given\" : [\"Martha\"]\n }],\n \"telecom\" : [{\n \"system\" : \"phone\",\n \"value\" : \"+31788700800\",\n \"use\" : \"home\"\n }],\n \"gender\" : \"female\",\n \"birthDate\" : \"1972-05-01\",\n \"address\" : [{\n \"line\" : [\"Laan Van Europa 1600\"],\n \"city\" : \"Dordrecht\",\n \"postalCode\" : \"3317 DB\",\n \"country\" : \"NL\"\n }],\n \"contact\" : [{\n \"relationship\" : [{\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/v3-RoleCode\",\n \"code\" : \"MTH\"\n }]\n }],\n \"name\" : {\n \"family\" : \"Mum\",\n \"given\" : [\"Martha\"]\n },\n \"telecom\" : [{\n \"system\" : \"phone\",\n \"value\" : \"+33-555-20036\",\n \"use\" : \"home\"\n }],\n \"address\" : {\n \"line\" : [\"Promenade des Anglais 111\"],\n \"city\" : \"Lyon\",\n \"postalCode\" : \"69001\",\n \"country\" : \"FR\"\n }\n }]\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:98315ba9-ffea-41ef-b59b-a836c039858f\",\n \"resource\" : {\n \"resourceType\" : \"Practitioner\",\n \"id\" : \"98315ba9-ffea-41ef-b59b-a836c039858f\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: Practitioner

Resource Practitioner "98315ba9-ffea-41ef-b59b-a836c039858f"

identifier: id:\\u00a0129854633

active: true

name: Beetje van Hulp

Qualifications

-Code
*Doctor of Medicine (degreeLicenseCertificate[2.7]#MD)
\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:2.16.528.1.1007.3.1\",\n \"value\" : \"129854633\",\n \"assigner\" : {\n \"display\" : \"CIBG\"\n }\n }],\n \"active\" : true,\n \"name\" : [{\n \"family\" : \"van Hulp\",\n \"given\" : [\"Beetje\"]\n }],\n \"qualification\" : [{\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/v2-0360\",\n \"version\" : \"2.7\",\n \"code\" : \"MD\",\n \"display\" : \"Doctor of Medicine\"\n }]\n }\n }]\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d\",\n \"resource\" : {\n \"resourceType\" : \"Organization\",\n \"id\" : \"bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: Organization

Resource Organization "bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d"

identifier: id:\\u00a0564738757

active: true

name: Anorg Aniza Tion BV / The best custodian ever

telecom: +31-51-34343400

address: Houttuinen 27 Dordrecht 3311 CE NL (WORK)

\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:2.16.528.1.1007.3.3\",\n \"value\" : \"564738757\"\n }],\n \"active\" : true,\n \"name\" : \"Anorg Aniza Tion BV / The best custodian ever\",\n \"telecom\" : [{\n \"system\" : \"phone\",\n \"value\" : \"+31-51-34343400\",\n \"use\" : \"work\"\n }],\n \"address\" : [{\n \"use\" : \"work\",\n \"line\" : [\"Houttuinen 27\"],\n \"city\" : \"Dordrecht\",\n \"postalCode\" : \"3311 CE\",\n \"country\" : \"NL\"\n }]\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:ad84b7a2-b4dd-474e-bef3-0779e6cb595f\",\n \"resource\" : {\n \"resourceType\" : \"Condition\",\n \"id\" : \"ad84b7a2-b4dd-474e-bef3-0779e6cb595f\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: Condition

Resource Condition "ad84b7a2-b4dd-474e-bef3-0779e6cb595f"

identifier: id:\\u00a0cacceb57-395f-48e1-9c88-e9c9704dc2d2

clinicalStatus: Active (Condition Clinical Status Codes#active)

verificationStatus: Confirmed (ConditionVerificationStatus#confirmed)

category: Problem (LOINC#75326-9)

severity: Moderate (LOINC#LA6751-7)

code: Menopausal flushing (finding) (SNOMED CT#198436008; ICD-10#N95.1 "Menopausal and female climacteric states")

subject: See above (Patient/7685713c-e29e-4a75-8a90-45be7ba3be94)

onset: 2015

recordedDate: 2016-10

\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:1.2.3.999\",\n \"value\" : \"cacceb57-395f-48e1-9c88-e9c9704dc2d2\"\n }],\n \"clinicalStatus\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\" : \"active\"\n }]\n },\n \"verificationStatus\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/condition-ver-status\",\n \"code\" : \"confirmed\"\n }]\n },\n \"category\" : [{\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"75326-9\",\n \"display\" : \"Problem\"\n }]\n }],\n \"severity\" : {\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"LA6751-7\",\n \"display\" : \"Moderate\"\n }]\n },\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://snomed.info/sct\",\n \"code\" : \"198436008\",\n \"display\" : \"Menopausal flushing (finding)\",\n \"_display\" : {\n \"extension\" : [{\n \"extension\" : [{\n \"url\" : \"lang\",\n \"valueCode\" : \"nl-NL\"\n },\n {\n \"url\" : \"content\",\n \"valueString\" : \"opvliegers\"\n }],\n \"url\" : \"http://hl7.org/fhir/StructureDefinition/translation\"\n }]\n }\n },\n {\n \"system\" : \"http://hl7.org/fhir/sid/icd-10\",\n \"code\" : \"N95.1\",\n \"display\" : \"Menopausal and female climacteric states\"\n }]\n },\n \"subject\" : {\n \"reference\" : \"Patient/7685713c-e29e-4a75-8a90-45be7ba3be94\"\n },\n \"onsetDateTime\" : \"2015\",\n \"recordedDate\" : \"2016-10\"\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:6e883e5e-7648-485a-86de-3640a61601fe\",\n \"resource\" : {\n \"resourceType\" : \"MedicationStatement\",\n \"id\" : \"6e883e5e-7648-485a-86de-3640a61601fe\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: MedicationStatement

Resource MedicationStatement "6e883e5e-7648-485a-86de-3640a61601fe"

identifier: id:\\u00a08faf0319-89d3-427c-b9d1-e8c8fd390dca

status: active

medication: See above (Medication/6369a973-afc7-4617-8877-3e9811e05a5b)

subject: See above (Patient/7685713c-e29e-4a75-8a90-45be7ba3be94)

effective: 2015-03 --> (ongoing)

dosage

timing: Count 1 times, Once

route: Oral use (standardterms.edqm.eu#20053000)

doseAndRate

\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:1.2.3.999\",\n \"value\" : \"8faf0319-89d3-427c-b9d1-e8c8fd390dca\"\n }],\n \"status\" : \"active\",\n \"medicationReference\" : {\n \"reference\" : \"Medication/6369a973-afc7-4617-8877-3e9811e05a5b\"\n },\n \"subject\" : {\n \"reference\" : \"Patient/7685713c-e29e-4a75-8a90-45be7ba3be94\"\n },\n \"effectivePeriod\" : {\n \"start\" : \"2015-03\"\n },\n \"dosage\" : [{\n \"timing\" : {\n \"repeat\" : {\n \"count\" : 1,\n \"periodUnit\" : \"d\"\n }\n },\n \"route\" : {\n \"coding\" : [{\n \"system\" : \"http://standardterms.edqm.eu\",\n \"code\" : \"20053000\",\n \"display\" : \"Oral use\"\n }]\n },\n \"doseAndRate\" : [{\n \"type\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/dose-rate-type\",\n \"code\" : \"ordered\",\n \"display\" : \"Ordered\"\n }]\n },\n \"doseQuantity\" : {\n \"value\" : 1,\n \"unit\" : \"tablet\",\n \"system\" : \"http://unitsofmeasure.org\",\n \"code\" : \"1\"\n }\n }]\n }]\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:6369a973-afc7-4617-8877-3e9811e05a5b\",\n \"resource\" : {\n \"resourceType\" : \"Medication\",\n \"id\" : \"6369a973-afc7-4617-8877-3e9811e05a5b\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: Medication

Resource Medication "6369a973-afc7-4617-8877-3e9811e05a5b"

code: Product containing anastrozole (medicinal product) (SNOMED CT#108774000; unknown#99872 "ANASTROZOL 1MG TABLET"; unknown#2076667 "ANASTROZOL CF TABLET FILMOMHULD 1MG"; WHO ATC#L02BG03 "anastrozole")

\"\n },\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://snomed.info/sct\",\n \"code\" : \"108774000\",\n \"display\" : \"Product containing anastrozole (medicinal product)\"\n },\n {\n \"system\" : \"urn:oid:2.16.840.1.113883.2.4.4.1\",\n \"code\" : \"99872\",\n \"display\" : \"ANASTROZOL 1MG TABLET\"\n },\n {\n \"system\" : \"urn:oid:2.16.840.1.113883.2.4.4.7\",\n \"code\" : \"2076667\",\n \"display\" : \"ANASTROZOL CF TABLET FILMOMHULD 1MG\"\n },\n {\n \"system\" : \"http://www.whocc.no/atc\",\n \"code\" : \"L02BG03\",\n \"display\" : \"anastrozole\"\n }]\n }\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:fe2769fd-22c9-4307-9122-ee0466e5aebb\",\n \"resource\" : {\n \"resourceType\" : \"AllergyIntolerance\",\n \"id\" : \"fe2769fd-22c9-4307-9122-ee0466e5aebb\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: AllergyIntolerance

Resource AllergyIntolerance "fe2769fd-22c9-4307-9122-ee0466e5aebb"

identifier: id:\\u00a08d9566a4-d26d-46be-a3e4-c9f3a0e5cd83

clinicalStatus: Active (AllergyIntolerance Clinical Status Codes#active)

verificationStatus: Confirmed (AllergyIntolerance Verification Status#confirmed)

type: allergy

category: medication

criticality: high

code: Substance with penicillin structure and antibacterial mechanism of action (substance) (SNOMED CT#373270004)

patient: See above (Patient/7685713c-e29e-4a75-8a90-45be7ba3be94)

onset: 2010

\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:1.2.3.999\",\n \"value\" : \"8d9566a4-d26d-46be-a3e4-c9f3a0e5cd83\"\n }],\n \"clinicalStatus\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical\",\n \"code\" : \"active\"\n }]\n },\n \"verificationStatus\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/allergyintolerance-verification\",\n \"code\" : \"confirmed\"\n }]\n },\n \"type\" : \"allergy\",\n \"category\" : [\"medication\"],\n \"criticality\" : \"high\",\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://snomed.info/sct\",\n \"code\" : \"373270004\",\n \"display\" : \"Substance with penicillin structure and antibacterial mechanism of action (substance)\"\n }]\n },\n \"patient\" : {\n \"reference\" : \"Patient/7685713c-e29e-4a75-8a90-45be7ba3be94\"\n },\n \"onsetDateTime\" : \"2010\"\n }\n }]\n}", + "fileType": null + } + ] +} \ No newline at end of file diff --git a/http-client-tests/resources/preset-requests/ips-nz.json b/http-client-tests/resources/preset-requests/ips-nz.json new file mode 100644 index 00000000..a6d12c6a --- /dev/null +++ b/http-client-tests/resources/preset-requests/ips-nz.json @@ -0,0 +1,16 @@ +{ + "cliContext": { + "baseEngine": "IPS_NZ", + "locale": "en", + "profiles": [ + "https://standards.digital.health.nz/fhir/StructureDefinition/nzps-bundle" + ] + }, + "filesToValidate": [ + { + "fileName": "manually_entered_file.json", + "fileContent": "{\n \"resourceType\": \"Bundle\",\n \"id\": \"NZ-IPS-20231121031219\",\n \"language\": \"en-NZ\",\n \"identifier\": {\n \"system\": \"urn:oid:2.16.724.4.8.10.200.10\",\n \"value\": \"3d5006e9-f003-4a78-a253-40ab405b7ef2\"\n },\n \"type\": \"document\",\n \"timestamp\": \"2023-11-21T03:12:19.1242772+00:00\",\n \"entry\": [\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Composition/9b9e4f64-c976-47e9-a8a5-4b9b0484a709\",\n \"resource\": {\n \"resourceType\": \"Composition\",\n \"id\": \"9b9e4f64-c976-47e9-a8a5-4b9b0484a709\",\n \"meta\": {\n \"versionId\": \"1\"\n },\n \"language\": \"en-NZ\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
International Patient Summary for Iosefa Test-Fuimaono
\"\n },\n \"identifier\": {\n \"system\": \"urn:oid:2.16.840.1.113883.2.18.7.2\",\n \"value\": \"3d5006e9-f003-4a78-a253-40ab405b7ef2\"\n },\n \"status\": \"final\",\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"60591-5\",\n \"display\": \"Patient summary Document\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"date\": \"2023-11-21\",\n \"author\": [\n {\n \"reference\": \"Organization/9c9542df-e45f-4131-9d44-8f5974e56d5b\"\n }\n ],\n \"title\": \"International Patient Summary\",\n \"confidentiality\": \"N\",\n \"attester\": [\n {\n \"mode\": \"professional\",\n \"time\": \"2023-11-21\",\n \"party\": {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n }\n ],\n \"custodian\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n },\n \"relatesTo\": [\n {\n \"code\": \"transforms\",\n \"targetIdentifier\": {\n \"system\": \"urn:oid:2.16.840.1.113883.2.18.7.2\",\n \"value\": \"3d5006e9-f003-4a78-a253-40ab405b7ef2\"\n }\n }\n ],\n \"event\": [\n {\n \"code\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ActClass\",\n \"code\": \"PCPR\"\n }\n ]\n }\n ],\n \"period\": {\n \"end\": \"2023-11-21\"\n }\n }\n ],\n \"section\": [\n {\n \"title\": \"Allergies and Intolerances\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"48765-2\",\n \"display\": \"Allergies and adverse reactions Document\"\n }\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
CodeTypeRecorded OnAsserted ByClinical StatusVerification Status
Flucloxacillin-containing productAllergy\\r\\n Patient/ZKT9319activeconfirmed
Diazepam-containing productAllergy\\r\\n Patient/ZKT9319activeconfirmed
\\r\\n
\"\n },\n \"entry\": [\n {\n \"reference\": \"AllergyIntolerance/1dfacb6d-4260-4fd4-84e9-a1c13aafa72c\"\n },\n {\n \"reference\": \"AllergyIntolerance/e9b9aeaf-e5ac-4f72-b01d-df4c6107f746\"\n }\n ]\n },\n {\n \"title\": \"Problem List\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"11450-4\",\n \"display\": \"Problem list - Reported\"\n }\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
ConditionCategoryRecorded OnClinical StatusVerification Status
Postconcussion syndromeProblem List Item\\r\\n activeconfirmed
Diabetes type 2 on insulinProblem List Item\\r\\n activeconfirmed
GoutProblem List Item\\r\\n activeconfirmed
Benign essential hypertensionProblem List Item\\r\\n activeconfirmed
Anxiety disorder due to a general medical conditionProblem List Item\\r\\n inactiveconfirmed
Fracture of neck of femurProblem List Item\\r\\n inactiveconfirmed
\\r\\n
\"\n },\n \"entry\": [\n {\n \"reference\": \"Condition/2eafb947-e816-4d9f-978b-c91d0dbe4acc\"\n },\n {\n \"reference\": \"Condition/1923f2ca-043b-432c-9eed-404c81474e60\"\n },\n {\n \"reference\": \"Condition/4f40d5e3-9a5f-4e3f-b799-c3378da8e7dd\"\n },\n {\n \"reference\": \"Condition/08992112-ac66-4c66-a803-89f80bb6d2aa\"\n },\n {\n \"reference\": \"Condition/9b54fc7a-8302-45cc-9ff6-e60c623c5bf9\"\n },\n {\n \"reference\": \"Condition/dd40111a-683f-4d72-bccc-3c6848bc0813\"\n }\n ]\n },\n {\n \"title\": \"Medication Summary\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"10160-0\",\n \"display\": \"History of Medication use Narrative\"\n }\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
DrugStatusEffectiveInstructions
insulin glargine 100 international units/mL injection, 10 mL vialActive2023-02-21Inject 20 units per day into your upper arms, abdomen or thights.You should vary the site where you inject each dose of Lantus. This helps reduce your risk of certain side effects, such as pits or lumps in your skin.
dulaglutide 1.5 mg/0.5 mL injection, prefilled injection deviceActive2023-02-21Inject once a week, on the same day each week, into the skin of your stomach, thigh or upper arm. You can use the same area of your body each time, but choose a different place within that area. You can inject it any time of the day, with or without meals.
metformin hydrochloride 1000 mg tabletActive2023-02-21Take ONE tablet, two times a day, with meals.
amlodipine 5 mg tabletActive2023-02-21Take ONE tablet at any time of day, but try to make sure it's around the same time every day.
losartan potassium 50 mg tabletActive2023-02-21Take ONE tablet daily
aspirin 75 mg tablet: enteric-coatedActive2023-02-21Take ONE tablet daily
allopurinol 300 mg tabletActive2023-02-21Take ONE tablet daily, after meals
\\r\\n
\"\n },\n \"entry\": [\n {\n \"reference\": \"MedicationStatement/8ecbe74a-a3fa-4edf-8133-44ca8903a645\"\n },\n {\n \"reference\": \"MedicationStatement/06c4eda2-df30-4231-af09-0135e5f84548\"\n },\n {\n \"reference\": \"MedicationStatement/4b5f40b9-f59c-4090-81b1-4609ac6b7af8\"\n },\n {\n \"reference\": \"MedicationStatement/e19dc087-0055-4feb-a847-72e77cf55a0a\"\n },\n {\n \"reference\": \"MedicationStatement/f7a26186-dd57-420f-95be-c0deeee49367\"\n },\n {\n \"reference\": \"MedicationStatement/b6b49f33-a0e4-4b94-92f3-caa3267ad4f7\"\n },\n {\n \"reference\": \"MedicationStatement/ce2395b9-d7ef-4df0-b38f-fc9be0e44f94\"\n }\n ]\n },\n {\n \"title\": \"Immunizations\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"11369-6\",\n \"display\": \"History of Immunization Narrative\"\n }\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
VaccineStatusOccuranceRouteDose #Series
SARS-COV-2 (COVID-19) vaccine, mRNA, spike protein, LNP, preservative free, 30 mcg/0.3mL doseCompleted2022-02-01Injection, intramuscular212 (At risk, no previous history)
SARS-COV-2 (COVID-19) vaccine, mRNA, spike protein, LNP, preservative free, 30 mcg/0.3mL doseCompleted2021-08-05Injection, intramuscular112 (At risk, no previous history)
Influenza, seasonal, injectableCompleted2019-05-20Injection, intramuscular11 (Over 65 years (Influenza))
diphtheria, tetanus toxoids and acellular pertussis vaccineCompleted2019-04-24Injection, intramuscular16 (Booster)
tetanus and diphtheria toxoids, not adsorbed, for adult useCompleted2018-04-05Injection, intramuscular16 (Booster)
pneumococcal conjugate vaccine, 13 valentCompleted2015-09-25Injection, intramuscular121 (PCV catch up)
Influenza, seasonal, injectableCompleted2015-05-01Injection, intramuscular11 (Over 65 years (Influenza))
\\r\\n
\"\n },\n \"entry\": [\n {\n \"reference\": \"Immunization/998e59d9-a7f4-4503-b08e-85ce9b206b0a\"\n },\n {\n \"reference\": \"Immunization/fc6b3454-527b-4deb-a266-7f52c63d0d3c\"\n },\n {\n \"reference\": \"Immunization/33c971d3-0992-4e93-b904-6325ed4602e3\"\n },\n {\n \"reference\": \"Immunization/12c253d4-20e8-4dd4-935c-fd1ec8a49279\"\n },\n {\n \"reference\": \"Immunization/70308bba-2bc4-4505-ba9b-520f9d3dc30b\"\n },\n {\n \"reference\": \"Immunization/acd3a963-0985-4679-a126-8eb9ed981d36\"\n },\n {\n \"reference\": \"Immunization/bae44614-43cc-4df4-94b3-c26d34b0ea37\"\n }\n ]\n },\n {\n \"title\": \"Procedures\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"47519-4\",\n \"display\": \"History of Procedures Document\"\n }\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Date(s) Procedure Location Performer Comments
01/09/2020 to 01/09/2020 Operative procedure on hip Waikato Hospital
31/03/2018 to 31/03/2018 Hand closure Samoa
\"\n },\n \"entry\": [\n {\n \"reference\": \"Procedure/8414198c-a43b-4ef1-b06f-3b39fb4b39cc\"\n },\n {\n \"reference\": \"Procedure/1096ab80-e982-41b3-85c2-8e1d2466d147\"\n }\n ]\n },\n {\n \"title\": \"Results\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"30954-2\",\n \"display\": \"Relevant diagnostic tests/laboratory data Narrative\"\n }\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Result Group: Lipids Result Date: 05 Mar 2023 00:00 Result Status: completed
Result Name Value Reference Range Abnormal Indicator Comments
Total cholesterol:HDL ratio 5.1 mmol/L <4 mmol/L (high risk) H
HDL Cholesterol 1.5 mmol/L >1 mmol/L N
LDL Cholesterol 3.4 mmol/L <1.8 mmol/L H
Result Group: HbA1C Result Date: 05 Mar 2023 00:00 Result Status: completed
Result Name Value Reference Range Abnormal Indicator Comments
HbA1c 60 mmol/mol 50 – 55 mmol/mol (diabetes) H
\"\n },\n \"entry\": [\n {\n \"reference\": \"Observation/2f3ad263-1b4e-443b-95ca-66d2abb6e927\"\n },\n {\n \"reference\": \"Observation/fe53810f-a341-4093-a959-4048ad62f85b\"\n },\n {\n \"reference\": \"Observation/6adb76b4-73f3-4552-87a6-09ac3dc1f558\"\n },\n {\n \"reference\": \"DiagnosticReport/9e0d995f-a78d-45f4-b3aa-23037972a3e6\"\n },\n {\n \"reference\": \"Observation/63ad8984-003c-4e44-bc56-31dd6abc0897\"\n },\n {\n \"reference\": \"DiagnosticReport/2da4116e-7158-4d59-b6c4-873b37f7d65f\"\n }\n ]\n },\n {\n \"title\": \"Vital Signs\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8716-3\",\n \"display\": \"Vital signs\"\n }\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Result Group: Vital signs, weight, height, head circumference, oxygen saturation and BMI panel Result Date: 29 Sep 2023 00:00 Result Status: completed
Result Name Value
Body temperature 37.5 C
Heart rate 84 beats/minute
Respiratory rate 18 breaths/minute
Systolic blood pressure 136 mm[Hg]
Diastolic blood pressure 88 mm[Hg]
Body height 1.84 cm
Body weight 104 kg
Result Group: Vital signs, weight, height, head circumference, oxygen saturation and BMI panel Result Date: 05 Mar 2023 00:00 Result Status: completed
Result Name Value
Body temperature 37.2 C
Heart rate 86 beats/minute
Respiratory rate 14 breaths/minute
Systolic blood pressure 130 mm[Hg]
Diastolic blood pressure 82 mm[Hg]
Body weight 103 kg
\"\n },\n \"entry\": [\n {\n \"reference\": \"Observation/6f64547c-89a3-459d-a993-b89e995c1f14\"\n },\n {\n \"reference\": \"Observation/da3bbb11-e485-4396-a25c-611354789c65\"\n },\n {\n \"reference\": \"Observation/5dead0bd-80c7-42f7-9720-3aaf047eb89b\"\n },\n {\n \"reference\": \"Observation/126f25f0-d921-4d9a-85a2-5b847cfb89fb\"\n },\n {\n \"reference\": \"Observation/cf628f81-f66b-42a7-a33a-c5d38a604861\"\n },\n {\n \"reference\": \"Observation/dd309bef-3b36-4422-a202-39d040113a5d\"\n },\n {\n \"reference\": \"Observation/4c5e0a16-2e2c-47cc-8e1d-a87afee4d6f1\"\n },\n {\n \"reference\": \"Observation/eda3092b-5228-420b-b0ce-f5eb77e73942\"\n },\n {\n \"reference\": \"Observation/2d420435-f380-46e1-ad93-b9fef57f4b71\"\n },\n {\n \"reference\": \"Observation/7a422837-80f5-4fa6-b3ac-8a0e44b99356\"\n },\n {\n \"reference\": \"Observation/af9ae822-ae5d-4bec-88bf-4dd250350783\"\n }\n ]\n },\n {\n \"title\": \"Social History\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"29762-2\",\n \"display\": \"Social history Narrative\"\n }\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Type Item Date(s) Comment
other Worked as a forestry worker. Worked as a forestry worker. Was always physically active until 2020 fall.Has had subsequent falls. Now depends on a walker or scooter.
smoking Ex-smoker 30/06/2005 30 - pack - year smoking history, quit smoking ~2005.
\"\n },\n \"entry\": [\n {\n \"reference\": \"Observation/33624327-7e1b-4912-bca1-2d0c8d36b952\"\n }\n ]\n },\n {\n \"title\": \"Functional Status\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"47420-5\",\n \"display\": \"Functional status assessment note\"\n }\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Functional Condition Effective Dates Condition Status
Often confused, struggles to communicate in English Active
Depends on a walking frame or electric scooter to get around. Active
Doesn’t leave the house much. Active
Relies on caregiver Cindy for assistance with many activities of daily living. Active
Family has made the decision to transfer Iosefa to residential care soon, arrangements currently being finalised. Active
\"\n },\n \"entry\": [\n {\n \"reference\": \"Condition/4464bdfe-dc87-4179-a10d-2884c975a6eb\"\n },\n {\n \"reference\": \"Condition/f0982a2a-8eb2-4b1a-9e73-6a82d2102003\"\n },\n {\n \"reference\": \"Condition/94c0216a-183b-45e9-9e98-f244ac0b4d4f\"\n },\n {\n \"reference\": \"Condition/14863bd8-1d6d-4c85-9bcc-1b33699908c4\"\n },\n {\n \"reference\": \"Condition/b008f275-c141-4cd5-b1bb-46c399eaf42d\"\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Patient/ZKT9319\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"id\": \"ZKT9319\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Name: Iosefa Test-Fuimaono
\"\n },\n \"identifier\": [\n {\n \"system\": \"https://standards.digital.health.nz/ns/nhi-id\",\n \"value\": \"ZKT9319\"\n }\n ],\n \"name\": [\n {\n \"use\": \"usual\",\n \"family\": \"Test-Fuimaono\",\n \"given\": [\n \"Iosefa\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"birthDate\": \"1950-07-04\",\n \"address\": [\n {\n \"use\": \"home\",\n \"type\": \"physical\",\n \"line\": [\n \"Flat 1\",\n \"1 Brooklyn Road\",\n \"Claudelands\"\n ],\n \"city\": \"Hamilton\",\n \"postalCode\": \"3214\",\n \"country\": \"NZ\"\n }\n ],\n \"maritalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-MaritalStatus\",\n \"code\": \"W\",\n \"display\": \"Widowed\"\n }\n ]\n },\n \"contact\": [\n {\n \"relationship\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v2-0131\",\n \"code\": \"N\",\n \"display\": \"Next-of-Kin\"\n }\n ]\n }\n ],\n \"name\": {\n \"use\": \"usual\",\n \"family\": \"Test-Fuimaono\",\n \"given\": [\n \"Cindy\",\n \"Test-Fuimaono\"\n ]\n },\n \"telecom\": [\n {\n \"system\": \"phone\",\n \"value\": \"021 111111\",\n \"use\": \"mobile\"\n }\n ],\n \"address\": {\n \"use\": \"home\",\n \"type\": \"physical\",\n \"line\": [\n \"Flat 1\",\n \"1 Brooklyn Road\",\n \"Claudelands\"\n ],\n \"city\": \"Hamilton\",\n \"postalCode\": \"3214\",\n \"country\": \"NZ\"\n }\n },\n {\n \"relationship\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v2-0131\",\n \"code\": \"C\",\n \"display\": \"Emergency Contact\"\n }\n ]\n }\n ],\n \"name\": {\n \"use\": \"usual\",\n \"family\": \"Test-Fuimaono\",\n \"given\": [\n \"Cindy\",\n \"Test-Fuimaono\"\n ]\n },\n \"telecom\": [\n {\n \"system\": \"phone\",\n \"value\": \"021 111111\",\n \"use\": \"mobile\"\n }\n ],\n \"address\": {\n \"use\": \"home\",\n \"type\": \"physical\",\n \"line\": [\n \"Flat 1\",\n \"1 Brooklyn Road\",\n \"Claudelands\"\n ],\n \"city\": \"Hamilton\",\n \"postalCode\": \"3214\",\n \"country\": \"NZ\"\n }\n }\n ],\n \"communication\": [\n {\n \"language\": {\n \"text\": \"en-NZ\"\n }\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Organization/9c9542df-e45f-4131-9d44-8f5974e56d5b\",\n \"resource\": {\n \"resourceType\": \"Organization\",\n \"id\": \"9c9542df-e45f-4131-9d44-8f5974e56d5b\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Name: Fairfield Medical Centre
\"\n },\n \"identifier\": [\n {\n \"system\": \"https://standards.digital.health.nz/ns/hpi-facility-id\",\n \"value\": \"F0U044-C\"\n }\n ],\n \"name\": \"Fairfield Medical Centre\"\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\",\n \"resource\": {\n \"resourceType\": \"PractitionerRole\",\n \"id\": \"c9288aea-5e73-4182-8231-aacbe50d3244\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Role: Doctor
\"\n },\n \"practitioner\": {\n \"reference\": \"Practitioner/4d4b76bf-55b5-40b8-a130-99ea24a84c23\"\n },\n \"code\": [\n {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"158965000\",\n \"display\": \"Doctor\"\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Practitioner/4d4b76bf-55b5-40b8-a130-99ea24a84c23\",\n \"resource\": {\n \"resourceType\": \"Practitioner\",\n \"id\": \"4d4b76bf-55b5-40b8-a130-99ea24a84c23\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Name: Dr James Test-Smith
\"\n },\n \"name\": [\n {\n \"use\": \"usual\",\n \"family\": \"Test-Smith\",\n \"given\": [\n \"Dr\",\n \"James\",\n \"Test-Smith\"\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\",\n \"resource\": {\n \"resourceType\": \"Organization\",\n \"id\": \"644f2fb9-c264-4c32-898b-4048dddd6d1b\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Name: Fairfield Medical Centre
\"\n },\n \"identifier\": [\n {\n \"system\": \"https://standards.digital.health.nz/ns/hpi-facility-id\",\n \"value\": \"F0U044-C\"\n }\n ],\n \"name\": \"Fairfield Medical Centre\"\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Location/F05076-A\",\n \"resource\": {\n \"resourceType\": \"Location\",\n \"id\": \"F05076-A\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
\\r\\n

Waikato Hospital

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
IdentifierF05076-A
Identifier Systemhttps://standards.digital.health.nz/ns/hpi-facility-id
StatusActive
ModeInstance
TypeLocation
Address183 Pembroke Street, Waikato Hospital, Hamilton 3204
\\r\\n
\"\n },\n \"identifier\": [\n {\n \"system\": \"https://standards.digital.health.nz/ns/hpi-facility-id\",\n \"value\": \"F05076-A\"\n }\n ],\n \"status\": \"active\",\n \"name\": \"Waikato Hospital\"\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/AllergyIntolerance/1dfacb6d-4260-4fd4-84e9-a1c13aafa72c\",\n \"resource\": {\n \"resourceType\": \"AllergyIntolerance\",\n \"id\": \"1dfacb6d-4260-4fd4-84e9-a1c13aafa72c\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Flucloxacillin-containing product (Penicillin adverse reaction)
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"verificationStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/allergyintolerance-verification\",\n \"code\": \"confirmed\"\n }\n ]\n },\n \"type\": \"allergy\",\n \"category\": [\n \"medication\"\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"96067005\",\n \"display\": \"Flucloxacillin-containing product\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"asserter\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"reaction\": [\n {\n \"manifestation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"292954005\",\n \"display\": \"Penicillin adverse reaction\"\n }\n ]\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/AllergyIntolerance/e9b9aeaf-e5ac-4f72-b01d-df4c6107f746\",\n \"resource\": {\n \"resourceType\": \"AllergyIntolerance\",\n \"id\": \"e9b9aeaf-e5ac-4f72-b01d-df4c6107f746\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Diazepam-containing product (Diazepam adverse reaction)
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"verificationStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/allergyintolerance-verification\",\n \"code\": \"confirmed\"\n }\n ]\n },\n \"type\": \"allergy\",\n \"category\": [\n \"medication\"\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"48546005\",\n \"display\": \"Diazepam-containing product\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"asserter\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"reaction\": [\n {\n \"manifestation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"292360004\",\n \"display\": \"Diazepam adverse reaction\"\n }\n ]\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/2eafb947-e816-4d9f-978b-c91d0dbe4acc\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"2eafb947-e816-4d9f-978b-c91d0dbe4acc\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Postconcussion
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"verificationStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-ver-status\",\n \"code\": \"confirmed\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-category\",\n \"code\": \"problem-list-item\",\n \"display\": \"Problem List Item\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"40425004\",\n \"display\": \"Postconcussion syndrome\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/1923f2ca-043b-432c-9eed-404c81474e60\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"1923f2ca-043b-432c-9eed-404c81474e60\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Diabetes type 2 on insulin
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"verificationStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-ver-status\",\n \"code\": \"confirmed\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-category\",\n \"code\": \"problem-list-item\",\n \"display\": \"Problem List Item\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"237599002\",\n \"display\": \"Diabetes type 2 on insulin\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/4f40d5e3-9a5f-4e3f-b799-c3378da8e7dd\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"4f40d5e3-9a5f-4e3f-b799-c3378da8e7dd\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Gout
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"verificationStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-ver-status\",\n \"code\": \"confirmed\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-category\",\n \"code\": \"problem-list-item\",\n \"display\": \"Problem List Item\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"90560007\",\n \"display\": \"Gout\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/08992112-ac66-4c66-a803-89f80bb6d2aa\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"08992112-ac66-4c66-a803-89f80bb6d2aa\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Benign essential hypertension
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"verificationStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-ver-status\",\n \"code\": \"confirmed\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-category\",\n \"code\": \"problem-list-item\",\n \"display\": \"Problem List Item\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"1201005\",\n \"display\": \"Benign essential hypertension\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/9b54fc7a-8302-45cc-9ff6-e60c623c5bf9\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"9b54fc7a-8302-45cc-9ff6-e60c623c5bf9\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Anxiety disorder due to a general medical condition
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"inactive\"\n }\n ]\n },\n \"verificationStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-ver-status\",\n \"code\": \"confirmed\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-category\",\n \"code\": \"problem-list-item\",\n \"display\": \"Problem List Item\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"52910006\",\n \"display\": \"Anxiety disorder due to a general medical condition\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/dd40111a-683f-4d72-bccc-3c6848bc0813\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"dd40111a-683f-4d72-bccc-3c6848bc0813\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Fracture of neck of femur
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"inactive\"\n }\n ]\n },\n \"verificationStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-ver-status\",\n \"code\": \"confirmed\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-category\",\n \"code\": \"problem-list-item\",\n \"display\": \"Problem List Item\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"5913000\",\n \"display\": \"Fracture of neck of femur\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/4464bdfe-dc87-4179-a10d-2884c975a6eb\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"4464bdfe-dc87-4179-a10d-2884c975a6eb\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Often confused, struggles to communicate in English
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"code\": {\n \"text\": \"Often confused, struggles to communicate in English\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/f0982a2a-8eb2-4b1a-9e73-6a82d2102003\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"f0982a2a-8eb2-4b1a-9e73-6a82d2102003\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Depends on a walking frame or electric scooter to get around.
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"code\": {\n \"text\": \"Depends on a walking frame or electric scooter to get around.\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/94c0216a-183b-45e9-9e98-f244ac0b4d4f\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"94c0216a-183b-45e9-9e98-f244ac0b4d4f\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Doesn’t leave the house much.
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"code\": {\n \"text\": \"Doesn’t leave the house much.\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/14863bd8-1d6d-4c85-9bcc-1b33699908c4\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"14863bd8-1d6d-4c85-9bcc-1b33699908c4\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Relies on caregiver Cindy for assistance with many activities of daily living.
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"code\": {\n \"text\": \"Relies on caregiver Cindy for assistance with many activities of daily living.\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Condition/b008f275-c141-4cd5-b1bb-46c399eaf42d\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"b008f275-c141-4cd5-b1bb-46c399eaf42d\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Family has made the decision to transfer Iosefa to residential care soon, arrangements currently being finalised.
\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"code\": {\n \"text\": \"Family has made the decision to transfer Iosefa to residential care soon, arrangements currently being finalised.\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/MedicationStatement/8ecbe74a-a3fa-4edf-8133-44ca8903a645\",\n \"resource\": {\n \"resourceType\": \"MedicationStatement\",\n \"id\": \"8ecbe74a-a3fa-4edf-8133-44ca8903a645\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
10368421000116106 (insulin glargine 100 international units/mL injection, 10 mL vial)
\"\n },\n \"status\": \"active\",\n \"medicationCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"126212009\",\n \"display\": \"Product containing insulin glargine (medicinal product)\"\n }\n ],\n \"text\": \"insulin glargine 100 international units/mL injection, 10 mL vial\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-02-21\",\n \"informationSource\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n },\n \"dosage\": [\n {\n \"text\": \"Inject 20 units per day into your upper arms, abdomen or thights.You should vary the site where you inject each dose of Lantus. This helps reduce your risk of certain side effects, such as pits or lumps in your skin.\",\n \"timing\": {\n \"repeat\": {\n \"frequency\": 1,\n \"period\": 1,\n \"periodUnit\": \"d\"\n }\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"34206005\",\n \"display\": \"subcutaneous route\"\n }\n ]\n },\n \"doseAndRate\": [\n {\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/dose-rate-type\",\n \"code\": \"ordered\",\n \"display\": \"Ordered\"\n }\n ]\n },\n \"doseQuantity\": {\n \"value\": 1,\n \"unit\": \"unit\",\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"767525000\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/MedicationStatement/06c4eda2-df30-4231-af09-0135e5f84548\",\n \"resource\": {\n \"resourceType\": \"MedicationStatement\",\n \"id\": \"06c4eda2-df30-4231-af09-0135e5f84548\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
47230201000116108 (dulaglutide 1.5 mg/0.5 mL injection, prefilled injection device)
\"\n },\n \"status\": \"active\",\n \"medicationCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"714081009\",\n \"display\": \"Product containing dulaglutide (medicinal product)\"\n }\n ],\n \"text\": \"dulaglutide 1.5 mg/0.5 mL injection, prefilled injection device\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-02-21\",\n \"informationSource\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n },\n \"dosage\": [\n {\n \"text\": \"Inject once a week, on the same day each week, into the skin of your stomach, thigh or upper arm. You can use the same area of your body each time, but choose a different place within that area. You can inject it any time of the day, with or without meals.\",\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"34206005\",\n \"display\": \"subcutaneous route\"\n }\n ]\n },\n \"doseAndRate\": [\n {\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/dose-rate-type\",\n \"code\": \"ordered\",\n \"display\": \"Ordered\"\n }\n ]\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/MedicationStatement/4b5f40b9-f59c-4090-81b1-4609ac6b7af8\",\n \"resource\": {\n \"resourceType\": \"MedicationStatement\",\n \"id\": \"4b5f40b9-f59c-4090-81b1-4609ac6b7af8\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
44221701000116102 (metformin hydrochloride 1000 mg tablet)
\"\n },\n \"status\": \"active\",\n \"medicationCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"109081006\",\n \"display\": \"Product containing metformin (medicinal product)\"\n }\n ],\n \"text\": \"metformin hydrochloride 1000 mg tablet\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-02-21\",\n \"informationSource\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n },\n \"dosage\": [\n {\n \"text\": \"Take ONE tablet, two times a day, with meals.\",\n \"timing\": {\n \"repeat\": {\n \"frequency\": 2,\n \"period\": 1,\n \"periodUnit\": \"d\"\n }\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"26643006\",\n \"display\": \"Oral route\"\n }\n ]\n },\n \"doseAndRate\": [\n {\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/dose-rate-type\",\n \"code\": \"ordered\",\n \"display\": \"Ordered\"\n }\n ]\n },\n \"doseQuantity\": {\n \"value\": 1,\n \"unit\": \"Tablet - unit of product usage\",\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"428673006\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/MedicationStatement/e19dc087-0055-4feb-a847-72e77cf55a0a\",\n \"resource\": {\n \"resourceType\": \"MedicationStatement\",\n \"id\": \"e19dc087-0055-4feb-a847-72e77cf55a0a\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
10109621000116108 (amlodipine 5 mg tablet)
\"\n },\n \"status\": \"active\",\n \"medicationCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"108537001\",\n \"display\": \"Product containing amlodipine (medicinal product)\"\n }\n ],\n \"text\": \"amlodipine 5 mg tablet\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-02-21\",\n \"informationSource\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n },\n \"dosage\": [\n {\n \"text\": \"Take ONE tablet at any time of day, but try to make sure it's around the same time every day.\",\n \"timing\": {\n \"repeat\": {\n \"frequency\": 1,\n \"period\": 1,\n \"periodUnit\": \"d\"\n }\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"26643006\",\n \"display\": \"Oral route\"\n }\n ]\n },\n \"doseAndRate\": [\n {\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/dose-rate-type\",\n \"code\": \"ordered\",\n \"display\": \"Ordered\"\n }\n ]\n },\n \"doseQuantity\": {\n \"value\": 1,\n \"unit\": \"Tablet - unit of product usage\",\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"428673006\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/MedicationStatement/f7a26186-dd57-420f-95be-c0deeee49367\",\n \"resource\": {\n \"resourceType\": \"MedicationStatement\",\n \"id\": \"f7a26186-dd57-420f-95be-c0deeee49367\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
10195211000116102 (losartan potassium 50 mg tablet)
\"\n },\n \"status\": \"active\",\n \"medicationCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"96309000\",\n \"display\": \"Product containing losartan (medicinal product)\"\n }\n ],\n \"text\": \"losartan potassium 50 mg tablet\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-02-21\",\n \"informationSource\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n },\n \"dosage\": [\n {\n \"text\": \"Take ONE tablet daily\",\n \"timing\": {\n \"repeat\": {\n \"frequency\": 1,\n \"period\": 1,\n \"periodUnit\": \"d\"\n }\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"26643006\",\n \"display\": \"Oral route\"\n }\n ]\n },\n \"doseAndRate\": [\n {\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/dose-rate-type\",\n \"code\": \"ordered\",\n \"display\": \"Ordered\"\n }\n ]\n },\n \"doseQuantity\": {\n \"value\": 1,\n \"unit\": \"Tablet - unit of product usage\",\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"428673006\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/MedicationStatement/b6b49f33-a0e4-4b94-92f3-caa3267ad4f7\",\n \"resource\": {\n \"resourceType\": \"MedicationStatement\",\n \"id\": \"b6b49f33-a0e4-4b94-92f3-caa3267ad4f7\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
10077081000116106 (aspirin 75 mg tablet: enteric-coated)
\"\n },\n \"status\": \"active\",\n \"medicationCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"7947003\",\n \"display\": \"Product containing aspirin (medicinal product)\"\n }\n ],\n \"text\": \"aspirin 75 mg tablet: enteric-coated\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-02-21\",\n \"informationSource\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n },\n \"dosage\": [\n {\n \"text\": \"Take ONE tablet daily\",\n \"timing\": {\n \"repeat\": {\n \"frequency\": 1,\n \"period\": 1,\n \"periodUnit\": \"d\"\n }\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"26643006\",\n \"display\": \"Oral route\"\n }\n ]\n },\n \"doseAndRate\": [\n {\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/dose-rate-type\",\n \"code\": \"ordered\",\n \"display\": \"Ordered\"\n }\n ]\n },\n \"doseQuantity\": {\n \"value\": 1,\n \"unit\": \"Tablet - unit of product usage\",\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"428673006\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/MedicationStatement/ce2395b9-d7ef-4df0-b38f-fc9be0e44f94\",\n \"resource\": {\n \"resourceType\": \"MedicationStatement\",\n \"id\": \"ce2395b9-d7ef-4df0-b38f-fc9be0e44f94\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
10030521000116104 (allopurinol 300 mg tablet)
\"\n },\n \"status\": \"active\",\n \"medicationCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"25246002\",\n \"display\": \"Product containing allopurinol (medicinal product)\"\n }\n ],\n \"text\": \"allopurinol 300 mg tablet\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-02-21\",\n \"informationSource\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n },\n \"dosage\": [\n {\n \"text\": \"Take ONE tablet daily, after meals\",\n \"timing\": {\n \"repeat\": {\n \"frequency\": 1,\n \"period\": 1,\n \"periodUnit\": \"d\"\n }\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"26643006\",\n \"display\": \"Oral route\"\n }\n ]\n },\n \"doseAndRate\": [\n {\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/dose-rate-type\",\n \"code\": \"ordered\",\n \"display\": \"Ordered\"\n }\n ]\n },\n \"doseQuantity\": {\n \"value\": 1,\n \"unit\": \"Tablet - unit of product usage\",\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"428673006\"\n }\n }\n ]\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Immunization/998e59d9-a7f4-4503-b08e-85ce9b206b0a\",\n \"resource\": {\n \"resourceType\": \"Immunization\",\n \"id\": \"998e59d9-a7f4-4503-b08e-85ce9b206b0a\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
208 (Pfizer/BioNtech)
\"\n },\n \"status\": \"completed\",\n \"vaccineCode\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/sid/cvx\",\n \"code\": \"208\",\n \"display\": \"SARS-COV-2 (COVID-19) vaccine, mRNA, spike protein, LNP, preservative free, 30 mcg/0.3mL dose\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"occurrenceDateTime\": \"2022-02-01\",\n \"site\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"16217701000119102\",\n \"display\": \"Structure of left deltoid muscle\"\n }\n ]\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration\",\n \"code\": \"IM\",\n \"display\": \"Injection, intramuscular\"\n }\n ]\n },\n \"performer\": [\n {\n \"actor\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n }\n }\n ],\n \"protocolApplied\": [\n {\n \"series\": \"12 (At risk, no previous history)\",\n \"doseNumberPositiveInt\": 2\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Immunization/fc6b3454-527b-4deb-a266-7f52c63d0d3c\",\n \"resource\": {\n \"resourceType\": \"Immunization\",\n \"id\": \"fc6b3454-527b-4deb-a266-7f52c63d0d3c\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
208 (Pfizer/BioNtech)
\"\n },\n \"status\": \"completed\",\n \"vaccineCode\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/sid/cvx\",\n \"code\": \"208\",\n \"display\": \"SARS-COV-2 (COVID-19) vaccine, mRNA, spike protein, LNP, preservative free, 30 mcg/0.3mL dose\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"occurrenceDateTime\": \"2021-08-05\",\n \"site\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"16217701000119102\",\n \"display\": \"Structure of left deltoid muscle\"\n }\n ]\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration\",\n \"code\": \"IM\",\n \"display\": \"Injection, intramuscular\"\n }\n ]\n },\n \"performer\": [\n {\n \"actor\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n }\n }\n ],\n \"protocolApplied\": [\n {\n \"series\": \"12 (At risk, no previous history)\",\n \"doseNumberPositiveInt\": 1\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Immunization/33c971d3-0992-4e93-b904-6325ed4602e3\",\n \"resource\": {\n \"resourceType\": \"Immunization\",\n \"id\": \"33c971d3-0992-4e93-b904-6325ed4602e3\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
99006 (Influenza)
\"\n },\n \"status\": \"completed\",\n \"vaccineCode\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/sid/cvx\",\n \"code\": \"141\",\n \"display\": \"Influenza, seasonal, injectable\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"occurrenceDateTime\": \"2019-05-20\",\n \"site\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"16217701000119102\",\n \"display\": \"Structure of left deltoid muscle\"\n }\n ]\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration\",\n \"code\": \"IM\",\n \"display\": \"Injection, intramuscular\"\n }\n ]\n },\n \"performer\": [\n {\n \"actor\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n }\n }\n ],\n \"protocolApplied\": [\n {\n \"series\": \"1 (Over 65 years (Influenza))\",\n \"doseNumberPositiveInt\": 1\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Immunization/12c253d4-20e8-4dd4-935c-fd1ec8a49279\",\n \"resource\": {\n \"resourceType\": \"Immunization\",\n \"id\": \"12c253d4-20e8-4dd4-935c-fd1ec8a49279\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
20 (DTaP)
\"\n },\n \"status\": \"completed\",\n \"vaccineCode\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/sid/cvx\",\n \"code\": \"20\",\n \"display\": \"diphtheria, tetanus toxoids and acellular pertussis vaccine\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"occurrenceDateTime\": \"2019-04-24\",\n \"site\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"16217701000119102\",\n \"display\": \"Structure of left deltoid muscle\"\n }\n ]\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration\",\n \"code\": \"IM\",\n \"display\": \"Injection, intramuscular\"\n }\n ]\n },\n \"performer\": [\n {\n \"actor\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n }\n }\n ],\n \"protocolApplied\": [\n {\n \"series\": \"6 (Booster)\",\n \"doseNumberPositiveInt\": 1\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Immunization/70308bba-2bc4-4505-ba9b-520f9d3dc30b\",\n \"resource\": {\n \"resourceType\": \"Immunization\",\n \"id\": \"70308bba-2bc4-4505-ba9b-520f9d3dc30b\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
[Tetanus booster (given as DT)]
\"\n },\n \"status\": \"completed\",\n \"vaccineCode\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/sid/cvx\",\n \"code\": \"138\",\n \"display\": \"tetanus and diphtheria toxoids, not adsorbed, for adult use\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"occurrenceDateTime\": \"2018-04-05\",\n \"site\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"16217701000119102\",\n \"display\": \"Structure of left deltoid muscle\"\n }\n ]\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration\",\n \"code\": \"IM\",\n \"display\": \"Injection, intramuscular\"\n }\n ]\n },\n \"performer\": [\n {\n \"actor\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n }\n }\n ],\n \"protocolApplied\": [\n {\n \"series\": \"6 (Booster)\",\n \"doseNumberPositiveInt\": 1\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Immunization/acd3a963-0985-4679-a126-8eb9ed981d36\",\n \"resource\": {\n \"resourceType\": \"Immunization\",\n \"id\": \"acd3a963-0985-4679-a126-8eb9ed981d36\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
133 (PCV13)
\"\n },\n \"status\": \"completed\",\n \"vaccineCode\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/sid/cvx\",\n \"code\": \"133\",\n \"display\": \"pneumococcal conjugate vaccine, 13 valent\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"occurrenceDateTime\": \"2015-09-25\",\n \"site\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"16217701000119102\",\n \"display\": \"Structure of left deltoid muscle\"\n }\n ]\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration\",\n \"code\": \"IM\",\n \"display\": \"Injection, intramuscular\"\n }\n ]\n },\n \"performer\": [\n {\n \"actor\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n }\n }\n ],\n \"protocolApplied\": [\n {\n \"series\": \"21 (PCV catch up)\",\n \"doseNumberPositiveInt\": 1\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Immunization/bae44614-43cc-4df4-94b3-c26d34b0ea37\",\n \"resource\": {\n \"resourceType\": \"Immunization\",\n \"id\": \"bae44614-43cc-4df4-94b3-c26d34b0ea37\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
99006 (Influenza)
\"\n },\n \"status\": \"completed\",\n \"vaccineCode\": {\n \"coding\": [\n {\n \"system\": \"http://hl7.org/fhir/sid/cvx\",\n \"code\": \"141\",\n \"display\": \"Influenza, seasonal, injectable\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"occurrenceDateTime\": \"2015-05-01\",\n \"site\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"16217701000119102\",\n \"display\": \"Structure of left deltoid muscle\"\n }\n ]\n },\n \"route\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration\",\n \"code\": \"IM\",\n \"display\": \"Injection, intramuscular\"\n }\n ]\n },\n \"performer\": [\n {\n \"actor\": {\n \"reference\": \"Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b\"\n }\n }\n ],\n \"protocolApplied\": [\n {\n \"series\": \"1 (Over 65 years (Influenza))\",\n \"doseNumberPositiveInt\": 1\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Procedure/8414198c-a43b-4ef1-b06f-3b39fb4b39cc\",\n \"resource\": {\n \"resourceType\": \"Procedure\",\n \"id\": \"8414198c-a43b-4ef1-b06f-3b39fb4b39cc\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Operative procedure on hip
\"\n },\n \"status\": \"unknown\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"265132005\",\n \"display\": \"Primary open reduction and internal fixation of proximal femoral fracture with screw/nail and plate device\"\n }\n ],\n \"text\": \"Operative procedure on hip\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"performedDateTime\": \"2020-09-01\",\n \"location\": {\n \"reference\": \"Location/F05076-A\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Procedure/1096ab80-e982-41b3-85c2-8e1d2466d147\",\n \"resource\": {\n \"resourceType\": \"Procedure\",\n \"id\": \"1096ab80-e982-41b3-85c2-8e1d2466d147\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Hand closure
\"\n },\n \"status\": \"unknown\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"287903004\",\n \"display\": \"Suturing of hand\"\n }\n ],\n \"text\": \"Hand closure\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"performedDateTime\": \"2018-03-31\"\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/DiagnosticReport/9e0d995f-a78d-45f4-b3aa-23037972a3e6\",\n \"resource\": {\n \"resourceType\": \"DiagnosticReport\",\n \"id\": \"9e0d995f-a78d-45f4-b3aa-23037972a3e6\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
[Lipids]
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v2-0074\",\n \"code\": \"LAB\",\n \"display\": \"Laboratory\"\n }\n ]\n }\n ],\n \"code\": {\n \"text\": \"[Lipids]\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"result\": [\n {\n \"reference\": \"Observation/2f3ad263-1b4e-443b-95ca-66d2abb6e927\"\n },\n {\n \"reference\": \"Observation/fe53810f-a341-4093-a959-4048ad62f85b\"\n },\n {\n \"reference\": \"Observation/6adb76b4-73f3-4552-87a6-09ac3dc1f558\"\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/DiagnosticReport/2da4116e-7158-4d59-b6c4-873b37f7d65f\",\n \"resource\": {\n \"resourceType\": \"DiagnosticReport\",\n \"id\": \"2da4116e-7158-4d59-b6c4-873b37f7d65f\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
[HbA1C]
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v2-0074\",\n \"code\": \"LAB\",\n \"display\": \"Laboratory\"\n }\n ]\n }\n ],\n \"code\": {\n \"text\": \"[HbA1C]\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"result\": [\n {\n \"reference\": \"Observation/63ad8984-003c-4e44-bc56-31dd6abc0897\"\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/2f3ad263-1b4e-443b-95ca-66d2abb6e927\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"2f3ad263-1b4e-443b-95ca-66d2abb6e927\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
[Total cholesterol:HDL ratio]
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"laboratory\"\n }\n ]\n }\n ],\n \"code\": {\n \"text\": \"[Total cholesterol:HDL ratio]\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/8363e64e-f639-4f55-bd3c-6302bf87a6d3\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 5.1,\n \"unit\": \"mmol/L\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mmol/L\"\n },\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"H\",\n \"display\": \"High\"\n }\n ]\n }\n ],\n \"referenceRange\": [\n {\n \"text\": \"<4 mmol/L (high risk)\"\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/fe53810f-a341-4093-a959-4048ad62f85b\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"fe53810f-a341-4093-a959-4048ad62f85b\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
[HDL Cholesterol]
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"laboratory\"\n }\n ]\n }\n ],\n \"code\": {\n \"text\": \"[HDL Cholesterol]\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/8363e64e-f639-4f55-bd3c-6302bf87a6d3\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 1.5,\n \"unit\": \"mmol/L\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mmol/L\"\n },\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"N\",\n \"display\": \"Normal\"\n }\n ]\n }\n ],\n \"referenceRange\": [\n {\n \"text\": \">1 mmol/L\"\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/6adb76b4-73f3-4552-87a6-09ac3dc1f558\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"6adb76b4-73f3-4552-87a6-09ac3dc1f558\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
[LDL Cholesterol]
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"laboratory\"\n }\n ]\n }\n ],\n \"code\": {\n \"text\": \"[LDL Cholesterol]\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/8363e64e-f639-4f55-bd3c-6302bf87a6d3\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 3.4,\n \"unit\": \"mmol/L\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mmol/L\"\n },\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"H\",\n \"display\": \"High\"\n }\n ]\n }\n ],\n \"referenceRange\": [\n {\n \"text\": \"<1.8 mmol/L\"\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/63ad8984-003c-4e44-bc56-31dd6abc0897\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"63ad8984-003c-4e44-bc56-31dd6abc0897\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
[HbA1c]
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"laboratory\"\n }\n ]\n }\n ],\n \"code\": {\n \"text\": \"[HbA1c]\"\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/8363e64e-f639-4f55-bd3c-6302bf87a6d3\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 60,\n \"unit\": \"mmol/mol\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mmol/mol\"\n },\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"H\",\n \"display\": \"High\"\n }\n ]\n }\n ],\n \"referenceRange\": [\n {\n \"text\": \"50 – 55 mmol/mol (diabetes)\"\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/6f64547c-89a3-459d-a993-b89e995c1f14\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"6f64547c-89a3-459d-a993-b89e995c1f14\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Body temperature
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8310-5\",\n \"display\": \"Body temperature\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-09-29T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 37.5,\n \"unit\": \"Cel\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"Cel\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/da3bbb11-e485-4396-a25c-611354789c65\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"da3bbb11-e485-4396-a25c-611354789c65\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Heart rate
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8867-4\",\n \"display\": \"Heart rate\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-09-29T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 84,\n \"unit\": \"/min\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"/min\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/5dead0bd-80c7-42f7-9720-3aaf047eb89b\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"5dead0bd-80c7-42f7-9720-3aaf047eb89b\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Respiratory rate
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"9279-1\",\n \"display\": \"Respiratory rate\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-09-29T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 18,\n \"unit\": \"/min\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"/min\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/126f25f0-d921-4d9a-85a2-5b847cfb89fb\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"126f25f0-d921-4d9a-85a2-5b847cfb89fb\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Blood pressure panel with all children optional
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"85354-9\",\n \"display\": \"Blood pressure panel with all children optional\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-09-29T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"component\": [\n {\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8480-6\",\n \"display\": \"Systolic blood pressure\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 136,\n \"unit\": \"mmHg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mm[Hg]\"\n }\n },\n {\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8462-4\",\n \"display\": \"Diastolic blood pressure\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 88,\n \"unit\": \"mmHg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mm[Hg]\"\n }\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/cf628f81-f66b-42a7-a33a-c5d38a604861\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"cf628f81-f66b-42a7-a33a-c5d38a604861\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Body height
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8302-2\",\n \"display\": \"Body height\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-09-29T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 1.84,\n \"unit\": \"cm\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"cm\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/dd309bef-3b36-4422-a202-39d040113a5d\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"dd309bef-3b36-4422-a202-39d040113a5d\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Body weight
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"29463-7\",\n \"display\": \"Body weight\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-09-29T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 104,\n \"unit\": \"kg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"kg\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/4c5e0a16-2e2c-47cc-8e1d-a87afee4d6f1\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"4c5e0a16-2e2c-47cc-8e1d-a87afee4d6f1\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Body temperature
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8310-5\",\n \"display\": \"Body temperature\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 37.2,\n \"unit\": \"Cel\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"Cel\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/eda3092b-5228-420b-b0ce-f5eb77e73942\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"eda3092b-5228-420b-b0ce-f5eb77e73942\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Heart rate
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8867-4\",\n \"display\": \"Heart rate\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 86,\n \"unit\": \"/min\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"/min\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/2d420435-f380-46e1-ad93-b9fef57f4b71\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"2d420435-f380-46e1-ad93-b9fef57f4b71\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Respiratory rate
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"9279-1\",\n \"display\": \"Respiratory rate\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 14,\n \"unit\": \"/min\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"/min\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/7a422837-80f5-4fa6-b3ac-8a0e44b99356\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"7a422837-80f5-4fa6-b3ac-8a0e44b99356\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Blood pressure panel with all children optional
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"85354-9\",\n \"display\": \"Blood pressure panel with all children optional\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"component\": [\n {\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8480-6\",\n \"display\": \"Systolic blood pressure\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 130,\n \"unit\": \"mmHg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mm[Hg]\"\n }\n },\n {\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8462-4\",\n \"display\": \"Diastolic blood pressure\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 82,\n \"unit\": \"mmHg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mm[Hg]\"\n }\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/af9ae822-ae5d-4bec-88bf-4dd250350783\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"af9ae822-ae5d-4bec-88bf-4dd250350783\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Body weight
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"29463-7\",\n \"display\": \"Body weight\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2023-03-05T00:00:00+00:00\",\n \"performer\": [\n {\n \"reference\": \"PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244\"\n }\n ],\n \"valueQuantity\": {\n \"value\": 103,\n \"unit\": \"kg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"kg\"\n }\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/Observation/33624327-7e1b-4912-bca1-2d0c8d36b952\",\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"33624327-7e1b-4912-bca1-2d0c8d36b952\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Tobacco smoking status
\"\n },\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"social-history\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"72166-2\",\n \"display\": \"Tobacco smoking status\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/ZKT9319\"\n },\n \"effectiveDateTime\": \"2005-06-30\",\n \"performer\": [\n {\n \"reference\": \"Patient/ZKT9319\"\n }\n ],\n \"valueCodeableConcept\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"LA15920-4\",\n \"display\": \"Former smoker\"\n }\n ]\n },\n \"note\": [\n {\n \"text\": \"30 - pack - year smoking history, quit smoking ~2005.\"\n }\n ]\n }\n },\n {\n \"fullUrl\": \"https://terminz.azurewebsites.net/fhir/PractitionerRole/8363e64e-f639-4f55-bd3c-6302bf87a6d3\",\n \"resource\": {\n \"resourceType\": \"PractitionerRole\",\n \"id\": \"8363e64e-f639-4f55-bd3c-6302bf87a6d3\",\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"
Role: Clinical pathologist
\"\n },\n \"code\": [\n {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"81464008\",\n \"display\": \"Clinical pathologist\"\n }\n ]\n }\n ]\n }\n }\n ]\n}", + "fileType": null + } + ] +} \ No newline at end of file diff --git a/http-client-tests/resources/preset-requests/ips.json b/http-client-tests/resources/preset-requests/ips.json new file mode 100644 index 00000000..56ee6879 --- /dev/null +++ b/http-client-tests/resources/preset-requests/ips.json @@ -0,0 +1,16 @@ +{ + "cliContext": { + "baseEngine": "IPS", + "locale": "en", + "profiles": [ + "http://hl7.org/fhir/uv/ips/StructureDefinition/Bundle-uv-ips" + ] + }, + "filesToValidate": [ + { + "fileName": "manually_entered_file.json", + "fileContent": "{\n \"resourceType\" : \"Bundle\",\n \"id\" : \"bundle-minimal\",\n \"language\" : \"en-US\",\n \"identifier\" : {\n \"system\" : \"urn:oid:2.16.724.4.8.10.200.10\",\n \"value\" : \"28b95815-76ce-457b-b7ae-a972e527db40\"\n },\n \"type\" : \"document\",\n \"timestamp\" : \"2020-12-11T14:30:00+01:00\",\n \"entry\" : [{\n \"fullUrl\" : \"urn:uuid:6e1fb74a-742b-4c7b-8487-171dacb88766\",\n \"resource\" : {\n \"resourceType\" : \"Composition\",\n \"id\" : \"6e1fb74a-742b-4c7b-8487-171dacb88766\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative

Resource \\\"6e1fb74a-742b-4c7b-8487-171dacb88766\\\"

status: final

type: Patient summary Document (LOINC#60591-5)

date: 2020-12-11 02:30:00+0100

author: Beetje van Hulp, MD

title: Patient Summary as of December 11, 2020 14:30

confidentiality: N

attester

mode: legal

time: 2020-12-11 02:30:00+0100

party: Beetje van Hulp, MD

attester

mode: legal

time: 2020-12-11 02:30:00+0100

party: Anorg Aniza Tion BV

custodian: Anorg Aniza Tion BV

RelatesTos

-CodeTarget[x]
*appendsid: 20e12ce3-857f-49c0-b888-cb670597f191

Events

-CodePeriod
*care provision (ActClass#PCPR)?? --> 2020-12-11 02:30:00+0100
\"\n },\n \"status\" : \"final\",\n \"type\" : {\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"60591-5\",\n \"display\" : \"Patient summary Document\"\n }]\n },\n \"subject\" : {\n \"reference\" : \"Patient/7685713c-e29e-4a75-8a90-45be7ba3be94\"\n },\n \"date\" : \"2020-12-11T14:30:00+01:00\",\n \"author\" : [{\n \"reference\" : \"Practitioner/98315ba9-ffea-41ef-b59b-a836c039858f\"\n }],\n \"title\" : \"Patient Summary as of December 11, 2020 14:30\",\n \"confidentiality\" : \"N\",\n \"attester\" : [{\n \"mode\" : \"legal\",\n \"time\" : \"2020-12-11T14:30:00+01:00\",\n \"party\" : {\n \"reference\" : \"Practitioner/98315ba9-ffea-41ef-b59b-a836c039858f\"\n }\n },\n {\n \"mode\" : \"legal\",\n \"time\" : \"2020-12-11T14:30:00+01:00\",\n \"party\" : {\n \"reference\" : \"Organization/bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d\"\n }\n }],\n \"custodian\" : {\n \"reference\" : \"Organization/bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d\"\n },\n \"relatesTo\" : [{\n \"code\" : \"appends\",\n \"targetIdentifier\" : {\n \"system\" : \"urn:oid:2.16.724.4.8.10.200.10\",\n \"value\" : \"20e12ce3-857f-49c0-b888-cb670597f191\"\n }\n }],\n \"event\" : [{\n \"code\" : [{\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/v3-ActClass\",\n \"code\" : \"PCPR\"\n }]\n }],\n \"period\" : {\n \"end\" : \"2020-12-11T14:30:00+01:00\"\n }\n }],\n \"section\" : [{\n \"title\" : \"Active Problems\",\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"11450-4\",\n \"display\" : \"Problem list Reported\"\n }]\n },\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"
  • Condition Name: Menopausal Flushing
    Code: 198436008
    Status: Active
\"\n },\n \"entry\" : [{\n \"reference\" : \"Condition/ad84b7a2-b4dd-474e-bef3-0779e6cb595f\"\n }]\n },\n {\n \"title\" : \"Medication\",\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"10160-0\",\n \"display\" : \"History of Medication use Narrative\"\n }]\n },\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"
  • Medication Name: Oral anastrozole 1mg tablet
    Code:
    Status: Active, started March 2015
    Instructions: Take 1 time per day
\"\n },\n \"entry\" : [{\n \"reference\" : \"MedicationStatement/6e883e5e-7648-485a-86de-3640a61601fe\"\n }]\n },\n {\n \"title\" : \"Allergies and Intolerances\",\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"48765-2\",\n \"display\" : \"Allergies and adverse reactions Document\"\n }]\n },\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"
  • Allergy Name: Pencillins
    Verification Status: Confirmed
    Reaction: no information
\"\n },\n \"entry\" : [{\n \"reference\" : \"AllergyIntolerance/fe2769fd-22c9-4307-9122-ee0466e5aebb\"\n }]\n }]\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:7685713c-e29e-4a75-8a90-45be7ba3be94\",\n \"resource\" : {\n \"resourceType\" : \"Patient\",\n \"id\" : \"7685713c-e29e-4a75-8a90-45be7ba3be94\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: Patient

Resource Patient "7685713c-e29e-4a75-8a90-45be7ba3be94"

identifier: id:\\u00a0574687583

active: true

name: Martha DeLarosa

telecom: +31788700800

gender: female

birthDate: 1972-05-01

address: Laan Van Europa 1600 Dordrecht 3317 DB NL

Contacts

-RelationshipNameTelecomAddress
*mother (RoleCode#MTH)Martha Mum +33-555-20036Promenade des Anglais 111 Lyon 69001 FR
\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:2.16.840.1.113883.2.4.6.3\",\n \"value\" : \"574687583\"\n }],\n \"active\" : true,\n \"name\" : [{\n \"family\" : \"DeLarosa\",\n \"given\" : [\"Martha\"]\n }],\n \"telecom\" : [{\n \"system\" : \"phone\",\n \"value\" : \"+31788700800\",\n \"use\" : \"home\"\n }],\n \"gender\" : \"female\",\n \"birthDate\" : \"1972-05-01\",\n \"address\" : [{\n \"line\" : [\"Laan Van Europa 1600\"],\n \"city\" : \"Dordrecht\",\n \"postalCode\" : \"3317 DB\",\n \"country\" : \"NL\"\n }],\n \"contact\" : [{\n \"relationship\" : [{\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/v3-RoleCode\",\n \"code\" : \"MTH\"\n }]\n }],\n \"name\" : {\n \"family\" : \"Mum\",\n \"given\" : [\"Martha\"]\n },\n \"telecom\" : [{\n \"system\" : \"phone\",\n \"value\" : \"+33-555-20036\",\n \"use\" : \"home\"\n }],\n \"address\" : {\n \"line\" : [\"Promenade des Anglais 111\"],\n \"city\" : \"Lyon\",\n \"postalCode\" : \"69001\",\n \"country\" : \"FR\"\n }\n }]\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:98315ba9-ffea-41ef-b59b-a836c039858f\",\n \"resource\" : {\n \"resourceType\" : \"Practitioner\",\n \"id\" : \"98315ba9-ffea-41ef-b59b-a836c039858f\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: Practitioner

Resource Practitioner "98315ba9-ffea-41ef-b59b-a836c039858f"

identifier: id:\\u00a0129854633

active: true

name: Beetje van Hulp

Qualifications

-Code
*Doctor of Medicine (degreeLicenseCertificate[2.7]#MD)
\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:2.16.528.1.1007.3.1\",\n \"value\" : \"129854633\",\n \"assigner\" : {\n \"display\" : \"CIBG\"\n }\n }],\n \"active\" : true,\n \"name\" : [{\n \"family\" : \"van Hulp\",\n \"given\" : [\"Beetje\"]\n }],\n \"qualification\" : [{\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/v2-0360\",\n \"version\" : \"2.7\",\n \"code\" : \"MD\",\n \"display\" : \"Doctor of Medicine\"\n }]\n }\n }]\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d\",\n \"resource\" : {\n \"resourceType\" : \"Organization\",\n \"id\" : \"bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: Organization

Resource Organization "bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d"

identifier: id:\\u00a0564738757

active: true

name: Anorg Aniza Tion BV / The best custodian ever

telecom: +31-51-34343400

address: Houttuinen 27 Dordrecht 3311 CE NL (WORK)

\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:2.16.528.1.1007.3.3\",\n \"value\" : \"564738757\"\n }],\n \"active\" : true,\n \"name\" : \"Anorg Aniza Tion BV / The best custodian ever\",\n \"telecom\" : [{\n \"system\" : \"phone\",\n \"value\" : \"+31-51-34343400\",\n \"use\" : \"work\"\n }],\n \"address\" : [{\n \"use\" : \"work\",\n \"line\" : [\"Houttuinen 27\"],\n \"city\" : \"Dordrecht\",\n \"postalCode\" : \"3311 CE\",\n \"country\" : \"NL\"\n }]\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:ad84b7a2-b4dd-474e-bef3-0779e6cb595f\",\n \"resource\" : {\n \"resourceType\" : \"Condition\",\n \"id\" : \"ad84b7a2-b4dd-474e-bef3-0779e6cb595f\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: Condition

Resource Condition "ad84b7a2-b4dd-474e-bef3-0779e6cb595f"

identifier: id:\\u00a0cacceb57-395f-48e1-9c88-e9c9704dc2d2

clinicalStatus: Active (Condition Clinical Status Codes#active)

verificationStatus: Confirmed (ConditionVerificationStatus#confirmed)

category: Problem (LOINC#75326-9)

severity: Moderate (LOINC#LA6751-7)

code: Menopausal flushing (finding) (SNOMED CT#198436008; ICD-10#N95.1 "Menopausal and female climacteric states")

subject: See above (Patient/7685713c-e29e-4a75-8a90-45be7ba3be94)

onset: 2015

recordedDate: 2016-10

\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:1.2.3.999\",\n \"value\" : \"cacceb57-395f-48e1-9c88-e9c9704dc2d2\"\n }],\n \"clinicalStatus\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\" : \"active\"\n }]\n },\n \"verificationStatus\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/condition-ver-status\",\n \"code\" : \"confirmed\"\n }]\n },\n \"category\" : [{\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"75326-9\",\n \"display\" : \"Problem\"\n }]\n }],\n \"severity\" : {\n \"coding\" : [{\n \"system\" : \"http://loinc.org\",\n \"code\" : \"LA6751-7\",\n \"display\" : \"Moderate\"\n }]\n },\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://snomed.info/sct\",\n \"code\" : \"198436008\",\n \"display\" : \"Menopausal flushing (finding)\",\n \"_display\" : {\n \"extension\" : [{\n \"extension\" : [{\n \"url\" : \"lang\",\n \"valueCode\" : \"nl-NL\"\n },\n {\n \"url\" : \"content\",\n \"valueString\" : \"opvliegers\"\n }],\n \"url\" : \"http://hl7.org/fhir/StructureDefinition/translation\"\n }]\n }\n },\n {\n \"system\" : \"http://hl7.org/fhir/sid/icd-10\",\n \"code\" : \"N95.1\",\n \"display\" : \"Menopausal and female climacteric states\"\n }]\n },\n \"subject\" : {\n \"reference\" : \"Patient/7685713c-e29e-4a75-8a90-45be7ba3be94\"\n },\n \"onsetDateTime\" : \"2015\",\n \"recordedDate\" : \"2016-10\"\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:6e883e5e-7648-485a-86de-3640a61601fe\",\n \"resource\" : {\n \"resourceType\" : \"MedicationStatement\",\n \"id\" : \"6e883e5e-7648-485a-86de-3640a61601fe\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: MedicationStatement

Resource MedicationStatement "6e883e5e-7648-485a-86de-3640a61601fe"

identifier: id:\\u00a08faf0319-89d3-427c-b9d1-e8c8fd390dca

status: active

medication: See above (Medication/6369a973-afc7-4617-8877-3e9811e05a5b)

subject: See above (Patient/7685713c-e29e-4a75-8a90-45be7ba3be94)

effective: 2015-03 --> (ongoing)

dosage

timing: Count 1 times, Once

route: Oral use (standardterms.edqm.eu#20053000)

doseAndRate

\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:1.2.3.999\",\n \"value\" : \"8faf0319-89d3-427c-b9d1-e8c8fd390dca\"\n }],\n \"status\" : \"active\",\n \"medicationReference\" : {\n \"reference\" : \"Medication/6369a973-afc7-4617-8877-3e9811e05a5b\"\n },\n \"subject\" : {\n \"reference\" : \"Patient/7685713c-e29e-4a75-8a90-45be7ba3be94\"\n },\n \"effectivePeriod\" : {\n \"start\" : \"2015-03\"\n },\n \"dosage\" : [{\n \"timing\" : {\n \"repeat\" : {\n \"count\" : 1,\n \"periodUnit\" : \"d\"\n }\n },\n \"route\" : {\n \"coding\" : [{\n \"system\" : \"http://standardterms.edqm.eu\",\n \"code\" : \"20053000\",\n \"display\" : \"Oral use\"\n }]\n },\n \"doseAndRate\" : [{\n \"type\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/dose-rate-type\",\n \"code\" : \"ordered\",\n \"display\" : \"Ordered\"\n }]\n },\n \"doseQuantity\" : {\n \"value\" : 1,\n \"unit\" : \"tablet\",\n \"system\" : \"http://unitsofmeasure.org\",\n \"code\" : \"1\"\n }\n }]\n }]\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:6369a973-afc7-4617-8877-3e9811e05a5b\",\n \"resource\" : {\n \"resourceType\" : \"Medication\",\n \"id\" : \"6369a973-afc7-4617-8877-3e9811e05a5b\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: Medication

Resource Medication "6369a973-afc7-4617-8877-3e9811e05a5b"

code: Product containing anastrozole (medicinal product) (SNOMED CT#108774000; unknown#99872 "ANASTROZOL 1MG TABLET"; unknown#2076667 "ANASTROZOL CF TABLET FILMOMHULD 1MG"; WHO ATC#L02BG03 "anastrozole")

\"\n },\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://snomed.info/sct\",\n \"code\" : \"108774000\",\n \"display\" : \"Product containing anastrozole (medicinal product)\"\n },\n {\n \"system\" : \"urn:oid:2.16.840.1.113883.2.4.4.1\",\n \"code\" : \"99872\",\n \"display\" : \"ANASTROZOL 1MG TABLET\"\n },\n {\n \"system\" : \"urn:oid:2.16.840.1.113883.2.4.4.7\",\n \"code\" : \"2076667\",\n \"display\" : \"ANASTROZOL CF TABLET FILMOMHULD 1MG\"\n },\n {\n \"system\" : \"http://www.whocc.no/atc\",\n \"code\" : \"L02BG03\",\n \"display\" : \"anastrozole\"\n }]\n }\n }\n },\n {\n \"fullUrl\" : \"urn:uuid:fe2769fd-22c9-4307-9122-ee0466e5aebb\",\n \"resource\" : {\n \"resourceType\" : \"AllergyIntolerance\",\n \"id\" : \"fe2769fd-22c9-4307-9122-ee0466e5aebb\",\n \"text\" : {\n \"status\" : \"generated\",\n \"div\" : \"

Generated Narrative: AllergyIntolerance

Resource AllergyIntolerance "fe2769fd-22c9-4307-9122-ee0466e5aebb"

identifier: id:\\u00a08d9566a4-d26d-46be-a3e4-c9f3a0e5cd83

clinicalStatus: Active (AllergyIntolerance Clinical Status Codes#active)

verificationStatus: Confirmed (AllergyIntolerance Verification Status#confirmed)

type: allergy

category: medication

criticality: high

code: Substance with penicillin structure and antibacterial mechanism of action (substance) (SNOMED CT#373270004)

patient: See above (Patient/7685713c-e29e-4a75-8a90-45be7ba3be94)

onset: 2010

\"\n },\n \"identifier\" : [{\n \"system\" : \"urn:oid:1.2.3.999\",\n \"value\" : \"8d9566a4-d26d-46be-a3e4-c9f3a0e5cd83\"\n }],\n \"clinicalStatus\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical\",\n \"code\" : \"active\"\n }]\n },\n \"verificationStatus\" : {\n \"coding\" : [{\n \"system\" : \"http://terminology.hl7.org/CodeSystem/allergyintolerance-verification\",\n \"code\" : \"confirmed\"\n }]\n },\n \"type\" : \"allergy\",\n \"category\" : [\"medication\"],\n \"criticality\" : \"high\",\n \"code\" : {\n \"coding\" : [{\n \"system\" : \"http://snomed.info/sct\",\n \"code\" : \"373270004\",\n \"display\" : \"Substance with penicillin structure and antibacterial mechanism of action (substance)\"\n }]\n },\n \"patient\" : {\n \"reference\" : \"Patient/7685713c-e29e-4a75-8a90-45be7ba3be94\"\n },\n \"onsetDateTime\" : \"2010\"\n }\n }]\n}", + "fileType": null + } + ] +} \ No newline at end of file diff --git a/http-client-tests/resources/preset-requests/sql-on-fhir.json b/http-client-tests/resources/preset-requests/sql-on-fhir.json new file mode 100644 index 00000000..1871766d --- /dev/null +++ b/http-client-tests/resources/preset-requests/sql-on-fhir.json @@ -0,0 +1,13 @@ +{ + "cliContext": { + "baseEngine": "SQL_VIEW", + "locale": "en" + }, + "filesToValidate": [ + { + "fileName": "manually_entered_file.json", + "fileContent": "{\n \"resourceType\": \"http://hl7.org/fhir/uv/sql-on-fhir/StructureDefinition/ViewDefinition\",\n \"select\": [\n {\n \"column\": [\n {\n \"path\": \"getResourceKey()\",\n \"name\": \"patient_id\"\n }\n ]\n },\n {\n \"column\": [\n {\n \"path\": \"line.join('\\n')\",\n \"name\": \"street\",\n \"description\": \"The full street address, including newlines if present.\"\n },\n {\n \"path\": \"use\",\n \"name\": \"use\"\n },\n {\n \"path\": \"city\",\n \"name\": \"city\"\n },\n {\n \"path\": \"postalCode\",\n \"name\": \"zip\"\n }\n ],\n \"forEach\": \"address\"\n }\n ],\n \"name\": \"patient_addresses\",\n \"status\": \"draft\",\n \"resource\": \"Patient\"\n }", + "fileType": null + } + ] +} \ No newline at end of file diff --git a/http-client-tests/resources/preset-requests/us-ccda.json b/http-client-tests/resources/preset-requests/us-ccda.json new file mode 100644 index 00000000..533bf12f --- /dev/null +++ b/http-client-tests/resources/preset-requests/us-ccda.json @@ -0,0 +1,13 @@ +{ + "cliContext": { + "baseEngine": "US_CCDA", + "locale": "en" + }, + "filesToValidate": [ + { + "fileName": "manually_entered_file.xml", + "fileContent": "\n\n\n\n\t\n\t\n\t\n \n \n \n\t\n\t\n\t\n\tGood Health Hospital Care Plan\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t2222 Home Street\n\t\t\t\tBeaverton\n\t\t\t\tOR\n\t\t\t\t97867\n\t\t\t\tUS\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tEve\n\t\t\t\t\t\n\t\t\t\t\tBetterhalf\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tEve\n\t\t\t\t\t\n\t\t\t\t\tEverywoman\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t2222 Home Street\n\t\t\t\t\t\tBeaverton\n\t\t\t\t\t\tOR\n\t\t\t\t\t\t97867\n\t\t\t\t\t\tUS\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tBoris\n\t\t\t\t\t\t\tBo\n\t\t\t\t\t\t\tBetterhalf\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t4444 Home Street\n\t\t\t\t\t\t\tBeaverton\n\t\t\t\t\t\t\tOR\n\t\t\t\t\t\t\t97867\n\t\t\t\t\t\t\tUS\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\tThe DoctorsTogether Physician Group\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t1007 Health Drive\n\t\t\t\t\tPortland\n\t\t\t\t\tOR\n\t\t\t\t\t99123\n\t\t\t\t\tUS\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t1007 Healthcare Drive\n\t\t\t\tPortland\n\t\t\t\tOR\n\t\t\t\t99123\n\t\t\t\tUS\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tEllen\n\t\t\t\t\tEnter\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t1007 Healthcare Drive\n\t\t\t\tPortland\n\t\t\t\tOR\n\t\t\t\t99123\n\t\t\t\tUS\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tHarold\n\t\t\t\t\tHippocrates\n\t\t\t\t\tD.O.\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\tGood Health HIE\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t1009 Healthcare Drive \n\t\t\t\t\tPortland\n\t\t\t\t\tOR\n\t\t\t\t\t99123\n\t\t\t\t\tUS\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t100 Better Health Rd.\n\t\t\t\tAnn Arbor\n\t\t\t\tMI\n\t\t\t\t97857\n\t\t\t\tUS\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tNurse\n\t\t\t\t\tCaresalot\n\t\t\t\t\tRN\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tBetter Health Hospital\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t100 Better Health Rd.\n\t\t\t\t\tAnn Arbor\n\t\t\t\t\tMI\n\t\t\t\t\t97857\n\t\t\t\t\tUS\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t17 Daws Rd.\n\t\t\t\tAnn Arbor\n\t\t\t\tMI\n\t\t\t\t97857\n\t\t\t\tUS\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tMrs.\n\t\t\t\t\tMartha\n\t\t\t\t\tJones\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t17 Daws Rd.\n\t\t\t\tAnn Arbor\n\t\t\t\tMI\n\t\t\t\t97857\n\t\t\t\tUS\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tMrs.\n\t\t\t\t\tMartha\n\t\t\t\t\tJones\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n \n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tPROBLEMS\n\t\t\t\tNo Information\n\t\t\t
\n\t\t
\n
\n\t
\n
", + "fileType": null + } + ] +} \ No newline at end of file diff --git a/http-client-tests/resources/session-requests/session_1_validation_1.json b/http-client-tests/resources/session-requests/session_1_validation_1.json new file mode 100644 index 00000000..5e871526 --- /dev/null +++ b/http-client-tests/resources/session-requests/session_1_validation_1.json @@ -0,0 +1,14 @@ +{ + "cliContext": { + "sv": "4.0.1", + "locale": "en", + "showTimes": true + }, + "filesToValidate": [ + { + "fileName": "manually_entered_file.json", + "fileContent": "{\n \"resourceType\": \"Observation\",\n \"id\": \"blood-pressure\",\n \"meta\": {\n \"profile\": [\n \"http://hl7.org/fhir/StructureDefinition/vitalsigns\"\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"

Generated Narrative with Details

id: blood-pressure

meta:

identifier: urn:uuid:187e0c12-8dd2-67e2-99b2-bf273c878281

basedOn:

status: final

category: Vital Signs (Details : {http://terminology.hl7.org/CodeSystem/observation-category code 'vital-signs' = 'Vital Signs', given as 'Vital Signs'})

code: Blood pressure systolic & diastolic (Details : {LOINC code '85354-9' = 'Blood pressure panel with all children optional', given as 'Blood pressure panel with all children optional'})

subject: Patient/example

effective: 17/09/2012

performer: Practitioner/example

interpretation: Below low normal (Details : {http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation code 'L' = 'Low', given as 'low'})

bodySite: Right arm (Details : {SNOMED CT code '368209003' = 'Right upper arm', given as 'Right arm'})

component

code: Systolic blood pressure (Details : {LOINC code '8480-6' = 'Systolic blood pressure', given as 'Systolic blood pressure'}; {SNOMED CT code '271649006' = 'Systolic blood pressure', given as 'Systolic blood pressure'}; {http://acme.org/devices/clinical-codes code 'bp-s' = 'bp-s', given as 'Systolic Blood pressure'})

value: 107 mmHg (Details: UCUM code mm[Hg] = 'mmHg')

interpretation: Normal (Details : {http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation code 'N' = 'Normal', given as 'normal'})

component

code: Diastolic blood pressure (Details : {LOINC code '8462-4' = 'Diastolic blood pressure', given as 'Diastolic blood pressure'})

value: 60 mmHg (Details: UCUM code mm[Hg] = 'mmHg')

interpretation: Below low normal (Details : {http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation code 'L' = 'Low', given as 'low'})

\"\n },\n \"identifier\": [\n {\n \"system\": \"urn:ietf:rfc:3986\",\n \"value\": \"urn:uuid:187e0c12-8dd2-67e2-99b2-bf273c878281\"\n }\n ],\n \"basedOn\": [\n {\n \"identifier\": {\n \"system\": \"https://acme.org/identifiers\",\n \"value\": \"1234\"\n }\n }\n ],\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\",\n \"display\": \"Vital Signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"85354-9\",\n \"display\": \"Blood pressure panel with all children optional\"\n }\n ],\n \"text\": \"Blood pressure systolic & diastolic\"\n },\n \"subject\": {\n \"reference\": \"Patient/example\"\n },\n \"effectiveDateTime\": \"2012-09-17\",\n \"performer\": [\n {\n \"reference\": \"Practitioner/example\"\n }\n ],\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"L\",\n \"display\": \"low\"\n }\n ],\n \"text\": \"Below low normal\"\n }\n ],\n \"bodySite\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"368209003\",\n \"display\": \"Right arm\"\n }\n ]\n },\n \"component\": [\n {\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8480-6\",\n \"display\": \"Systolic blood pressure\"\n },\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"271649006\",\n \"display\": \"Systolic blood pressure\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 107,\n \"unit\": \"mmHg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mm[Hg]\"\n },\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"N\",\n \"display\": \"normal\"\n }\n ],\n \"text\": \"Normal\"\n }\n ]\n },\n {\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8462-4\",\n \"display\": \"Diastolic blood pressure\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 60,\n \"unit\": \"mmHg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mm[Hg]\"\n },\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"L\",\n \"display\": \"low\"\n }\n ],\n \"text\": \"Below low normal\"\n }\n ]\n }\n ]\n}", + "fileType": null + } + ] +} \ No newline at end of file diff --git a/http-client-tests/resources/session-requests/session_1_validation_2.json b/http-client-tests/resources/session-requests/session_1_validation_2.json new file mode 100644 index 00000000..60794f62 --- /dev/null +++ b/http-client-tests/resources/session-requests/session_1_validation_2.json @@ -0,0 +1,15 @@ +{ + "cliContext": { + "sv": "4.0.1", + "locale": "en", + "showTimes": true + }, + "filesToValidate": [ + { + "fileName": "manually_entered_file.json", + "fileContent": "{\n \"resourceType\": \"Observation\",\n \"id\": \"blood-pressure\",\n \"meta\": {\n \"profile\": [\n \"http://hl7.org/fhir/StructureDefinition/vitalsigns\"\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"

Generated Narrative with Details

id: blood-pressure

meta:

identifier: urn:uuid:187e0c12-8dd2-67e2-99b2-bf273c878281

basedOn:

status: final

category: Vital Signs (Details : {http://terminology.hl7.org/CodeSystem/observation-category code 'vital-signs' = 'Vital Signs', given as 'Vital Signs'})

code: Blood pressure systolic & diastolic (Details : {LOINC code '85354-9' = 'Blood pressure panel with all children optional', given as 'Blood pressure panel with all children optional'})

subject: Patient/example

effective: 17/09/2012

performer: Practitioner/example

interpretation: Below low normal (Details : {http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation code 'L' = 'Low', given as 'low'})

bodySite: Right arm (Details : {SNOMED CT code '368209003' = 'Right upper arm', given as 'Right arm'})

component

code: Systolic blood pressure (Details : {LOINC code '8480-6' = 'Systolic blood pressure', given as 'Systolic blood pressure'}; {SNOMED CT code '271649006' = 'Systolic blood pressure', given as 'Systolic blood pressure'}; {http://acme.org/devices/clinical-codes code 'bp-s' = 'bp-s', given as 'Systolic Blood pressure'})

value: 107 mmHg (Details: UCUM code mm[Hg] = 'mmHg')

interpretation: Normal (Details : {http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation code 'N' = 'Normal', given as 'normal'})

component

code: Diastolic blood pressure (Details : {LOINC code '8462-4' = 'Diastolic blood pressure', given as 'Diastolic blood pressure'})

value: 60 mmHg (Details: UCUM code mm[Hg] = 'mmHg')

interpretation: Below low normal (Details : {http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation code 'L' = 'Low', given as 'low'})

\"\n },\n \"identifier\": [\n {\n \"system\": \"urn:ietf:rfc:3986\",\n \"value\": \"urn:uuid:187e0c12-8dd2-67e2-99b2-bf273c878281\"\n }\n ],\n \"basedOn\": [\n {\n \"identifier\": {\n \"system\": \"https://acme.org/identifiers\",\n \"value\": \"1234\"\n }\n }\n ],\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\",\n \"display\": \"Vital Signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"85354-9\",\n \"display\": \"Blood pressure panel with all children optional\"\n }\n ],\n \"text\": \"Blood pressure systolic & diastolic\"\n },\n \"subject\": {\n \"reference\": \"Patient/example\"\n },\n \"effectiveDateTime\": \"2012-09-17\",\n \"performer\": [\n {\n \"reference\": \"Practitioner/example\"\n }\n ],\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"L\",\n \"display\": \"low\"\n }\n ],\n \"text\": \"Below low normal\"\n }\n ],\n \"bodySite\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"368209003\",\n \"display\": \"Right arm\"\n }\n ]\n },\n \"component\": [\n {\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8480-6\",\n \"display\": \"Systolic blood pressure\"\n },\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"271649006\",\n \"display\": \"Systolic blood pressure\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 107,\n \"unit\": \"mmHg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mm[Hg]\"\n },\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"N\",\n \"display\": \"normal\"\n }\n ],\n \"text\": \"Normal\"\n }\n ]\n },\n {\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8462-4\",\n \"display\": \"Diastolic blood pressure\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 60,\n \"unit\": \"mmHg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mm[Hg]\"\n },\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"L\",\n \"display\": \"low\"\n }\n ],\n \"text\": \"Below low normal\"\n }\n ]\n }\n ]\n}", + "fileType": null + } + ], + "sessionId": "{{SESSION_1_ID}}" +} \ No newline at end of file diff --git a/http-client-tests/resources/session-requests/session_2_validation_1.json b/http-client-tests/resources/session-requests/session_2_validation_1.json new file mode 100644 index 00000000..2975e94f --- /dev/null +++ b/http-client-tests/resources/session-requests/session_2_validation_1.json @@ -0,0 +1,14 @@ +{ + "cliContext": { + "sv": "3.0.2", + "locale": "en", + "showTimes": true + }, + "filesToValidate": [ + { + "fileName": "manually_entered_file.json", + "fileContent": "{\n \"resourceType\": \"Observation\",\n \"id\": \"blood-pressure\",\n \"meta\": {\n \"profile\": [\n \"http://hl7.org/fhir/StructureDefinition/vitalsigns\"\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"

Generated Narrative with Details

id: blood-pressure

meta:

identifier: urn:uuid:187e0c12-8dd2-67e2-99b2-bf273c878281

basedOn:

status: final

category: Vital Signs (Details : {http://terminology.hl7.org/CodeSystem/observation-category code 'vital-signs' = 'Vital Signs', given as 'Vital Signs'})

code: Blood pressure systolic & diastolic (Details : {LOINC code '85354-9' = 'Blood pressure panel with all children optional', given as 'Blood pressure panel with all children optional'})

subject: Patient/example

effective: 17/09/2012

performer: Practitioner/example

interpretation: Below low normal (Details : {http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation code 'L' = 'Low', given as 'low'})

bodySite: Right arm (Details : {SNOMED CT code '368209003' = 'Right upper arm', given as 'Right arm'})

component

code: Systolic blood pressure (Details : {LOINC code '8480-6' = 'Systolic blood pressure', given as 'Systolic blood pressure'}; {SNOMED CT code '271649006' = 'Systolic blood pressure', given as 'Systolic blood pressure'}; {http://acme.org/devices/clinical-codes code 'bp-s' = 'bp-s', given as 'Systolic Blood pressure'})

value: 107 mmHg (Details: UCUM code mm[Hg] = 'mmHg')

interpretation: Normal (Details : {http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation code 'N' = 'Normal', given as 'normal'})

component

code: Diastolic blood pressure (Details : {LOINC code '8462-4' = 'Diastolic blood pressure', given as 'Diastolic blood pressure'})

value: 60 mmHg (Details: UCUM code mm[Hg] = 'mmHg')

interpretation: Below low normal (Details : {http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation code 'L' = 'Low', given as 'low'})

\"\n },\n \"identifier\": [\n {\n \"system\": \"urn:ietf:rfc:3986\",\n \"value\": \"urn:uuid:187e0c12-8dd2-67e2-99b2-bf273c878281\"\n }\n ],\n \"basedOn\": [\n {\n \"identifier\": {\n \"system\": \"https://acme.org/identifiers\",\n \"value\": \"1234\"\n }\n }\n ],\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\",\n \"display\": \"Vital Signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"85354-9\",\n \"display\": \"Blood pressure panel with all children optional\"\n }\n ],\n \"text\": \"Blood pressure systolic & diastolic\"\n },\n \"subject\": {\n \"reference\": \"Patient/example\"\n },\n \"effectiveDateTime\": \"2012-09-17\",\n \"performer\": [\n {\n \"reference\": \"Practitioner/example\"\n }\n ],\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"L\",\n \"display\": \"low\"\n }\n ],\n \"text\": \"Below low normal\"\n }\n ],\n \"bodySite\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"368209003\",\n \"display\": \"Right arm\"\n }\n ]\n },\n \"component\": [\n {\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8480-6\",\n \"display\": \"Systolic blood pressure\"\n },\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"271649006\",\n \"display\": \"Systolic blood pressure\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 107,\n \"unit\": \"mmHg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mm[Hg]\"\n },\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"N\",\n \"display\": \"normal\"\n }\n ],\n \"text\": \"Normal\"\n }\n ]\n },\n {\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8462-4\",\n \"display\": \"Diastolic blood pressure\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 60,\n \"unit\": \"mmHg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mm[Hg]\"\n },\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"L\",\n \"display\": \"low\"\n }\n ],\n \"text\": \"Below low normal\"\n }\n ]\n }\n ]\n}", + "fileType": null + } + ] +} \ No newline at end of file diff --git a/http-client-tests/resources/session-requests/session_2_validation_2.json b/http-client-tests/resources/session-requests/session_2_validation_2.json new file mode 100644 index 00000000..879877f4 --- /dev/null +++ b/http-client-tests/resources/session-requests/session_2_validation_2.json @@ -0,0 +1,15 @@ +{ + "cliContext": { + "sv": "3.0.2", + "locale": "en", + "showTimes": true + }, + "filesToValidate": [ + { + "fileName": "manually_entered_file.json", + "fileContent": "{\n \"resourceType\": \"Observation\",\n \"id\": \"blood-pressure\",\n \"meta\": {\n \"profile\": [\n \"http://hl7.org/fhir/StructureDefinition/vitalsigns\"\n ]\n },\n \"text\": {\n \"status\": \"generated\",\n \"div\": \"

Generated Narrative with Details

id: blood-pressure

meta:

identifier: urn:uuid:187e0c12-8dd2-67e2-99b2-bf273c878281

basedOn:

status: final

category: Vital Signs (Details : {http://terminology.hl7.org/CodeSystem/observation-category code 'vital-signs' = 'Vital Signs', given as 'Vital Signs'})

code: Blood pressure systolic & diastolic (Details : {LOINC code '85354-9' = 'Blood pressure panel with all children optional', given as 'Blood pressure panel with all children optional'})

subject: Patient/example

effective: 17/09/2012

performer: Practitioner/example

interpretation: Below low normal (Details : {http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation code 'L' = 'Low', given as 'low'})

bodySite: Right arm (Details : {SNOMED CT code '368209003' = 'Right upper arm', given as 'Right arm'})

component

code: Systolic blood pressure (Details : {LOINC code '8480-6' = 'Systolic blood pressure', given as 'Systolic blood pressure'}; {SNOMED CT code '271649006' = 'Systolic blood pressure', given as 'Systolic blood pressure'}; {http://acme.org/devices/clinical-codes code 'bp-s' = 'bp-s', given as 'Systolic Blood pressure'})

value: 107 mmHg (Details: UCUM code mm[Hg] = 'mmHg')

interpretation: Normal (Details : {http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation code 'N' = 'Normal', given as 'normal'})

component

code: Diastolic blood pressure (Details : {LOINC code '8462-4' = 'Diastolic blood pressure', given as 'Diastolic blood pressure'})

value: 60 mmHg (Details: UCUM code mm[Hg] = 'mmHg')

interpretation: Below low normal (Details : {http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation code 'L' = 'Low', given as 'low'})

\"\n },\n \"identifier\": [\n {\n \"system\": \"urn:ietf:rfc:3986\",\n \"value\": \"urn:uuid:187e0c12-8dd2-67e2-99b2-bf273c878281\"\n }\n ],\n \"basedOn\": [\n {\n \"identifier\": {\n \"system\": \"https://acme.org/identifiers\",\n \"value\": \"1234\"\n }\n }\n ],\n \"status\": \"final\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"vital-signs\",\n \"display\": \"Vital Signs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"85354-9\",\n \"display\": \"Blood pressure panel with all children optional\"\n }\n ],\n \"text\": \"Blood pressure systolic & diastolic\"\n },\n \"subject\": {\n \"reference\": \"Patient/example\"\n },\n \"effectiveDateTime\": \"2012-09-17\",\n \"performer\": [\n {\n \"reference\": \"Practitioner/example\"\n }\n ],\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"L\",\n \"display\": \"low\"\n }\n ],\n \"text\": \"Below low normal\"\n }\n ],\n \"bodySite\": {\n \"coding\": [\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"368209003\",\n \"display\": \"Right arm\"\n }\n ]\n },\n \"component\": [\n {\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8480-6\",\n \"display\": \"Systolic blood pressure\"\n },\n {\n \"system\": \"http://snomed.info/sct\",\n \"code\": \"271649006\",\n \"display\": \"Systolic blood pressure\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 107,\n \"unit\": \"mmHg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mm[Hg]\"\n },\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"N\",\n \"display\": \"normal\"\n }\n ],\n \"text\": \"Normal\"\n }\n ]\n },\n {\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://loinc.org\",\n \"code\": \"8462-4\",\n \"display\": \"Diastolic blood pressure\"\n }\n ]\n },\n \"valueQuantity\": {\n \"value\": 60,\n \"unit\": \"mmHg\",\n \"system\": \"http://unitsofmeasure.org\",\n \"code\": \"mm[Hg]\"\n },\n \"interpretation\": [\n {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation\",\n \"code\": \"L\",\n \"display\": \"low\"\n }\n ],\n \"text\": \"Below low normal\"\n }\n ]\n }\n ]\n}", + "fileType": null + } + ], + "sessionId": "{{SESSION_2_ID}}" +} \ No newline at end of file diff --git a/http-client-tests/resources/sources/README.md b/http-client-tests/resources/sources/README.md new file mode 100644 index 00000000..ee7c697e --- /dev/null +++ b/http-client-tests/resources/sources/README.md @@ -0,0 +1,36 @@ +These examples are intended to test validation using several pre-defined validation engine bases (IGs, relevant +settings, etc). The test cases are only intended to ensure that the correct settings are being used. The test cases are +not intended to test validation itself, as this is done through fhir-test-cases. + +The contents of these test files are described below: + + +# ccda.xml + +This is a combination of examples. The base of the document is this complete example: + +https://github.com/HL7/CDA-ccda/blob/master/input/examples/care-plan-complete-example.xml + +To minimize the expected errors, the problem list from the following was added to the structured body element: + +https://github.com/HL7/C-CDA-Examples/blob/master/Documents/CCD/CCD%202/CCD.xml + +Validating through CDA and CCDA will give slightly different results. + +# ips.json + +This was taken directly from https://build.fhir.org/ig/HL7/fhir-ips/Bundle-bundle-minimal.json.html + +# iss-nz.json + +This was taken from the confluence page for the NZ IPS: https://confluence.hl7.org/display/HNZ/8.+NZ+Patient+Summary+%28NZPS%29+profiling+test+track?focusedCommentId=208470365 + +Specifically downloaded from this link: https://terminz.azurewebsites.net/fhir/Patient/$summary?profile=http://hl7.org/fhir/uv/ips/StructureDefinition/Bundle-uv-ips&identifier=https://standards.digital.health.nz/ns/nhi-id|ZKT9319&_format=json + +# sql-on-fhir + +This was taken directly from the simple example on https://build.fhir.org/ig/FHIR/sql-on-fhir-v2/ but with the additional +structure and fields required to make it a valid resource. + + + diff --git a/http-client-tests/resources/sources/ccda.xml b/http-client-tests/resources/sources/ccda.xml new file mode 100644 index 00000000..84be5c9e --- /dev/null +++ b/http-client-tests/resources/sources/ccda.xml @@ -0,0 +1,460 @@ + + + + + + + + + + + + + + Good Health Hospital Care Plan + + + + + + + + + + + + + + + 2222 Home Street + Beaverton + OR + 97867 + US + + + + + + + + Eve + + Betterhalf + + + + Eve + + Everywoman + + + + + + + + + + + + + + + 2222 Home Street + Beaverton + OR + 97867 + US + + + + + Boris + Bo + Betterhalf + + + + + + + 4444 Home Street + Beaverton + OR + 97867 + US + + + + + + + + + + + + + + The DoctorsTogether Physician Group + + + 1007 Health Drive + Portland + OR + 99123 + US + + + + + + + + + + + + + 1007 Healthcare Drive + Portland + OR + 99123 + US + + + + + Ellen + Enter + + + + + + + + + + 1007 Healthcare Drive + Portland + OR + 99123 + US + + + + + Harold + Hippocrates + D.O. + + + + + + + + + + Good Health HIE + + + 1009 Healthcare Drive + Portland + OR + 99123 + US + + + + + + + + + + + + + + + 100 Better Health Rd. + Ann Arbor + MI + 97857 + US + + + + + Nurse + Caresalot + RN + + + + + + + + + Better Health Hospital + + + 100 Better Health Rd. + Ann Arbor + MI + 97857 + US + + + + + + + + + + + + + + + + + + + + + + + + + + + + 17 Daws Rd. + Ann Arbor + MI + 97857 + US + + + + + Mrs. + Martha + Jones + + + + + + + + + + 17 Daws Rd. + Ann Arbor + MI + 97857 + US + + + + + Mrs. + Martha + Jones + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + PROBLEMS + No Information +
+
+
+
+
\ No newline at end of file diff --git a/http-client-tests/resources/sources/ips-nz.json b/http-client-tests/resources/sources/ips-nz.json new file mode 100644 index 00000000..45f85982 --- /dev/null +++ b/http-client-tests/resources/sources/ips-nz.json @@ -0,0 +1,3044 @@ +{ + "resourceType": "Bundle", + "id": "NZ-IPS-20231121031219", + "language": "en-NZ", + "identifier": { + "system": "urn:oid:2.16.724.4.8.10.200.10", + "value": "3d5006e9-f003-4a78-a253-40ab405b7ef2" + }, + "type": "document", + "timestamp": "2023-11-21T03:12:19.1242772+00:00", + "entry": [ + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Composition/9b9e4f64-c976-47e9-a8a5-4b9b0484a709", + "resource": { + "resourceType": "Composition", + "id": "9b9e4f64-c976-47e9-a8a5-4b9b0484a709", + "meta": { + "versionId": "1" + }, + "language": "en-NZ", + "text": { + "status": "generated", + "div": "
International Patient Summary for Iosefa Test-Fuimaono
" + }, + "identifier": { + "system": "urn:oid:2.16.840.1.113883.2.18.7.2", + "value": "3d5006e9-f003-4a78-a253-40ab405b7ef2" + }, + "status": "final", + "type": { + "coding": [ + { + "system": "http://loinc.org", + "code": "60591-5", + "display": "Patient summary Document" + } + ] + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "date": "2023-11-21", + "author": [ + { + "reference": "Organization/9c9542df-e45f-4131-9d44-8f5974e56d5b" + } + ], + "title": "International Patient Summary", + "confidentiality": "N", + "attester": [ + { + "mode": "professional", + "time": "2023-11-21", + "party": { + "reference": "PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244" + } + } + ], + "custodian": { + "reference": "Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b" + }, + "relatesTo": [ + { + "code": "transforms", + "targetIdentifier": { + "system": "urn:oid:2.16.840.1.113883.2.18.7.2", + "value": "3d5006e9-f003-4a78-a253-40ab405b7ef2" + } + } + ], + "event": [ + { + "code": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-ActClass", + "code": "PCPR" + } + ] + } + ], + "period": { + "end": "2023-11-21" + } + } + ], + "section": [ + { + "title": "Allergies and Intolerances", + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "48765-2", + "display": "Allergies and adverse reactions Document" + } + ] + }, + "text": { + "status": "generated", + "div": "
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
CodeTypeRecorded OnAsserted ByClinical StatusVerification Status
Flucloxacillin-containing productAllergy\r\n Patient/ZKT9319activeconfirmed
Diazepam-containing productAllergy\r\n Patient/ZKT9319activeconfirmed
\r\n
" + }, + "entry": [ + { + "reference": "AllergyIntolerance/1dfacb6d-4260-4fd4-84e9-a1c13aafa72c" + }, + { + "reference": "AllergyIntolerance/e9b9aeaf-e5ac-4f72-b01d-df4c6107f746" + } + ] + }, + { + "title": "Problem List", + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "11450-4", + "display": "Problem list - Reported" + } + ] + }, + "text": { + "status": "generated", + "div": "
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ConditionCategoryRecorded OnClinical StatusVerification Status
Postconcussion syndromeProblem List Item\r\n activeconfirmed
Diabetes type 2 on insulinProblem List Item\r\n activeconfirmed
GoutProblem List Item\r\n activeconfirmed
Benign essential hypertensionProblem List Item\r\n activeconfirmed
Anxiety disorder due to a general medical conditionProblem List Item\r\n inactiveconfirmed
Fracture of neck of femurProblem List Item\r\n inactiveconfirmed
\r\n
" + }, + "entry": [ + { + "reference": "Condition/2eafb947-e816-4d9f-978b-c91d0dbe4acc" + }, + { + "reference": "Condition/1923f2ca-043b-432c-9eed-404c81474e60" + }, + { + "reference": "Condition/4f40d5e3-9a5f-4e3f-b799-c3378da8e7dd" + }, + { + "reference": "Condition/08992112-ac66-4c66-a803-89f80bb6d2aa" + }, + { + "reference": "Condition/9b54fc7a-8302-45cc-9ff6-e60c623c5bf9" + }, + { + "reference": "Condition/dd40111a-683f-4d72-bccc-3c6848bc0813" + } + ] + }, + { + "title": "Medication Summary", + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "10160-0", + "display": "History of Medication use Narrative" + } + ] + }, + "text": { + "status": "generated", + "div": "
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
DrugStatusEffectiveInstructions
insulin glargine 100 international units/mL injection, 10 mL vialActive2023-02-21Inject 20 units per day into your upper arms, abdomen or thights.You should vary the site where you inject each dose of Lantus. This helps reduce your risk of certain side effects, such as pits or lumps in your skin.
dulaglutide 1.5 mg/0.5 mL injection, prefilled injection deviceActive2023-02-21Inject once a week, on the same day each week, into the skin of your stomach, thigh or upper arm. You can use the same area of your body each time, but choose a different place within that area. You can inject it any time of the day, with or without meals.
metformin hydrochloride 1000 mg tabletActive2023-02-21Take ONE tablet, two times a day, with meals.
amlodipine 5 mg tabletActive2023-02-21Take ONE tablet at any time of day, but try to make sure it's around the same time every day.
losartan potassium 50 mg tabletActive2023-02-21Take ONE tablet daily
aspirin 75 mg tablet: enteric-coatedActive2023-02-21Take ONE tablet daily
allopurinol 300 mg tabletActive2023-02-21Take ONE tablet daily, after meals
\r\n
" + }, + "entry": [ + { + "reference": "MedicationStatement/8ecbe74a-a3fa-4edf-8133-44ca8903a645" + }, + { + "reference": "MedicationStatement/06c4eda2-df30-4231-af09-0135e5f84548" + }, + { + "reference": "MedicationStatement/4b5f40b9-f59c-4090-81b1-4609ac6b7af8" + }, + { + "reference": "MedicationStatement/e19dc087-0055-4feb-a847-72e77cf55a0a" + }, + { + "reference": "MedicationStatement/f7a26186-dd57-420f-95be-c0deeee49367" + }, + { + "reference": "MedicationStatement/b6b49f33-a0e4-4b94-92f3-caa3267ad4f7" + }, + { + "reference": "MedicationStatement/ce2395b9-d7ef-4df0-b38f-fc9be0e44f94" + } + ] + }, + { + "title": "Immunizations", + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "11369-6", + "display": "History of Immunization Narrative" + } + ] + }, + "text": { + "status": "generated", + "div": "
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
VaccineStatusOccuranceRouteDose #Series
SARS-COV-2 (COVID-19) vaccine, mRNA, spike protein, LNP, preservative free, 30 mcg/0.3mL doseCompleted2022-02-01Injection, intramuscular212 (At risk, no previous history)
SARS-COV-2 (COVID-19) vaccine, mRNA, spike protein, LNP, preservative free, 30 mcg/0.3mL doseCompleted2021-08-05Injection, intramuscular112 (At risk, no previous history)
Influenza, seasonal, injectableCompleted2019-05-20Injection, intramuscular11 (Over 65 years (Influenza))
diphtheria, tetanus toxoids and acellular pertussis vaccineCompleted2019-04-24Injection, intramuscular16 (Booster)
tetanus and diphtheria toxoids, not adsorbed, for adult useCompleted2018-04-05Injection, intramuscular16 (Booster)
pneumococcal conjugate vaccine, 13 valentCompleted2015-09-25Injection, intramuscular121 (PCV catch up)
Influenza, seasonal, injectableCompleted2015-05-01Injection, intramuscular11 (Over 65 years (Influenza))
\r\n
" + }, + "entry": [ + { + "reference": "Immunization/998e59d9-a7f4-4503-b08e-85ce9b206b0a" + }, + { + "reference": "Immunization/fc6b3454-527b-4deb-a266-7f52c63d0d3c" + }, + { + "reference": "Immunization/33c971d3-0992-4e93-b904-6325ed4602e3" + }, + { + "reference": "Immunization/12c253d4-20e8-4dd4-935c-fd1ec8a49279" + }, + { + "reference": "Immunization/70308bba-2bc4-4505-ba9b-520f9d3dc30b" + }, + { + "reference": "Immunization/acd3a963-0985-4679-a126-8eb9ed981d36" + }, + { + "reference": "Immunization/bae44614-43cc-4df4-94b3-c26d34b0ea37" + } + ] + }, + { + "title": "Procedures", + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "47519-4", + "display": "History of Procedures Document" + } + ] + }, + "text": { + "status": "generated", + "div": "
Date(s) Procedure Location Performer Comments
01/09/2020 to 01/09/2020 Operative procedure on hip Waikato Hospital
31/03/2018 to 31/03/2018 Hand closure Samoa
" + }, + "entry": [ + { + "reference": "Procedure/8414198c-a43b-4ef1-b06f-3b39fb4b39cc" + }, + { + "reference": "Procedure/1096ab80-e982-41b3-85c2-8e1d2466d147" + } + ] + }, + { + "title": "Results", + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "30954-2", + "display": "Relevant diagnostic tests/laboratory data Narrative" + } + ] + }, + "text": { + "status": "generated", + "div": "
Result Group: Lipids Result Date: 05 Mar 2023 00:00 Result Status: completed
Result Name Value Reference Range Abnormal Indicator Comments
Total cholesterol:HDL ratio 5.1 mmol/L <4 mmol/L (high risk) H
HDL Cholesterol 1.5 mmol/L >1 mmol/L N
LDL Cholesterol 3.4 mmol/L <1.8 mmol/L H
Result Group: HbA1C Result Date: 05 Mar 2023 00:00 Result Status: completed
Result Name Value Reference Range Abnormal Indicator Comments
HbA1c 60 mmol/mol 50 – 55 mmol/mol (diabetes) H
" + }, + "entry": [ + { + "reference": "Observation/2f3ad263-1b4e-443b-95ca-66d2abb6e927" + }, + { + "reference": "Observation/fe53810f-a341-4093-a959-4048ad62f85b" + }, + { + "reference": "Observation/6adb76b4-73f3-4552-87a6-09ac3dc1f558" + }, + { + "reference": "DiagnosticReport/9e0d995f-a78d-45f4-b3aa-23037972a3e6" + }, + { + "reference": "Observation/63ad8984-003c-4e44-bc56-31dd6abc0897" + }, + { + "reference": "DiagnosticReport/2da4116e-7158-4d59-b6c4-873b37f7d65f" + } + ] + }, + { + "title": "Vital Signs", + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "8716-3", + "display": "Vital signs" + } + ] + }, + "text": { + "status": "generated", + "div": "
Result Group: Vital signs, weight, height, head circumference, oxygen saturation and BMI panel Result Date: 29 Sep 2023 00:00 Result Status: completed
Result Name Value
Body temperature 37.5 C
Heart rate 84 beats/minute
Respiratory rate 18 breaths/minute
Systolic blood pressure 136 mm[Hg]
Diastolic blood pressure 88 mm[Hg]
Body height 1.84 cm
Body weight 104 kg
Result Group: Vital signs, weight, height, head circumference, oxygen saturation and BMI panel Result Date: 05 Mar 2023 00:00 Result Status: completed
Result Name Value
Body temperature 37.2 C
Heart rate 86 beats/minute
Respiratory rate 14 breaths/minute
Systolic blood pressure 130 mm[Hg]
Diastolic blood pressure 82 mm[Hg]
Body weight 103 kg
" + }, + "entry": [ + { + "reference": "Observation/6f64547c-89a3-459d-a993-b89e995c1f14" + }, + { + "reference": "Observation/da3bbb11-e485-4396-a25c-611354789c65" + }, + { + "reference": "Observation/5dead0bd-80c7-42f7-9720-3aaf047eb89b" + }, + { + "reference": "Observation/126f25f0-d921-4d9a-85a2-5b847cfb89fb" + }, + { + "reference": "Observation/cf628f81-f66b-42a7-a33a-c5d38a604861" + }, + { + "reference": "Observation/dd309bef-3b36-4422-a202-39d040113a5d" + }, + { + "reference": "Observation/4c5e0a16-2e2c-47cc-8e1d-a87afee4d6f1" + }, + { + "reference": "Observation/eda3092b-5228-420b-b0ce-f5eb77e73942" + }, + { + "reference": "Observation/2d420435-f380-46e1-ad93-b9fef57f4b71" + }, + { + "reference": "Observation/7a422837-80f5-4fa6-b3ac-8a0e44b99356" + }, + { + "reference": "Observation/af9ae822-ae5d-4bec-88bf-4dd250350783" + } + ] + }, + { + "title": "Social History", + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "29762-2", + "display": "Social history Narrative" + } + ] + }, + "text": { + "status": "generated", + "div": "
Type Item Date(s) Comment
other Worked as a forestry worker. Worked as a forestry worker. Was always physically active until 2020 fall.Has had subsequent falls. Now depends on a walker or scooter.
smoking Ex-smoker 30/06/2005 30 - pack - year smoking history, quit smoking ~2005.
" + }, + "entry": [ + { + "reference": "Observation/33624327-7e1b-4912-bca1-2d0c8d36b952" + } + ] + }, + { + "title": "Functional Status", + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "47420-5", + "display": "Functional status assessment note" + } + ] + }, + "text": { + "status": "generated", + "div": "
Functional Condition Effective Dates Condition Status
Often confused, struggles to communicate in English Active
Depends on a walking frame or electric scooter to get around. Active
Doesn’t leave the house much. Active
Relies on caregiver Cindy for assistance with many activities of daily living. Active
Family has made the decision to transfer Iosefa to residential care soon, arrangements currently being finalised. Active
" + }, + "entry": [ + { + "reference": "Condition/4464bdfe-dc87-4179-a10d-2884c975a6eb" + }, + { + "reference": "Condition/f0982a2a-8eb2-4b1a-9e73-6a82d2102003" + }, + { + "reference": "Condition/94c0216a-183b-45e9-9e98-f244ac0b4d4f" + }, + { + "reference": "Condition/14863bd8-1d6d-4c85-9bcc-1b33699908c4" + }, + { + "reference": "Condition/b008f275-c141-4cd5-b1bb-46c399eaf42d" + } + ] + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Patient/ZKT9319", + "resource": { + "resourceType": "Patient", + "id": "ZKT9319", + "text": { + "status": "generated", + "div": "
Name: Iosefa Test-Fuimaono
" + }, + "identifier": [ + { + "system": "https://standards.digital.health.nz/ns/nhi-id", + "value": "ZKT9319" + } + ], + "name": [ + { + "use": "usual", + "family": "Test-Fuimaono", + "given": [ + "Iosefa" + ] + } + ], + "gender": "male", + "birthDate": "1950-07-04", + "address": [ + { + "use": "home", + "type": "physical", + "line": [ + "Flat 1", + "1 Brooklyn Road", + "Claudelands" + ], + "city": "Hamilton", + "postalCode": "3214", + "country": "NZ" + } + ], + "maritalStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-MaritalStatus", + "code": "W", + "display": "Widowed" + } + ] + }, + "contact": [ + { + "relationship": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v2-0131", + "code": "N", + "display": "Next-of-Kin" + } + ] + } + ], + "name": { + "use": "usual", + "family": "Test-Fuimaono", + "given": [ + "Cindy", + "Test-Fuimaono" + ] + }, + "telecom": [ + { + "system": "phone", + "value": "021 111111", + "use": "mobile" + } + ], + "address": { + "use": "home", + "type": "physical", + "line": [ + "Flat 1", + "1 Brooklyn Road", + "Claudelands" + ], + "city": "Hamilton", + "postalCode": "3214", + "country": "NZ" + } + }, + { + "relationship": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v2-0131", + "code": "C", + "display": "Emergency Contact" + } + ] + } + ], + "name": { + "use": "usual", + "family": "Test-Fuimaono", + "given": [ + "Cindy", + "Test-Fuimaono" + ] + }, + "telecom": [ + { + "system": "phone", + "value": "021 111111", + "use": "mobile" + } + ], + "address": { + "use": "home", + "type": "physical", + "line": [ + "Flat 1", + "1 Brooklyn Road", + "Claudelands" + ], + "city": "Hamilton", + "postalCode": "3214", + "country": "NZ" + } + } + ], + "communication": [ + { + "language": { + "text": "en-NZ" + } + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Organization/9c9542df-e45f-4131-9d44-8f5974e56d5b", + "resource": { + "resourceType": "Organization", + "id": "9c9542df-e45f-4131-9d44-8f5974e56d5b", + "text": { + "status": "generated", + "div": "
Name: Fairfield Medical Centre
" + }, + "identifier": [ + { + "system": "https://standards.digital.health.nz/ns/hpi-facility-id", + "value": "F0U044-C" + } + ], + "name": "Fairfield Medical Centre" + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244", + "resource": { + "resourceType": "PractitionerRole", + "id": "c9288aea-5e73-4182-8231-aacbe50d3244", + "text": { + "status": "generated", + "div": "
Role: Doctor
" + }, + "practitioner": { + "reference": "Practitioner/4d4b76bf-55b5-40b8-a130-99ea24a84c23" + }, + "code": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "158965000", + "display": "Doctor" + } + ] + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Practitioner/4d4b76bf-55b5-40b8-a130-99ea24a84c23", + "resource": { + "resourceType": "Practitioner", + "id": "4d4b76bf-55b5-40b8-a130-99ea24a84c23", + "text": { + "status": "generated", + "div": "
Name: Dr James Test-Smith
" + }, + "name": [ + { + "use": "usual", + "family": "Test-Smith", + "given": [ + "Dr", + "James", + "Test-Smith" + ] + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b", + "resource": { + "resourceType": "Organization", + "id": "644f2fb9-c264-4c32-898b-4048dddd6d1b", + "text": { + "status": "generated", + "div": "
Name: Fairfield Medical Centre
" + }, + "identifier": [ + { + "system": "https://standards.digital.health.nz/ns/hpi-facility-id", + "value": "F0U044-C" + } + ], + "name": "Fairfield Medical Centre" + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Location/F05076-A", + "resource": { + "resourceType": "Location", + "id": "F05076-A", + "text": { + "status": "generated", + "div": "
\r\n

Waikato Hospital

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
IdentifierF05076-A
Identifier Systemhttps://standards.digital.health.nz/ns/hpi-facility-id
StatusActive
ModeInstance
TypeLocation
Address183 Pembroke Street, Waikato Hospital, Hamilton 3204
\r\n
" + }, + "identifier": [ + { + "system": "https://standards.digital.health.nz/ns/hpi-facility-id", + "value": "F05076-A" + } + ], + "status": "active", + "name": "Waikato Hospital" + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/AllergyIntolerance/1dfacb6d-4260-4fd4-84e9-a1c13aafa72c", + "resource": { + "resourceType": "AllergyIntolerance", + "id": "1dfacb6d-4260-4fd4-84e9-a1c13aafa72c", + "text": { + "status": "generated", + "div": "
Flucloxacillin-containing product (Penicillin adverse reaction)
" + }, + "clinicalStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical", + "code": "active" + } + ] + }, + "verificationStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-verification", + "code": "confirmed" + } + ] + }, + "type": "allergy", + "category": [ + "medication" + ], + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "96067005", + "display": "Flucloxacillin-containing product" + } + ] + }, + "patient": { + "reference": "Patient/ZKT9319" + }, + "asserter": { + "reference": "Patient/ZKT9319" + }, + "reaction": [ + { + "manifestation": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "292954005", + "display": "Penicillin adverse reaction" + } + ] + } + ] + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/AllergyIntolerance/e9b9aeaf-e5ac-4f72-b01d-df4c6107f746", + "resource": { + "resourceType": "AllergyIntolerance", + "id": "e9b9aeaf-e5ac-4f72-b01d-df4c6107f746", + "text": { + "status": "generated", + "div": "
Diazepam-containing product (Diazepam adverse reaction)
" + }, + "clinicalStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical", + "code": "active" + } + ] + }, + "verificationStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-verification", + "code": "confirmed" + } + ] + }, + "type": "allergy", + "category": [ + "medication" + ], + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "48546005", + "display": "Diazepam-containing product" + } + ] + }, + "patient": { + "reference": "Patient/ZKT9319" + }, + "asserter": { + "reference": "Patient/ZKT9319" + }, + "reaction": [ + { + "manifestation": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "292360004", + "display": "Diazepam adverse reaction" + } + ] + } + ] + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Condition/2eafb947-e816-4d9f-978b-c91d0dbe4acc", + "resource": { + "resourceType": "Condition", + "id": "2eafb947-e816-4d9f-978b-c91d0dbe4acc", + "text": { + "status": "generated", + "div": "
Postconcussion
" + }, + "clinicalStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "active" + } + ] + }, + "verificationStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-ver-status", + "code": "confirmed" + } + ] + }, + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-category", + "code": "problem-list-item", + "display": "Problem List Item" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "40425004", + "display": "Postconcussion syndrome" + } + ] + }, + "subject": { + "reference": "Patient/ZKT9319" + } + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Condition/1923f2ca-043b-432c-9eed-404c81474e60", + "resource": { + "resourceType": "Condition", + "id": "1923f2ca-043b-432c-9eed-404c81474e60", + "text": { + "status": "generated", + "div": "
Diabetes type 2 on insulin
" + }, + "clinicalStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "active" + } + ] + }, + "verificationStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-ver-status", + "code": "confirmed" + } + ] + }, + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-category", + "code": "problem-list-item", + "display": "Problem List Item" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "237599002", + "display": "Diabetes type 2 on insulin" + } + ] + }, + "subject": { + "reference": "Patient/ZKT9319" + } + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Condition/4f40d5e3-9a5f-4e3f-b799-c3378da8e7dd", + "resource": { + "resourceType": "Condition", + "id": "4f40d5e3-9a5f-4e3f-b799-c3378da8e7dd", + "text": { + "status": "generated", + "div": "
Gout
" + }, + "clinicalStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "active" + } + ] + }, + "verificationStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-ver-status", + "code": "confirmed" + } + ] + }, + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-category", + "code": "problem-list-item", + "display": "Problem List Item" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "90560007", + "display": "Gout" + } + ] + }, + "subject": { + "reference": "Patient/ZKT9319" + } + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Condition/08992112-ac66-4c66-a803-89f80bb6d2aa", + "resource": { + "resourceType": "Condition", + "id": "08992112-ac66-4c66-a803-89f80bb6d2aa", + "text": { + "status": "generated", + "div": "
Benign essential hypertension
" + }, + "clinicalStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "active" + } + ] + }, + "verificationStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-ver-status", + "code": "confirmed" + } + ] + }, + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-category", + "code": "problem-list-item", + "display": "Problem List Item" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "1201005", + "display": "Benign essential hypertension" + } + ] + }, + "subject": { + "reference": "Patient/ZKT9319" + } + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Condition/9b54fc7a-8302-45cc-9ff6-e60c623c5bf9", + "resource": { + "resourceType": "Condition", + "id": "9b54fc7a-8302-45cc-9ff6-e60c623c5bf9", + "text": { + "status": "generated", + "div": "
Anxiety disorder due to a general medical condition
" + }, + "clinicalStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "inactive" + } + ] + }, + "verificationStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-ver-status", + "code": "confirmed" + } + ] + }, + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-category", + "code": "problem-list-item", + "display": "Problem List Item" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "52910006", + "display": "Anxiety disorder due to a general medical condition" + } + ] + }, + "subject": { + "reference": "Patient/ZKT9319" + } + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Condition/dd40111a-683f-4d72-bccc-3c6848bc0813", + "resource": { + "resourceType": "Condition", + "id": "dd40111a-683f-4d72-bccc-3c6848bc0813", + "text": { + "status": "generated", + "div": "
Fracture of neck of femur
" + }, + "clinicalStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "inactive" + } + ] + }, + "verificationStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-ver-status", + "code": "confirmed" + } + ] + }, + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-category", + "code": "problem-list-item", + "display": "Problem List Item" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "5913000", + "display": "Fracture of neck of femur" + } + ] + }, + "subject": { + "reference": "Patient/ZKT9319" + } + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Condition/4464bdfe-dc87-4179-a10d-2884c975a6eb", + "resource": { + "resourceType": "Condition", + "id": "4464bdfe-dc87-4179-a10d-2884c975a6eb", + "text": { + "status": "generated", + "div": "
Often confused, struggles to communicate in English
" + }, + "clinicalStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "active" + } + ] + }, + "code": { + "text": "Often confused, struggles to communicate in English" + }, + "subject": { + "reference": "Patient/ZKT9319" + } + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Condition/f0982a2a-8eb2-4b1a-9e73-6a82d2102003", + "resource": { + "resourceType": "Condition", + "id": "f0982a2a-8eb2-4b1a-9e73-6a82d2102003", + "text": { + "status": "generated", + "div": "
Depends on a walking frame or electric scooter to get around.
" + }, + "clinicalStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "active" + } + ] + }, + "code": { + "text": "Depends on a walking frame or electric scooter to get around." + }, + "subject": { + "reference": "Patient/ZKT9319" + } + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Condition/94c0216a-183b-45e9-9e98-f244ac0b4d4f", + "resource": { + "resourceType": "Condition", + "id": "94c0216a-183b-45e9-9e98-f244ac0b4d4f", + "text": { + "status": "generated", + "div": "
Doesn’t leave the house much.
" + }, + "clinicalStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "active" + } + ] + }, + "code": { + "text": "Doesn’t leave the house much." + }, + "subject": { + "reference": "Patient/ZKT9319" + } + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Condition/14863bd8-1d6d-4c85-9bcc-1b33699908c4", + "resource": { + "resourceType": "Condition", + "id": "14863bd8-1d6d-4c85-9bcc-1b33699908c4", + "text": { + "status": "generated", + "div": "
Relies on caregiver Cindy for assistance with many activities of daily living.
" + }, + "clinicalStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "active" + } + ] + }, + "code": { + "text": "Relies on caregiver Cindy for assistance with many activities of daily living." + }, + "subject": { + "reference": "Patient/ZKT9319" + } + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Condition/b008f275-c141-4cd5-b1bb-46c399eaf42d", + "resource": { + "resourceType": "Condition", + "id": "b008f275-c141-4cd5-b1bb-46c399eaf42d", + "text": { + "status": "generated", + "div": "
Family has made the decision to transfer Iosefa to residential care soon, arrangements currently being finalised.
" + }, + "clinicalStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "active" + } + ] + }, + "code": { + "text": "Family has made the decision to transfer Iosefa to residential care soon, arrangements currently being finalised." + }, + "subject": { + "reference": "Patient/ZKT9319" + } + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/MedicationStatement/8ecbe74a-a3fa-4edf-8133-44ca8903a645", + "resource": { + "resourceType": "MedicationStatement", + "id": "8ecbe74a-a3fa-4edf-8133-44ca8903a645", + "text": { + "status": "generated", + "div": "
10368421000116106 (insulin glargine 100 international units/mL injection, 10 mL vial)
" + }, + "status": "active", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "126212009", + "display": "Product containing insulin glargine (medicinal product)" + } + ], + "text": "insulin glargine 100 international units/mL injection, 10 mL vial" + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-02-21", + "informationSource": { + "reference": "Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b" + }, + "dosage": [ + { + "text": "Inject 20 units per day into your upper arms, abdomen or thights.You should vary the site where you inject each dose of Lantus. This helps reduce your risk of certain side effects, such as pits or lumps in your skin.", + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/dose-rate-type", + "code": "ordered", + "display": "Ordered" + } + ] + }, + "doseQuantity": { + "value": 1, + "unit": "unit", + "system": "http://snomed.info/sct", + "code": "767525000" + } + } + ] + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/MedicationStatement/06c4eda2-df30-4231-af09-0135e5f84548", + "resource": { + "resourceType": "MedicationStatement", + "id": "06c4eda2-df30-4231-af09-0135e5f84548", + "text": { + "status": "generated", + "div": "
47230201000116108 (dulaglutide 1.5 mg/0.5 mL injection, prefilled injection device)
" + }, + "status": "active", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "714081009", + "display": "Product containing dulaglutide (medicinal product)" + } + ], + "text": "dulaglutide 1.5 mg/0.5 mL injection, prefilled injection device" + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-02-21", + "informationSource": { + "reference": "Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b" + }, + "dosage": [ + { + "text": "Inject once a week, on the same day each week, into the skin of your stomach, thigh or upper arm. You can use the same area of your body each time, but choose a different place within that area. You can inject it any time of the day, with or without meals.", + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "34206005", + "display": "subcutaneous route" + } + ] + }, + "doseAndRate": [ + { + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/dose-rate-type", + "code": "ordered", + "display": "Ordered" + } + ] + } + } + ] + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/MedicationStatement/4b5f40b9-f59c-4090-81b1-4609ac6b7af8", + "resource": { + "resourceType": "MedicationStatement", + "id": "4b5f40b9-f59c-4090-81b1-4609ac6b7af8", + "text": { + "status": "generated", + "div": "
44221701000116102 (metformin hydrochloride 1000 mg tablet)
" + }, + "status": "active", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "109081006", + "display": "Product containing metformin (medicinal product)" + } + ], + "text": "metformin hydrochloride 1000 mg tablet" + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-02-21", + "informationSource": { + "reference": "Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b" + }, + "dosage": [ + { + "text": "Take ONE tablet, two times a day, with meals.", + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral route" + } + ] + }, + "doseAndRate": [ + { + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/dose-rate-type", + "code": "ordered", + "display": "Ordered" + } + ] + }, + "doseQuantity": { + "value": 1, + "unit": "Tablet - unit of product usage", + "system": "http://snomed.info/sct", + "code": "428673006" + } + } + ] + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/MedicationStatement/e19dc087-0055-4feb-a847-72e77cf55a0a", + "resource": { + "resourceType": "MedicationStatement", + "id": "e19dc087-0055-4feb-a847-72e77cf55a0a", + "text": { + "status": "generated", + "div": "
10109621000116108 (amlodipine 5 mg tablet)
" + }, + "status": "active", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "108537001", + "display": "Product containing amlodipine (medicinal product)" + } + ], + "text": "amlodipine 5 mg tablet" + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-02-21", + "informationSource": { + "reference": "Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b" + }, + "dosage": [ + { + "text": "Take ONE tablet at any time of day, but try to make sure it's around the same time every day.", + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral route" + } + ] + }, + "doseAndRate": [ + { + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/dose-rate-type", + "code": "ordered", + "display": "Ordered" + } + ] + }, + "doseQuantity": { + "value": 1, + "unit": "Tablet - unit of product usage", + "system": "http://snomed.info/sct", + "code": "428673006" + } + } + ] + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/MedicationStatement/f7a26186-dd57-420f-95be-c0deeee49367", + "resource": { + "resourceType": "MedicationStatement", + "id": "f7a26186-dd57-420f-95be-c0deeee49367", + "text": { + "status": "generated", + "div": "
10195211000116102 (losartan potassium 50 mg tablet)
" + }, + "status": "active", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "96309000", + "display": "Product containing losartan (medicinal product)" + } + ], + "text": "losartan potassium 50 mg tablet" + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-02-21", + "informationSource": { + "reference": "Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b" + }, + "dosage": [ + { + "text": "Take ONE tablet daily", + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral route" + } + ] + }, + "doseAndRate": [ + { + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/dose-rate-type", + "code": "ordered", + "display": "Ordered" + } + ] + }, + "doseQuantity": { + "value": 1, + "unit": "Tablet - unit of product usage", + "system": "http://snomed.info/sct", + "code": "428673006" + } + } + ] + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/MedicationStatement/b6b49f33-a0e4-4b94-92f3-caa3267ad4f7", + "resource": { + "resourceType": "MedicationStatement", + "id": "b6b49f33-a0e4-4b94-92f3-caa3267ad4f7", + "text": { + "status": "generated", + "div": "
10077081000116106 (aspirin 75 mg tablet: enteric-coated)
" + }, + "status": "active", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "7947003", + "display": "Product containing aspirin (medicinal product)" + } + ], + "text": "aspirin 75 mg tablet: enteric-coated" + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-02-21", + "informationSource": { + "reference": "Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b" + }, + "dosage": [ + { + "text": "Take ONE tablet daily", + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral route" + } + ] + }, + "doseAndRate": [ + { + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/dose-rate-type", + "code": "ordered", + "display": "Ordered" + } + ] + }, + "doseQuantity": { + "value": 1, + "unit": "Tablet - unit of product usage", + "system": "http://snomed.info/sct", + "code": "428673006" + } + } + ] + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/MedicationStatement/ce2395b9-d7ef-4df0-b38f-fc9be0e44f94", + "resource": { + "resourceType": "MedicationStatement", + "id": "ce2395b9-d7ef-4df0-b38f-fc9be0e44f94", + "text": { + "status": "generated", + "div": "
10030521000116104 (allopurinol 300 mg tablet)
" + }, + "status": "active", + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "25246002", + "display": "Product containing allopurinol (medicinal product)" + } + ], + "text": "allopurinol 300 mg tablet" + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-02-21", + "informationSource": { + "reference": "Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b" + }, + "dosage": [ + { + "text": "Take ONE tablet daily, after meals", + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "26643006", + "display": "Oral route" + } + ] + }, + "doseAndRate": [ + { + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/dose-rate-type", + "code": "ordered", + "display": "Ordered" + } + ] + }, + "doseQuantity": { + "value": 1, + "unit": "Tablet - unit of product usage", + "system": "http://snomed.info/sct", + "code": "428673006" + } + } + ] + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Immunization/998e59d9-a7f4-4503-b08e-85ce9b206b0a", + "resource": { + "resourceType": "Immunization", + "id": "998e59d9-a7f4-4503-b08e-85ce9b206b0a", + "text": { + "status": "generated", + "div": "
208 (Pfizer/BioNtech)
" + }, + "status": "completed", + "vaccineCode": { + "coding": [ + { + "system": "http://hl7.org/fhir/sid/cvx", + "code": "208", + "display": "SARS-COV-2 (COVID-19) vaccine, mRNA, spike protein, LNP, preservative free, 30 mcg/0.3mL dose" + } + ] + }, + "patient": { + "reference": "Patient/ZKT9319" + }, + "occurrenceDateTime": "2022-02-01", + "site": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "16217701000119102", + "display": "Structure of left deltoid muscle" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration", + "code": "IM", + "display": "Injection, intramuscular" + } + ] + }, + "performer": [ + { + "actor": { + "reference": "Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b" + } + } + ], + "protocolApplied": [ + { + "series": "12 (At risk, no previous history)", + "doseNumberPositiveInt": 2 + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Immunization/fc6b3454-527b-4deb-a266-7f52c63d0d3c", + "resource": { + "resourceType": "Immunization", + "id": "fc6b3454-527b-4deb-a266-7f52c63d0d3c", + "text": { + "status": "generated", + "div": "
208 (Pfizer/BioNtech)
" + }, + "status": "completed", + "vaccineCode": { + "coding": [ + { + "system": "http://hl7.org/fhir/sid/cvx", + "code": "208", + "display": "SARS-COV-2 (COVID-19) vaccine, mRNA, spike protein, LNP, preservative free, 30 mcg/0.3mL dose" + } + ] + }, + "patient": { + "reference": "Patient/ZKT9319" + }, + "occurrenceDateTime": "2021-08-05", + "site": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "16217701000119102", + "display": "Structure of left deltoid muscle" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration", + "code": "IM", + "display": "Injection, intramuscular" + } + ] + }, + "performer": [ + { + "actor": { + "reference": "Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b" + } + } + ], + "protocolApplied": [ + { + "series": "12 (At risk, no previous history)", + "doseNumberPositiveInt": 1 + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Immunization/33c971d3-0992-4e93-b904-6325ed4602e3", + "resource": { + "resourceType": "Immunization", + "id": "33c971d3-0992-4e93-b904-6325ed4602e3", + "text": { + "status": "generated", + "div": "
99006 (Influenza)
" + }, + "status": "completed", + "vaccineCode": { + "coding": [ + { + "system": "http://hl7.org/fhir/sid/cvx", + "code": "141", + "display": "Influenza, seasonal, injectable" + } + ] + }, + "patient": { + "reference": "Patient/ZKT9319" + }, + "occurrenceDateTime": "2019-05-20", + "site": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "16217701000119102", + "display": "Structure of left deltoid muscle" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration", + "code": "IM", + "display": "Injection, intramuscular" + } + ] + }, + "performer": [ + { + "actor": { + "reference": "Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b" + } + } + ], + "protocolApplied": [ + { + "series": "1 (Over 65 years (Influenza))", + "doseNumberPositiveInt": 1 + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Immunization/12c253d4-20e8-4dd4-935c-fd1ec8a49279", + "resource": { + "resourceType": "Immunization", + "id": "12c253d4-20e8-4dd4-935c-fd1ec8a49279", + "text": { + "status": "generated", + "div": "
20 (DTaP)
" + }, + "status": "completed", + "vaccineCode": { + "coding": [ + { + "system": "http://hl7.org/fhir/sid/cvx", + "code": "20", + "display": "diphtheria, tetanus toxoids and acellular pertussis vaccine" + } + ] + }, + "patient": { + "reference": "Patient/ZKT9319" + }, + "occurrenceDateTime": "2019-04-24", + "site": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "16217701000119102", + "display": "Structure of left deltoid muscle" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration", + "code": "IM", + "display": "Injection, intramuscular" + } + ] + }, + "performer": [ + { + "actor": { + "reference": "Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b" + } + } + ], + "protocolApplied": [ + { + "series": "6 (Booster)", + "doseNumberPositiveInt": 1 + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Immunization/70308bba-2bc4-4505-ba9b-520f9d3dc30b", + "resource": { + "resourceType": "Immunization", + "id": "70308bba-2bc4-4505-ba9b-520f9d3dc30b", + "text": { + "status": "generated", + "div": "
[Tetanus booster (given as DT)]
" + }, + "status": "completed", + "vaccineCode": { + "coding": [ + { + "system": "http://hl7.org/fhir/sid/cvx", + "code": "138", + "display": "tetanus and diphtheria toxoids, not adsorbed, for adult use" + } + ] + }, + "patient": { + "reference": "Patient/ZKT9319" + }, + "occurrenceDateTime": "2018-04-05", + "site": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "16217701000119102", + "display": "Structure of left deltoid muscle" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration", + "code": "IM", + "display": "Injection, intramuscular" + } + ] + }, + "performer": [ + { + "actor": { + "reference": "Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b" + } + } + ], + "protocolApplied": [ + { + "series": "6 (Booster)", + "doseNumberPositiveInt": 1 + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Immunization/acd3a963-0985-4679-a126-8eb9ed981d36", + "resource": { + "resourceType": "Immunization", + "id": "acd3a963-0985-4679-a126-8eb9ed981d36", + "text": { + "status": "generated", + "div": "
133 (PCV13)
" + }, + "status": "completed", + "vaccineCode": { + "coding": [ + { + "system": "http://hl7.org/fhir/sid/cvx", + "code": "133", + "display": "pneumococcal conjugate vaccine, 13 valent" + } + ] + }, + "patient": { + "reference": "Patient/ZKT9319" + }, + "occurrenceDateTime": "2015-09-25", + "site": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "16217701000119102", + "display": "Structure of left deltoid muscle" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration", + "code": "IM", + "display": "Injection, intramuscular" + } + ] + }, + "performer": [ + { + "actor": { + "reference": "Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b" + } + } + ], + "protocolApplied": [ + { + "series": "21 (PCV catch up)", + "doseNumberPositiveInt": 1 + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Immunization/bae44614-43cc-4df4-94b3-c26d34b0ea37", + "resource": { + "resourceType": "Immunization", + "id": "bae44614-43cc-4df4-94b3-c26d34b0ea37", + "text": { + "status": "generated", + "div": "
99006 (Influenza)
" + }, + "status": "completed", + "vaccineCode": { + "coding": [ + { + "system": "http://hl7.org/fhir/sid/cvx", + "code": "141", + "display": "Influenza, seasonal, injectable" + } + ] + }, + "patient": { + "reference": "Patient/ZKT9319" + }, + "occurrenceDateTime": "2015-05-01", + "site": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "16217701000119102", + "display": "Structure of left deltoid muscle" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration", + "code": "IM", + "display": "Injection, intramuscular" + } + ] + }, + "performer": [ + { + "actor": { + "reference": "Organization/644f2fb9-c264-4c32-898b-4048dddd6d1b" + } + } + ], + "protocolApplied": [ + { + "series": "1 (Over 65 years (Influenza))", + "doseNumberPositiveInt": 1 + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Procedure/8414198c-a43b-4ef1-b06f-3b39fb4b39cc", + "resource": { + "resourceType": "Procedure", + "id": "8414198c-a43b-4ef1-b06f-3b39fb4b39cc", + "text": { + "status": "generated", + "div": "
Operative procedure on hip
" + }, + "status": "unknown", + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "265132005", + "display": "Primary open reduction and internal fixation of proximal femoral fracture with screw/nail and plate device" + } + ], + "text": "Operative procedure on hip" + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "performedDateTime": "2020-09-01", + "location": { + "reference": "Location/F05076-A" + } + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Procedure/1096ab80-e982-41b3-85c2-8e1d2466d147", + "resource": { + "resourceType": "Procedure", + "id": "1096ab80-e982-41b3-85c2-8e1d2466d147", + "text": { + "status": "generated", + "div": "
Hand closure
" + }, + "status": "unknown", + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "287903004", + "display": "Suturing of hand" + } + ], + "text": "Hand closure" + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "performedDateTime": "2018-03-31" + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/DiagnosticReport/9e0d995f-a78d-45f4-b3aa-23037972a3e6", + "resource": { + "resourceType": "DiagnosticReport", + "id": "9e0d995f-a78d-45f4-b3aa-23037972a3e6", + "text": { + "status": "generated", + "div": "
[Lipids]
" + }, + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v2-0074", + "code": "LAB", + "display": "Laboratory" + } + ] + } + ], + "code": { + "text": "[Lipids]" + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-03-05T00:00:00+00:00", + "result": [ + { + "reference": "Observation/2f3ad263-1b4e-443b-95ca-66d2abb6e927" + }, + { + "reference": "Observation/fe53810f-a341-4093-a959-4048ad62f85b" + }, + { + "reference": "Observation/6adb76b4-73f3-4552-87a6-09ac3dc1f558" + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/DiagnosticReport/2da4116e-7158-4d59-b6c4-873b37f7d65f", + "resource": { + "resourceType": "DiagnosticReport", + "id": "2da4116e-7158-4d59-b6c4-873b37f7d65f", + "text": { + "status": "generated", + "div": "
[HbA1C]
" + }, + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v2-0074", + "code": "LAB", + "display": "Laboratory" + } + ] + } + ], + "code": { + "text": "[HbA1C]" + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-03-05T00:00:00+00:00", + "result": [ + { + "reference": "Observation/63ad8984-003c-4e44-bc56-31dd6abc0897" + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Observation/2f3ad263-1b4e-443b-95ca-66d2abb6e927", + "resource": { + "resourceType": "Observation", + "id": "2f3ad263-1b4e-443b-95ca-66d2abb6e927", + "text": { + "status": "generated", + "div": "
[Total cholesterol:HDL ratio]
" + }, + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory" + } + ] + } + ], + "code": { + "text": "[Total cholesterol:HDL ratio]" + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-03-05T00:00:00+00:00", + "performer": [ + { + "reference": "PractitionerRole/8363e64e-f639-4f55-bd3c-6302bf87a6d3" + } + ], + "valueQuantity": { + "value": 5.1, + "unit": "mmol/L", + "system": "http://unitsofmeasure.org", + "code": "mmol/L" + }, + "interpretation": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation", + "code": "H", + "display": "High" + } + ] + } + ], + "referenceRange": [ + { + "text": "<4 mmol/L (high risk)" + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Observation/fe53810f-a341-4093-a959-4048ad62f85b", + "resource": { + "resourceType": "Observation", + "id": "fe53810f-a341-4093-a959-4048ad62f85b", + "text": { + "status": "generated", + "div": "
[HDL Cholesterol]
" + }, + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory" + } + ] + } + ], + "code": { + "text": "[HDL Cholesterol]" + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-03-05T00:00:00+00:00", + "performer": [ + { + "reference": "PractitionerRole/8363e64e-f639-4f55-bd3c-6302bf87a6d3" + } + ], + "valueQuantity": { + "value": 1.5, + "unit": "mmol/L", + "system": "http://unitsofmeasure.org", + "code": "mmol/L" + }, + "interpretation": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation", + "code": "N", + "display": "Normal" + } + ] + } + ], + "referenceRange": [ + { + "text": ">1 mmol/L" + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Observation/6adb76b4-73f3-4552-87a6-09ac3dc1f558", + "resource": { + "resourceType": "Observation", + "id": "6adb76b4-73f3-4552-87a6-09ac3dc1f558", + "text": { + "status": "generated", + "div": "
[LDL Cholesterol]
" + }, + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory" + } + ] + } + ], + "code": { + "text": "[LDL Cholesterol]" + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-03-05T00:00:00+00:00", + "performer": [ + { + "reference": "PractitionerRole/8363e64e-f639-4f55-bd3c-6302bf87a6d3" + } + ], + "valueQuantity": { + "value": 3.4, + "unit": "mmol/L", + "system": "http://unitsofmeasure.org", + "code": "mmol/L" + }, + "interpretation": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation", + "code": "H", + "display": "High" + } + ] + } + ], + "referenceRange": [ + { + "text": "<1.8 mmol/L" + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Observation/63ad8984-003c-4e44-bc56-31dd6abc0897", + "resource": { + "resourceType": "Observation", + "id": "63ad8984-003c-4e44-bc56-31dd6abc0897", + "text": { + "status": "generated", + "div": "
[HbA1c]
" + }, + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "laboratory" + } + ] + } + ], + "code": { + "text": "[HbA1c]" + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-03-05T00:00:00+00:00", + "performer": [ + { + "reference": "PractitionerRole/8363e64e-f639-4f55-bd3c-6302bf87a6d3" + } + ], + "valueQuantity": { + "value": 60, + "unit": "mmol/mol", + "system": "http://unitsofmeasure.org", + "code": "mmol/mol" + }, + "interpretation": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation", + "code": "H", + "display": "High" + } + ] + } + ], + "referenceRange": [ + { + "text": "50 – 55 mmol/mol (diabetes)" + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Observation/6f64547c-89a3-459d-a993-b89e995c1f14", + "resource": { + "resourceType": "Observation", + "id": "6f64547c-89a3-459d-a993-b89e995c1f14", + "text": { + "status": "generated", + "div": "
Body temperature
" + }, + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "vital-signs" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "8310-5", + "display": "Body temperature" + } + ] + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-09-29T00:00:00+00:00", + "performer": [ + { + "reference": "PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244" + } + ], + "valueQuantity": { + "value": 37.5, + "unit": "Cel", + "system": "http://unitsofmeasure.org", + "code": "Cel" + } + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Observation/da3bbb11-e485-4396-a25c-611354789c65", + "resource": { + "resourceType": "Observation", + "id": "da3bbb11-e485-4396-a25c-611354789c65", + "text": { + "status": "generated", + "div": "
Heart rate
" + }, + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "vital-signs" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "8867-4", + "display": "Heart rate" + } + ] + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-09-29T00:00:00+00:00", + "performer": [ + { + "reference": "PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244" + } + ], + "valueQuantity": { + "value": 84, + "unit": "/min", + "system": "http://unitsofmeasure.org", + "code": "/min" + } + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Observation/5dead0bd-80c7-42f7-9720-3aaf047eb89b", + "resource": { + "resourceType": "Observation", + "id": "5dead0bd-80c7-42f7-9720-3aaf047eb89b", + "text": { + "status": "generated", + "div": "
Respiratory rate
" + }, + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "vital-signs" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "9279-1", + "display": "Respiratory rate" + } + ] + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-09-29T00:00:00+00:00", + "performer": [ + { + "reference": "PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244" + } + ], + "valueQuantity": { + "value": 18, + "unit": "/min", + "system": "http://unitsofmeasure.org", + "code": "/min" + } + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Observation/126f25f0-d921-4d9a-85a2-5b847cfb89fb", + "resource": { + "resourceType": "Observation", + "id": "126f25f0-d921-4d9a-85a2-5b847cfb89fb", + "text": { + "status": "generated", + "div": "
Blood pressure panel with all children optional
" + }, + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "vital-signs" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "85354-9", + "display": "Blood pressure panel with all children optional" + } + ] + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-09-29T00:00:00+00:00", + "performer": [ + { + "reference": "PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244" + } + ], + "component": [ + { + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "8480-6", + "display": "Systolic blood pressure" + } + ] + }, + "valueQuantity": { + "value": 136, + "unit": "mmHg", + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" + } + }, + { + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "8462-4", + "display": "Diastolic blood pressure" + } + ] + }, + "valueQuantity": { + "value": 88, + "unit": "mmHg", + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" + } + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Observation/cf628f81-f66b-42a7-a33a-c5d38a604861", + "resource": { + "resourceType": "Observation", + "id": "cf628f81-f66b-42a7-a33a-c5d38a604861", + "text": { + "status": "generated", + "div": "
Body height
" + }, + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "vital-signs" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "8302-2", + "display": "Body height" + } + ] + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-09-29T00:00:00+00:00", + "performer": [ + { + "reference": "PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244" + } + ], + "valueQuantity": { + "value": 1.84, + "unit": "cm", + "system": "http://unitsofmeasure.org", + "code": "cm" + } + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Observation/dd309bef-3b36-4422-a202-39d040113a5d", + "resource": { + "resourceType": "Observation", + "id": "dd309bef-3b36-4422-a202-39d040113a5d", + "text": { + "status": "generated", + "div": "
Body weight
" + }, + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "vital-signs" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "29463-7", + "display": "Body weight" + } + ] + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-09-29T00:00:00+00:00", + "performer": [ + { + "reference": "PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244" + } + ], + "valueQuantity": { + "value": 104, + "unit": "kg", + "system": "http://unitsofmeasure.org", + "code": "kg" + } + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Observation/4c5e0a16-2e2c-47cc-8e1d-a87afee4d6f1", + "resource": { + "resourceType": "Observation", + "id": "4c5e0a16-2e2c-47cc-8e1d-a87afee4d6f1", + "text": { + "status": "generated", + "div": "
Body temperature
" + }, + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "vital-signs" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "8310-5", + "display": "Body temperature" + } + ] + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-03-05T00:00:00+00:00", + "performer": [ + { + "reference": "PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244" + } + ], + "valueQuantity": { + "value": 37.2, + "unit": "Cel", + "system": "http://unitsofmeasure.org", + "code": "Cel" + } + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Observation/eda3092b-5228-420b-b0ce-f5eb77e73942", + "resource": { + "resourceType": "Observation", + "id": "eda3092b-5228-420b-b0ce-f5eb77e73942", + "text": { + "status": "generated", + "div": "
Heart rate
" + }, + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "vital-signs" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "8867-4", + "display": "Heart rate" + } + ] + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-03-05T00:00:00+00:00", + "performer": [ + { + "reference": "PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244" + } + ], + "valueQuantity": { + "value": 86, + "unit": "/min", + "system": "http://unitsofmeasure.org", + "code": "/min" + } + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Observation/2d420435-f380-46e1-ad93-b9fef57f4b71", + "resource": { + "resourceType": "Observation", + "id": "2d420435-f380-46e1-ad93-b9fef57f4b71", + "text": { + "status": "generated", + "div": "
Respiratory rate
" + }, + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "vital-signs" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "9279-1", + "display": "Respiratory rate" + } + ] + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-03-05T00:00:00+00:00", + "performer": [ + { + "reference": "PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244" + } + ], + "valueQuantity": { + "value": 14, + "unit": "/min", + "system": "http://unitsofmeasure.org", + "code": "/min" + } + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Observation/7a422837-80f5-4fa6-b3ac-8a0e44b99356", + "resource": { + "resourceType": "Observation", + "id": "7a422837-80f5-4fa6-b3ac-8a0e44b99356", + "text": { + "status": "generated", + "div": "
Blood pressure panel with all children optional
" + }, + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "vital-signs" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "85354-9", + "display": "Blood pressure panel with all children optional" + } + ] + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-03-05T00:00:00+00:00", + "performer": [ + { + "reference": "PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244" + } + ], + "component": [ + { + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "8480-6", + "display": "Systolic blood pressure" + } + ] + }, + "valueQuantity": { + "value": 130, + "unit": "mmHg", + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" + } + }, + { + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "8462-4", + "display": "Diastolic blood pressure" + } + ] + }, + "valueQuantity": { + "value": 82, + "unit": "mmHg", + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" + } + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Observation/af9ae822-ae5d-4bec-88bf-4dd250350783", + "resource": { + "resourceType": "Observation", + "id": "af9ae822-ae5d-4bec-88bf-4dd250350783", + "text": { + "status": "generated", + "div": "
Body weight
" + }, + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "vital-signs" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "29463-7", + "display": "Body weight" + } + ] + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2023-03-05T00:00:00+00:00", + "performer": [ + { + "reference": "PractitionerRole/c9288aea-5e73-4182-8231-aacbe50d3244" + } + ], + "valueQuantity": { + "value": 103, + "unit": "kg", + "system": "http://unitsofmeasure.org", + "code": "kg" + } + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/Observation/33624327-7e1b-4912-bca1-2d0c8d36b952", + "resource": { + "resourceType": "Observation", + "id": "33624327-7e1b-4912-bca1-2d0c8d36b952", + "text": { + "status": "generated", + "div": "
Tobacco smoking status
" + }, + "status": "final", + "category": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/observation-category", + "code": "social-history" + } + ] + } + ], + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "72166-2", + "display": "Tobacco smoking status" + } + ] + }, + "subject": { + "reference": "Patient/ZKT9319" + }, + "effectiveDateTime": "2005-06-30", + "performer": [ + { + "reference": "Patient/ZKT9319" + } + ], + "valueCodeableConcept": { + "coding": [ + { + "system": "http://loinc.org", + "code": "LA15920-4", + "display": "Former smoker" + } + ] + }, + "note": [ + { + "text": "30 - pack - year smoking history, quit smoking ~2005." + } + ] + } + }, + { + "fullUrl": "https://terminz.azurewebsites.net/fhir/PractitionerRole/8363e64e-f639-4f55-bd3c-6302bf87a6d3", + "resource": { + "resourceType": "PractitionerRole", + "id": "8363e64e-f639-4f55-bd3c-6302bf87a6d3", + "text": { + "status": "generated", + "div": "
Role: Clinical pathologist
" + }, + "code": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "81464008", + "display": "Clinical pathologist" + } + ] + } + ] + } + } + ] +} \ No newline at end of file diff --git a/http-client-tests/resources/sources/ips.json b/http-client-tests/resources/sources/ips.json new file mode 100644 index 00000000..056dc5de --- /dev/null +++ b/http-client-tests/resources/sources/ips.json @@ -0,0 +1,555 @@ +{ + "resourceType": "Bundle", + "id": "bundle-minimal", + "language": "en-US", + "identifier": { + "system": "urn:oid:2.16.724.4.8.10.200.10", + "value": "28b95815-76ce-457b-b7ae-a972e527db40" + }, + "type": "document", + "timestamp": "2020-12-11T14:30:00+01:00", + "entry": [ + { + "fullUrl": "urn:uuid:6e1fb74a-742b-4c7b-8487-171dacb88766", + "resource": { + "resourceType": "Composition", + "id": "6e1fb74a-742b-4c7b-8487-171dacb88766", + "text": { + "status": "generated", + "div": "

Generated Narrative

Resource \"6e1fb74a-742b-4c7b-8487-171dacb88766\"

status: final

type: Patient summary Document (LOINC#60591-5)

date: 2020-12-11 02:30:00+0100

author: Beetje van Hulp, MD

title: Patient Summary as of December 11, 2020 14:30

confidentiality: N

attester

mode: legal

time: 2020-12-11 02:30:00+0100

party: Beetje van Hulp, MD

attester

mode: legal

time: 2020-12-11 02:30:00+0100

party: Anorg Aniza Tion BV

custodian: Anorg Aniza Tion BV

RelatesTos

-CodeTarget[x]
*appendsid: 20e12ce3-857f-49c0-b888-cb670597f191

Events

-CodePeriod
*care provision (ActClass#PCPR)?? --> 2020-12-11 02:30:00+0100
" + }, + "status": "final", + "type": { + "coding": [ + { + "system": "http://loinc.org", + "code": "60591-5", + "display": "Patient summary Document" + } + ] + }, + "subject": { + "reference": "Patient/7685713c-e29e-4a75-8a90-45be7ba3be94" + }, + "date": "2020-12-11T14:30:00+01:00", + "author": [ + { + "reference": "Practitioner/98315ba9-ffea-41ef-b59b-a836c039858f" + } + ], + "title": "Patient Summary as of December 11, 2020 14:30", + "confidentiality": "N", + "attester": [ + { + "mode": "legal", + "time": "2020-12-11T14:30:00+01:00", + "party": { + "reference": "Practitioner/98315ba9-ffea-41ef-b59b-a836c039858f" + } + }, + { + "mode": "legal", + "time": "2020-12-11T14:30:00+01:00", + "party": { + "reference": "Organization/bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d" + } + } + ], + "custodian": { + "reference": "Organization/bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d" + }, + "relatesTo": [ + { + "code": "appends", + "targetIdentifier": { + "system": "urn:oid:2.16.724.4.8.10.200.10", + "value": "20e12ce3-857f-49c0-b888-cb670597f191" + } + } + ], + "event": [ + { + "code": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-ActClass", + "code": "PCPR" + } + ] + } + ], + "period": { + "end": "2020-12-11T14:30:00+01:00" + } + } + ], + "section": [ + { + "title": "Active Problems", + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "11450-4", + "display": "Problem list Reported" + } + ] + }, + "text": { + "status": "generated", + "div": "
  • Condition Name: Menopausal Flushing
    Code: 198436008
    Status: Active
" + }, + "entry": [ + { + "reference": "Condition/ad84b7a2-b4dd-474e-bef3-0779e6cb595f" + } + ] + }, + { + "title": "Medication", + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "10160-0", + "display": "History of Medication use Narrative" + } + ] + }, + "text": { + "status": "generated", + "div": "
  • Medication Name: Oral anastrozole 1mg tablet
    Code:
    Status: Active, started March 2015
    Instructions: Take 1 time per day
" + }, + "entry": [ + { + "reference": "MedicationStatement/6e883e5e-7648-485a-86de-3640a61601fe" + } + ] + }, + { + "title": "Allergies and Intolerances", + "code": { + "coding": [ + { + "system": "http://loinc.org", + "code": "48765-2", + "display": "Allergies and adverse reactions Document" + } + ] + }, + "text": { + "status": "generated", + "div": "
  • Allergy Name: Pencillins
    Verification Status: Confirmed
    Reaction: no information
" + }, + "entry": [ + { + "reference": "AllergyIntolerance/fe2769fd-22c9-4307-9122-ee0466e5aebb" + } + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:7685713c-e29e-4a75-8a90-45be7ba3be94", + "resource": { + "resourceType": "Patient", + "id": "7685713c-e29e-4a75-8a90-45be7ba3be94", + "text": { + "status": "generated", + "div": "

Generated Narrative: Patient

Resource Patient "7685713c-e29e-4a75-8a90-45be7ba3be94"

identifier: id:\u00a0574687583

active: true

name: Martha DeLarosa

telecom: +31788700800

gender: female

birthDate: 1972-05-01

address: Laan Van Europa 1600 Dordrecht 3317 DB NL

Contacts

-RelationshipNameTelecomAddress
*mother (RoleCode#MTH)Martha Mum +33-555-20036Promenade des Anglais 111 Lyon 69001 FR
" + }, + "identifier": [ + { + "system": "urn:oid:2.16.840.1.113883.2.4.6.3", + "value": "574687583" + } + ], + "active": true, + "name": [ + { + "family": "DeLarosa", + "given": [ + "Martha" + ] + } + ], + "telecom": [ + { + "system": "phone", + "value": "+31788700800", + "use": "home" + } + ], + "gender": "female", + "birthDate": "1972-05-01", + "address": [ + { + "line": [ + "Laan Van Europa 1600" + ], + "city": "Dordrecht", + "postalCode": "3317 DB", + "country": "NL" + } + ], + "contact": [ + { + "relationship": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-RoleCode", + "code": "MTH" + } + ] + } + ], + "name": { + "family": "Mum", + "given": [ + "Martha" + ] + }, + "telecom": [ + { + "system": "phone", + "value": "+33-555-20036", + "use": "home" + } + ], + "address": { + "line": [ + "Promenade des Anglais 111" + ], + "city": "Lyon", + "postalCode": "69001", + "country": "FR" + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:98315ba9-ffea-41ef-b59b-a836c039858f", + "resource": { + "resourceType": "Practitioner", + "id": "98315ba9-ffea-41ef-b59b-a836c039858f", + "text": { + "status": "generated", + "div": "

Generated Narrative: Practitioner

Resource Practitioner "98315ba9-ffea-41ef-b59b-a836c039858f"

identifier: id:\u00a0129854633

active: true

name: Beetje van Hulp

Qualifications

-Code
*Doctor of Medicine (degreeLicenseCertificate[2.7]#MD)
" + }, + "identifier": [ + { + "system": "urn:oid:2.16.528.1.1007.3.1", + "value": "129854633", + "assigner": { + "display": "CIBG" + } + } + ], + "active": true, + "name": [ + { + "family": "van Hulp", + "given": [ + "Beetje" + ] + } + ], + "qualification": [ + { + "code": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v2-0360", + "version": "2.7", + "code": "MD", + "display": "Doctor of Medicine" + } + ] + } + } + ] + } + }, + { + "fullUrl": "urn:uuid:bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d", + "resource": { + "resourceType": "Organization", + "id": "bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d", + "text": { + "status": "generated", + "div": "

Generated Narrative: Organization

Resource Organization "bb6bdf4f-7fcb-4d44-96a5-b858ad031d1d"

identifier: id:\u00a0564738757

active: true

name: Anorg Aniza Tion BV / The best custodian ever

telecom: +31-51-34343400

address: Houttuinen 27 Dordrecht 3311 CE NL (WORK)

" + }, + "identifier": [ + { + "system": "urn:oid:2.16.528.1.1007.3.3", + "value": "564738757" + } + ], + "active": true, + "name": "Anorg Aniza Tion BV / The best custodian ever", + "telecom": [ + { + "system": "phone", + "value": "+31-51-34343400", + "use": "work" + } + ], + "address": [ + { + "use": "work", + "line": [ + "Houttuinen 27" + ], + "city": "Dordrecht", + "postalCode": "3311 CE", + "country": "NL" + } + ] + } + }, + { + "fullUrl": "urn:uuid:ad84b7a2-b4dd-474e-bef3-0779e6cb595f", + "resource": { + "resourceType": "Condition", + "id": "ad84b7a2-b4dd-474e-bef3-0779e6cb595f", + "text": { + "status": "generated", + "div": "

Generated Narrative: Condition

Resource Condition "ad84b7a2-b4dd-474e-bef3-0779e6cb595f"

identifier: id:\u00a0cacceb57-395f-48e1-9c88-e9c9704dc2d2

clinicalStatus: Active (Condition Clinical Status Codes#active)

verificationStatus: Confirmed (ConditionVerificationStatus#confirmed)

category: Problem (LOINC#75326-9)

severity: Moderate (LOINC#LA6751-7)

code: Menopausal flushing (finding) (SNOMED CT#198436008; ICD-10#N95.1 "Menopausal and female climacteric states")

subject: See above (Patient/7685713c-e29e-4a75-8a90-45be7ba3be94)

onset: 2015

recordedDate: 2016-10

" + }, + "identifier": [ + { + "system": "urn:oid:1.2.3.999", + "value": "cacceb57-395f-48e1-9c88-e9c9704dc2d2" + } + ], + "clinicalStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "active" + } + ] + }, + "verificationStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/condition-ver-status", + "code": "confirmed" + } + ] + }, + "category": [ + { + "coding": [ + { + "system": "http://loinc.org", + "code": "75326-9", + "display": "Problem" + } + ] + } + ], + "severity": { + "coding": [ + { + "system": "http://loinc.org", + "code": "LA6751-7", + "display": "Moderate" + } + ] + }, + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "198436008", + "display": "Menopausal flushing (finding)", + "_display": { + "extension": [ + { + "extension": [ + { + "url": "lang", + "valueCode": "nl-NL" + }, + { + "url": "content", + "valueString": "opvliegers" + } + ], + "url": "http://hl7.org/fhir/StructureDefinition/translation" + } + ] + } + }, + { + "system": "http://hl7.org/fhir/sid/icd-10", + "code": "N95.1", + "display": "Menopausal and female climacteric states" + } + ] + }, + "subject": { + "reference": "Patient/7685713c-e29e-4a75-8a90-45be7ba3be94" + }, + "onsetDateTime": "2015", + "recordedDate": "2016-10" + } + }, + { + "fullUrl": "urn:uuid:6e883e5e-7648-485a-86de-3640a61601fe", + "resource": { + "resourceType": "MedicationStatement", + "id": "6e883e5e-7648-485a-86de-3640a61601fe", + "text": { + "status": "generated", + "div": "

Generated Narrative: MedicationStatement

Resource MedicationStatement "6e883e5e-7648-485a-86de-3640a61601fe"

identifier: id:\u00a08faf0319-89d3-427c-b9d1-e8c8fd390dca

status: active

medication: See above (Medication/6369a973-afc7-4617-8877-3e9811e05a5b)

subject: See above (Patient/7685713c-e29e-4a75-8a90-45be7ba3be94)

effective: 2015-03 --> (ongoing)

dosage

timing: Count 1 times, Once

route: Oral use (standardterms.edqm.eu#20053000)

doseAndRate

" + }, + "identifier": [ + { + "system": "urn:oid:1.2.3.999", + "value": "8faf0319-89d3-427c-b9d1-e8c8fd390dca" + } + ], + "status": "active", + "medicationReference": { + "reference": "Medication/6369a973-afc7-4617-8877-3e9811e05a5b" + }, + "subject": { + "reference": "Patient/7685713c-e29e-4a75-8a90-45be7ba3be94" + }, + "effectivePeriod": { + "start": "2015-03" + }, + "dosage": [ + { + "timing": { + "repeat": { + "count": 1, + "periodUnit": "d" + } + }, + "route": { + "coding": [ + { + "system": "http://standardterms.edqm.eu", + "code": "20053000", + "display": "Oral use" + } + ] + }, + "doseAndRate": [ + { + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/dose-rate-type", + "code": "ordered", + "display": "Ordered" + } + ] + }, + "doseQuantity": { + "value": 1, + "unit": "tablet", + "system": "http://unitsofmeasure.org", + "code": "1" + } + } + ] + } + ] + } + }, + { + "fullUrl": "urn:uuid:6369a973-afc7-4617-8877-3e9811e05a5b", + "resource": { + "resourceType": "Medication", + "id": "6369a973-afc7-4617-8877-3e9811e05a5b", + "text": { + "status": "generated", + "div": "

Generated Narrative: Medication

Resource Medication "6369a973-afc7-4617-8877-3e9811e05a5b"

code: Product containing anastrozole (medicinal product) (SNOMED CT#108774000; unknown#99872 "ANASTROZOL 1MG TABLET"; unknown#2076667 "ANASTROZOL CF TABLET FILMOMHULD 1MG"; WHO ATC#L02BG03 "anastrozole")

" + }, + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "108774000", + "display": "Product containing anastrozole (medicinal product)" + }, + { + "system": "urn:oid:2.16.840.1.113883.2.4.4.1", + "code": "99872", + "display": "ANASTROZOL 1MG TABLET" + }, + { + "system": "urn:oid:2.16.840.1.113883.2.4.4.7", + "code": "2076667", + "display": "ANASTROZOL CF TABLET FILMOMHULD 1MG" + }, + { + "system": "http://www.whocc.no/atc", + "code": "L02BG03", + "display": "anastrozole" + } + ] + } + } + }, + { + "fullUrl": "urn:uuid:fe2769fd-22c9-4307-9122-ee0466e5aebb", + "resource": { + "resourceType": "AllergyIntolerance", + "id": "fe2769fd-22c9-4307-9122-ee0466e5aebb", + "text": { + "status": "generated", + "div": "

Generated Narrative: AllergyIntolerance

Resource AllergyIntolerance "fe2769fd-22c9-4307-9122-ee0466e5aebb"

identifier: id:\u00a08d9566a4-d26d-46be-a3e4-c9f3a0e5cd83

clinicalStatus: Active (AllergyIntolerance Clinical Status Codes#active)

verificationStatus: Confirmed (AllergyIntolerance Verification Status#confirmed)

type: allergy

category: medication

criticality: high

code: Substance with penicillin structure and antibacterial mechanism of action (substance) (SNOMED CT#373270004)

patient: See above (Patient/7685713c-e29e-4a75-8a90-45be7ba3be94)

onset: 2010

" + }, + "identifier": [ + { + "system": "urn:oid:1.2.3.999", + "value": "8d9566a4-d26d-46be-a3e4-c9f3a0e5cd83" + } + ], + "clinicalStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical", + "code": "active" + } + ] + }, + "verificationStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-verification", + "code": "confirmed" + } + ] + }, + "type": "allergy", + "category": [ + "medication" + ], + "criticality": "high", + "code": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "373270004", + "display": "Substance with penicillin structure and antibacterial mechanism of action (substance)" + } + ] + }, + "patient": { + "reference": "Patient/7685713c-e29e-4a75-8a90-45be7ba3be94" + }, + "onsetDateTime": "2010" + } + } + ] +} \ No newline at end of file diff --git a/http-client-tests/resources/sources/sql-on-fhir.json b/http-client-tests/resources/sources/sql-on-fhir.json new file mode 100644 index 00000000..62e64932 --- /dev/null +++ b/http-client-tests/resources/sources/sql-on-fhir.json @@ -0,0 +1,38 @@ +{ + "resourceType": "http://hl7.org/fhir/uv/sql-on-fhir/StructureDefinition/ViewDefinition", + "select": [ + { + "column": [ + { + "path": "getResourceKey()", + "name": "patient_id" + } + ] + }, + { + "column": [ + { + "path": "line.join('\n')", + "name": "street", + "description": "The full street address, including newlines if present." + }, + { + "path": "use", + "name": "use" + }, + { + "path": "city", + "name": "city" + }, + { + "path": "postalCode", + "name": "zip" + } + ], + "forEach": "address" + } + ], + "name": "patient_addresses", + "status": "draft", + "resource": "Patient" +} \ No newline at end of file diff --git a/http-client-tests/tests/explicit-queries.http b/http-client-tests/tests/explicit-queries.http new file mode 100644 index 00000000..993c64d8 --- /dev/null +++ b/http-client-tests/tests/explicit-queries.http @@ -0,0 +1,163 @@ +# These tests do validations using CliContext instances that are manually constructed +# equivalents to those in commonMain/kotlin/constants/Preset + +# Conversely, the preset-queries.http tests will perform the same tests, but using +# the baseEngine field of the CliContext to utilize the pre-built ValidationEngine +# from the ValidationService + +### Default +# @name Default +POST {{host}}/validate +Content-Type: application/json + +< ../resources/explicit-preset-requests/default.json + +> {% + client.test("Validated Successfully", function() { + client.assert(response.status === 200, "Response status is not 200"); + }); + import { containsIssue } from "../utilities/assertions"; + client.test("Issues are Correct", function() { + let issues = response.body.outcomes[0].issues + client.log("issues:" + issues.length) + client.assert(issues.length === 2); + client.assert(containsIssue(issues, 88, 12, "This element does not match any known slice defined in the profile http://hl7.org/fhir/StructureDefinition/bp|4.0.1 (this may not be a problem, but you should check that it's not intended to match a slice)", "INFORMATIONAL", "INFORMATION")); + }); +%} + +### CDA +# @name CDA +# This example is compo +POST {{host}}/validate +Content-Type: application/json + +< ../resources/explicit-preset-requests/cda.json + +> {% + client.test("Validated Successfully", function() { + client.assert(response.status === 200, "Response status is not 200"); + }); + import { containsIssue } from "../utilities/assertions"; + + client.test("Issues are Correct", function () { + let issues = response.body.outcomes[0].issues + client.log("issues:" + issues.length) + client.assert(issues.length === 10); + client.assert(containsIssue(issues, 20, 24, "Binding has no source, so can't be checked", "CODEINVALID", "INFORMATION")) + client.assert(containsIssue(issues, 251, 184, "The OID '2.16.840.1.114222.4.11.1066' is not known, so the code can't be validated", "CODEINVALID", "WARNING")) + }); +%} + + +### US-CDA +# @name US-CDA +# Check that a request with explicit IG settings returns an expected response +POST {{host}}/validate +Content-Type: application/json + +< ../resources/explicit-preset-requests/us-ccda.json + +> {% + client.test("Validated Successfully", function() { + client.assert(response.status === 200, "Response status is not 200"); + }); + import { containsIssue } from "../utilities/assertions"; + client.test("Issues are Correct", function() { + let issues = response.body.outcomes[0].issues + client.log("issues:" + issues.length) + client.assert(issues.length === 10) + client.assert(containsIssue(issues, 20, 24, "Binding has no source, so can't be checked", "CODEINVALID", "INFORMATION")) + client.assert(!containsIssue(issues, 251, 184, "The OID '2.16.840.1.113883.1.11.19830' is not known, so the code can't be validated", "CODEINVALID", "WARNING")) + }) +%} + +### IPS +# @name IPS +POST {{host}}/validate +Content-Type: application/json + +< ../resources/explicit-preset-requests/ips.json + +> {% + client.test("Validated Successfully", function() { + client.assert(response.status === 200, "Response status is not 200"); + }); + import { containsIssue } from "../utilities/assertions"; + client.test("Issues are Correct", function() { + let issues = response.body.outcomes[0].issues + client.log("issues:" + issues.length) + client.assert(issues.length === 45); + client.assert(containsIssue(issues, 1, 2, "The Snomed CT code 373270004 (Substance with penicillin structure and antibacterial mechanism of action) is not a member of the IPS free set", "BUSINESSRULE", "INFORMATION")) + client.assert(containsIssue(issues, 1, 2, "The Snomed CT code 108774000 (Product containing anastrozole (medicinal product)) is not a member of the IPS free set", "BUSINESSRULE", "INFORMATION")) + + client.assert(!containsIssue(issues, 314, 4, "This element does not match any known slice defined in the profile http://hl7.org.au/fhir/ips/StructureDefinition/Bundle-au-ips|0.0.1 (this may not be a problem, but you should check that it's not intended to match a slice)", "INFORMATIONAL", "INFORMATION")) + client.assert(!containsIssue(issues, 134, 8, "This element does not match any known slice defined in the profile http://hl7.org.au/fhir/core/StructureDefinition/au-core-patient|0.3.0 (this may not be a problem, but you should check that it's not intended to match a slice)", "INFORMATIONAL","INFORMATION")) + + }); +%} + +### IPS-AU +# @name IPS-AU +POST {{host}}/validate +Content-Type: application/json + +< ../resources/explicit-preset-requests/ips-au.json + +> {% + client.test("Validated Successfully", function() { + client.assert(response.status === 200, "Response status is not 200"); + }); + import { containsIssue } from "../utilities/assertions"; + client.test("Issues are Correct", function() { + let issues = response.body.outcomes[0].issues + client.log("issues:" + issues.length) + client.assert(issues.length === 53); + client.assert(containsIssue(issues, 1, 2, "The Snomed CT code 373270004 (Substance with penicillin structure and antibacterial mechanism of action) is not a member of the IPS free set", "BUSINESSRULE", "INFORMATION")) + client.assert(containsIssue(issues, 1, 2, "The Snomed CT code 108774000 (Product containing anastrozole (medicinal product)) is not a member of the IPS free set", "BUSINESSRULE", "INFORMATION")) + client.assert(containsIssue(issues, 314, 4, "This element does not match any known slice defined in the profile http://hl7.org.au/fhir/ips/StructureDefinition/Bundle-au-ips|0.0.1 (this may not be a problem, but you should check that it's not intended to match a slice)", "INFORMATIONAL", "INFORMATION")) + client.assert(containsIssue(issues, 134, 8, "This element does not match any known slice defined in the profile http://hl7.org.au/fhir/core/StructureDefinition/au-core-patient|0.5.0-ci-build (this may not be a problem, but you should check that it's not intended to match a slice)", "INFORMATIONAL", "INFORMATION")) + }); +%} + +### IPS-NZ +# @name IPS-NZ +POST {{host}}/validate +Content-Type: application/json + +< ../resources/explicit-preset-requests/ips-nz.json + +> {% + client.test("Validated Successfully", function() { + client.assert(response.status === 200, "Response status is not 200"); + }); + import { containsIssue } from "../utilities/assertions"; + client.test("Issues are Correct", function() { + let issues = response.body.outcomes[0].issues + client.log("issues:" + issues.length) + client.assert(issues.length === 100); + client.assert(containsIssue(issues, 12,10,"This element does not match any known slice defined in the profile https://standards.digital.health.nz/fhir/StructureDefinition/nzps-bundle|0.3.0 (this may not be a problem, but you should check that it's not intended to match a slice)", "INFORMATIONAL", "INFORMATION")) + }); +%} + +### SQL-ON-FHIR +# @name SQL-ON-FHIR +# Check that a request with explicit IG settings returns an expected response +POST {{host}}/validate +Content-Type: application/json + +< ../resources/explicit-preset-requests/sql-on-fhir.json + +> {% + client.test("Validated Successfully", function() { + client.assert(response.status === 200, "Response status is not 200"); + }); + import { containsIssue } from "../utilities/assertions"; + client.test("Issues are Correct", function() { + let issues = response.body.outcomes[0].issues + client.log("issues:" + issues.length) + client.assert(issues.length === 3); + client.assert(containsIssue(issues, 20, 21, "The column 'use' appears to be a collection based on it's path. Collections are not supported in all execution contexts", "BUSINESSRULE", "WARNING")) + client.assert(containsIssue(issues, 24, 21, "The column 'city' appears to be a collection based on it's path. Collections are not supported in all execution contexts", "BUSINESSRULE", "WARNING")) + client.assert(containsIssue(issues, 28, 21, "The column 'zip' appears to be a collection based on it's path. Collections are not supported in all execution contexts", "BUSINESSRULE", "WARNING")) + }); +%} \ No newline at end of file diff --git a/http-client-tests/tests/preset-queries.http b/http-client-tests/tests/preset-queries.http new file mode 100644 index 00000000..a4502128 --- /dev/null +++ b/http-client-tests/tests/preset-queries.http @@ -0,0 +1,164 @@ + +# These tests do validations using CliContext instances that use the presents in +# commonMain/kotlin/constants/Preset + +# Conversely, the preset-queries.http tests will perform the same tests, but using +# the baseEngine field of the CliContext to utilize the pre-built ValidationEngine +# from the ValidationService + +### Default +# @name Default +POST {{host}}/validate +Content-Type: application/json + +< ../resources/preset-requests/default.json + +> {% + client.test("Validated Successfully", function() { + client.assert(response.status === 200, "Response status is not 200"); + }); + import { containsIssue } from "../utilities/assertions"; + client.test("Issues are Correct", function() { + let issues = response.body.outcomes[0].issues + client.log("issues:" + issues.length) + client.assert(issues.length === 2); + client.assert(containsIssue(issues, 88, 12, "This element does not match any known slice defined in the profile http://hl7.org/fhir/StructureDefinition/bp|4.0.1 (this may not be a problem, but you should check that it's not intended to match a slice)", "INFORMATIONAL", "INFORMATION")); + }); +%} + +### CDA +# @name CDA +# This example is compo +POST {{host}}/validate +Content-Type: application/json + +< ../resources/preset-requests/cda.json + +> {% + client.test("Validated Successfully", function() { + client.assert(response.status === 200, "Response status is not 200"); + }); + import { containsIssue } from "../utilities/assertions"; + + client.test("Issues are Correct", function () { + let issues = response.body.outcomes[0].issues + client.log("issues:" + issues.length) + client.assert(issues.length === 10); + client.assert(containsIssue(issues, 20, 24, "Binding has no source, so can't be checked", "CODEINVALID", "INFORMATION")) + client.assert(containsIssue(issues, 251, 184, "The OID '2.16.840.1.114222.4.11.1066' is not known, so the code can't be validated", "CODEINVALID", "WARNING")) + }); +%} + + +### US-CDA +# @name US-CDA +# Check that a request with explicit IG settings returns an expected response +POST {{host}}/validate +Content-Type: application/json + +< ../resources/preset-requests/us-ccda.json + +> {% + client.test("Validated Successfully", function() { + client.assert(response.status === 200, "Response status is not 200"); + }); + import { containsIssue } from "../utilities/assertions"; + client.test("Issues are Correct", function() { + let issues = response.body.outcomes[0].issues + client.log("issues:" + issues.length) + client.assert(issues.length === 10) + client.assert(containsIssue(issues, 20, 24, "Binding has no source, so can't be checked", "CODEINVALID", "INFORMATION")) + client.assert(!containsIssue(issues, 251, 184, "The OID '2.16.840.1.113883.1.11.19830' is not known, so the code can't be validated", "CODEINVALID", "WARNING")) + }) +%} + +### IPS +# @name IPS +POST {{host}}/validate +Content-Type: application/json + +< ../resources/preset-requests/ips.json + +> {% + client.test("Validated Successfully", function() { + client.assert(response.status === 200, "Response status is not 200"); + }); + import { containsIssue } from "../utilities/assertions"; + client.test("Issues are Correct", function() { + let issues = response.body.outcomes[0].issues + client.log("issues:" + issues.length) + client.assert(issues.length === 45); + client.assert(containsIssue(issues, 1, 2, "The Snomed CT code 373270004 (Substance with penicillin structure and antibacterial mechanism of action) is not a member of the IPS free set", "BUSINESSRULE", "INFORMATION")) + client.assert(containsIssue(issues, 1, 2, "The Snomed CT code 108774000 (Product containing anastrozole (medicinal product)) is not a member of the IPS free set", "BUSINESSRULE", "INFORMATION")) + + client.assert(!containsIssue(issues, 314, 4, "This element does not match any known slice defined in the profile http://hl7.org.au/fhir/ips/StructureDefinition/Bundle-au-ips|0.0.1 (this may not be a problem, but you should check that it's not intended to match a slice)", "INFORMATIONAL", "INFORMATION")) + client.assert(!containsIssue(issues, 134, 8, "This element does not match any known slice defined in the profile http://hl7.org.au/fhir/core/StructureDefinition/au-core-patient|0.3.0 (this may not be a problem, but you should check that it's not intended to match a slice)", "INFORMATIONAL","INFORMATION")) + + }); +%} + +### IPS-AU +# @name IPS-AU +POST {{host}}/validate +Content-Type: application/json + +< ../resources/preset-requests/ips-au.json + +> {% + client.test("Validated Successfully", function() { + client.assert(response.status === 200, "Response status is not 200"); + }); + import { containsIssue } from "../utilities/assertions"; + client.test("Issues are Correct", function() { + let issues = response.body.outcomes[0].issues + client.log("issues:" + issues.length) + client.assert(issues.length === 53); + client.assert(containsIssue(issues, 1, 2, "The Snomed CT code 373270004 (Substance with penicillin structure and antibacterial mechanism of action) is not a member of the IPS free set", "BUSINESSRULE", "INFORMATION")) + client.assert(containsIssue(issues, 1, 2, "The Snomed CT code 108774000 (Product containing anastrozole (medicinal product)) is not a member of the IPS free set", "BUSINESSRULE", "INFORMATION")) + client.assert(containsIssue(issues, 314, 4, "This element does not match any known slice defined in the profile http://hl7.org.au/fhir/ips/StructureDefinition/Bundle-au-ips|0.0.1 (this may not be a problem, but you should check that it's not intended to match a slice)", "INFORMATIONAL", "INFORMATION")) + client.assert(containsIssue(issues, 134, 8, "This element does not match any known slice defined in the profile http://hl7.org.au/fhir/core/StructureDefinition/au-core-patient|0.5.0-ci-build (this may not be a problem, but you should check that it's not intended to match a slice)", "INFORMATIONAL", "INFORMATION")) + }); +%} + +### IPS-NZ +# @name IPS-NZ +POST {{host}}/validate +Content-Type: application/json + +< ../resources/preset-requests/ips-nz.json + +> {% + client.test("Validated Successfully", function() { + client.assert(response.status === 200, "Response status is not 200"); + }); + import { containsIssue } from "../utilities/assertions"; + client.test("Issues are Correct", function() { + let issues = response.body.outcomes[0].issues + client.log("issues:" + issues.length) + client.assert(issues.length === 100); + client.assert(containsIssue(issues, 12,10,"This element does not match any known slice defined in the profile https://standards.digital.health.nz/fhir/StructureDefinition/nzps-bundle|0.3.0 (this may not be a problem, but you should check that it's not intended to match a slice)", "INFORMATIONAL", "INFORMATION")) + }); +%} + +### SQL-ON-FHIR +# @name SQL-ON-FHIR +# Check that a request with explicit IG settings returns an expected response +POST {{host}}/validate +Content-Type: application/json + +< ../resources/preset-requests/sql-on-fhir.json + +> {% + client.test("Validated Successfully", function() { + client.assert(response.status === 200, "Response status is not 200"); + }); + import { containsIssue } from "../utilities/assertions"; + client.test("Issues are Correct", function() { + let issues = response.body.outcomes[0].issues + client.log("issues:" + issues.length) + client.assert(issues.length === 3); + client.assert(containsIssue(issues, 20, 21, "The column 'use' appears to be a collection based on it's path. Collections are not supported in all execution contexts", "BUSINESSRULE", "WARNING")) + client.assert(containsIssue(issues, 24, 21, "The column 'city' appears to be a collection based on it's path. Collections are not supported in all execution contexts", "BUSINESSRULE", "WARNING")) + client.assert(containsIssue(issues, 28, 21, "The column 'zip' appears to be a collection based on it's path. Collections are not supported in all execution contexts", "BUSINESSRULE", "WARNING")) + }); +%} \ No newline at end of file diff --git a/http-client-tests/tests/session-queries.http b/http-client-tests/tests/session-queries.http new file mode 100644 index 00000000..a4ea52da --- /dev/null +++ b/http-client-tests/tests/session-queries.http @@ -0,0 +1,103 @@ +# These tests check that validation sessions are created and retrieved correctly + +### Initial default setting run #1 +# @name Session 1 Validation 1 +< {% + client.global.set("SESSION_1_VALIDATION_1_START_TIME", $timestamp); +%} + +POST {{host}}/validate +Content-Type: application/json + +< ../resources/session-requests/session_1_validation_1.json + +> {% + client.test("Validated Successfully", function() { + client.assert(response.status === 200, "Response status is not 200"); + }); + + client.global.set("SESSION_1_ID", response.body.sessionId); + client.log("session id: " + client.global.get("SESSION_1_ID")); + client.global.set("SESSION_1_VALIDATION_1_RESPONSE_BODY", response.body.outcomes[0].issues.toString()); + client.global.set("SESSION_1_VALIDATION_1_TOTAL_TIME", ($timestamp - client.global.get("SESSION_1_VALIDATION_1_START_TIME"))); + +%} + +### Initial default setting run #1 +# @name Session 2 Validation 1 +< {% + client.global.set("SESSION_2_VALIDATION_1_START_TIME", $timestamp); +%} + +POST {{host}}/validate +Content-Type: application/json + +< ../resources/session-requests/session_2_validation_1.json + +> {% + client.test("Validated Successfully", function() { + client.assert(response.status === 200, "Response status is not 200"); + }); + + client.global.set("SESSION_2_ID", response.body.sessionId); + client.log("session id: " + client.global.get("SESSION_2_ID")); + client.global.set("SESSION_2_VALIDATION_1_RESPONSE_BODY", response.body.outcomes[0].issues.toString()); + client.global.set("SESSION_2_VALIDATION_1_TOTAL_TIME", ($timestamp - client.global.get("SESSION_2_VALIDATION_1_START_TIME"))); + +%} + +### Initial default setting run #2 +# @name Session 1 Validation 2 +< {% + client.global.set("SESSION_1_VALIDATION_2_START_TIME", $timestamp); +%} + +POST {{host}}/validate +Content-Type: application/json + +< ../resources/session-requests/session_1_validation_2.json + +> {% + client.test("Validated Successfully", function() { + client.assert(response.status === 200, "Response status is not 200"); + }); + client.test("Session ID Maintained", function() { + client.assert(response.body.sessionId === client.global.get("SESSION_1_ID")); + }); + client.test("Validation is faster", function() { + const DEFAULT_SESSION_2_TOTAL_TIME = ($timestamp - client.global.get("SESSION_1_VALIDATION_2_START_TIME")); + client.assert(client.global.get("SESSION_1_VALIDATION_2_START_TIME") > DEFAULT_SESSION_2_TOTAL_TIME); + }); + client.test("Validation response is the same", function() { + client.assert(response.body.outcomes[0].issues.toString() === client.global.get("SESSION_1_VALIDATION_1_RESPONSE_BODY")); + }); + +%} + +### Initial default setting run #2 +# @name Session 1 Validation 2 +< {% + client.global.set("SESSION_2_VALIDATION_2_START_TIME", $timestamp); +%} + +POST {{host}}/validate +Content-Type: application/json + +< ../resources/session-requests/session_2_validation_2.json + +> {% + client.test("Validated Successfully", function() { + client.assert(response.status === 200, "Response status is not 200"); + }); + client.test("Session ID Maintained", function() { + client.assert(response.body.sessionId === client.global.get("SESSION_2_ID")); + }); + client.test("Validation is faster", function() { + const DEFAULT_SESSION_2_TOTAL_TIME = ($timestamp - client.global.get("SESSION_2_VALIDATION_2_START_TIME")); + client.assert(client.global.get("SESSION_2_VALIDATION_2_START_TIME") > DEFAULT_SESSION_2_TOTAL_TIME); + }); + client.test("Validation response is the same", function() { + client.assert(response.body.outcomes[0].issues.toString() === client.global.get("SESSION_2_VALIDATION_1_RESPONSE_BODY")); + }); + +%} \ No newline at end of file diff --git a/http-client-tests/utilities/assertions.js b/http-client-tests/utilities/assertions.js new file mode 100644 index 00000000..5f43feda --- /dev/null +++ b/http-client-tests/utilities/assertions.js @@ -0,0 +1,26 @@ +/** + * Blocks the execution thread for the at least the specified time in milliseconds. + * + * Analogous to Java Thread.sleep + * @param issues + * @param line + * @param col + * @param message + * @param type + * @param level + */ +export function containsIssue(issues, line, col, message, type, level) { + for (let index in issues) { + if (issues[index].line === line + && issues[index].col === col + && issues[index].message === message + && issues[index].type === type + && issues[index].level === level + ) { + + return true; + } + } + + return false; +} \ No newline at end of file diff --git a/src/commonMain/kotlin/constants/Endpoints.kt b/src/commonMain/kotlin/constants/Endpoints.kt index 709f0f8d..e32019b2 100644 --- a/src/commonMain/kotlin/constants/Endpoints.kt +++ b/src/commonMain/kotlin/constants/Endpoints.kt @@ -2,7 +2,8 @@ package constants const val VALIDATION_ENDPOINT = "validate" const val VALIDATOR_VERSION_ENDPOINT = "validator/version" -const val CONTEXT_ENDPOINT = "context" +const val VALIDATION_ENGINES_ENDPOINT = "validator/engines" + const val IG_ENDPOINT = "ig" const val IG_VERSIONS_ENDPOINT = "igVersions" const val VERSIONS_ENDPOINT = "versions" diff --git a/src/jsMain/kotlin/utils/Preset.kt b/src/commonMain/kotlin/constants/Preset.kt similarity index 89% rename from src/jsMain/kotlin/utils/Preset.kt rename to src/commonMain/kotlin/constants/Preset.kt index 9e528d2f..5341e1b0 100644 --- a/src/jsMain/kotlin/utils/Preset.kt +++ b/src/commonMain/kotlin/constants/Preset.kt @@ -1,12 +1,13 @@ -package utils +package constants import model.CliContext import model.PackageInfo -import constants.ANY_EXTENSION import model.BundleValidationRule val DEFAULT_CONTEXT = CliContext() + .setBaseEngine("DEFAULT") + .setSv("4.0.1") val IPS_IG = PackageInfo( "hl7.fhir.uv.ips", @@ -31,14 +32,14 @@ val IPS_NZ_IG = PackageInfo( val CDA_IG = PackageInfo( "hl7.cda.uv.core", - "2.0.0-sd-ballot", + "2.0.0-sd-snapshot1", "5.0.0", "http://hl7.org/cda/stds/core/ImplementationGuide/hl7.cda.uv.core" ) val CCDA_IG = PackageInfo( "hl7.cda.us.ccda", - "current", + "3.0.0-ballot", "5.0.0", "http://hl7.org/fhir/us/ccda/ImplementationGuide/hl7.fhir.us.ccda" ) @@ -57,6 +58,7 @@ val IPS_AU_BUNDLE_PROFILE = "http://hl7.org.au/fhir/ips/StructureDefinition/Bund val IPS_NZ_BUNDLE_PROFILE = "https://standards.digital.health.nz/fhir/StructureDefinition/nzps-bundle" val IPS_CONTEXT = CliContext() + .setBaseEngine("IPS") .setSv("4.0.1") .addIg(PackageInfo.igLookupString(IPS_IG)) .setExtensions(listOf(ANY_EXTENSION)) @@ -68,6 +70,7 @@ val IPS_CONTEXT = CliContext() )) val IPS_AU_CONTEXT = CliContext() + .setBaseEngine("IPS_AU") .setSv("4.0.1") .addIg(PackageInfo.igLookupString(IPS_AU_IG)) .setExtensions(listOf(ANY_EXTENSION)) @@ -79,8 +82,10 @@ val IPS_AU_CONTEXT = CliContext() )) val IPS_NZ_CONTEXT = CliContext() + .setBaseEngine("IPS_NZ") .setSv("4.0.1") .addIg(PackageInfo.igLookupString(IPS_NZ_IG)) + .setProfiles(listOf(IPS_NZ_BUNDLE_PROFILE)) .setExtensions(listOf(ANY_EXTENSION)) .setCheckIPSCodes(true) .setBundleValidationRules(listOf( @@ -91,14 +96,17 @@ val IPS_NZ_CONTEXT = CliContext() val CDA_CONTEXT = CliContext() + .setBaseEngine("CDA") .setSv("5.0.0") .addIg(PackageInfo.igLookupString(CDA_IG)) val CCDA_CONTEXT = CliContext() + .setBaseEngine("US_CCDA") .setSv("5.0.0") .addIg(PackageInfo.igLookupString(CCDA_IG)) val SQL_VIEW_CONTEXT = CliContext() + .setBaseEngine("SQL_VIEW") .setSv("5.0.0") .addIg(PackageInfo.igLookupString(SQL_ON_FHIR_IG)) @@ -110,6 +118,14 @@ enum class Preset( val extensionSet: Set, val profileSet: Set ) { + CUSTOM( + "CUSTOM", + "preset_custom", + CliContext(), + setOf(), + setOf(), + setOf() + ), DEFAULT( "DEFAULT", "preset_fhir_resource", @@ -126,6 +142,7 @@ enum class Preset( setOf(ANY_EXTENSION), setOf(IPS_BUNDLE_PROFILE) ), + IPS_AU( "IPS_AU", "preset_ips_au", @@ -151,7 +168,7 @@ enum class Preset( setOf() ), US_CCDA( - "US_CDA", + "US_CCDA", "preset_us_ccda", CCDA_CONTEXT, setOf(CCDA_IG), @@ -165,8 +182,7 @@ enum class Preset( setOf(SQL_ON_FHIR_IG), setOf(), setOf() - ) - ; + ); companion object { fun getSelectedPreset(key: String?): Preset? { diff --git a/src/commonMain/kotlin/model/CliContext.kt b/src/commonMain/kotlin/model/CliContext.kt index 2b149694..2e7f9205 100644 --- a/src/commonMain/kotlin/model/CliContext.kt +++ b/src/commonMain/kotlin/model/CliContext.kt @@ -2,6 +2,9 @@ package model expect class CliContext() { + fun getBaseEngine(): String? + fun setBaseEngine(baseEngine: String?) : CliContext + fun isDoNative(): Boolean fun setDoNative(doNative: Boolean): CliContext @@ -62,4 +65,7 @@ expect class CliContext() { fun setBundleValidationRules(bundleValidationRules: List) : CliContext fun getBundleValidationRules():List + + fun addIg(ig: String): CliContext + } \ No newline at end of file diff --git a/src/commonMain/resources/static-content/polyglot/de_DE.json b/src/commonMain/resources/static-content/polyglot/de_DE.json index 38ffbbd2..1321ccd0 100644 --- a/src/commonMain/resources/static-content/polyglot/de_DE.json +++ b/src/commonMain/resources/static-content/polyglot/de_DE.json @@ -90,7 +90,7 @@ "preset_label" : "Common Validation Options... -German", "preset_description" : "Click to automatically set options for common validation tasks-German", "preset_notification" : "Set to validate using %{selectedPreset}. Select the Options tab for more settings. -German", - "preset_fhir_resource" : "FHIR Resource -German", + "preset_fhir_resource" : "FHIR Resource (R4) -German", "preset_ips" : "IPS Document -German", "preset_ips_au" : "Australian IPS Document -German", "preset_ips_nz" : "New Zealand IPS Document -German", diff --git a/src/commonMain/resources/static-content/polyglot/en.json b/src/commonMain/resources/static-content/polyglot/en.json index b32d6a84..3f49955d 100644 --- a/src/commonMain/resources/static-content/polyglot/en.json +++ b/src/commonMain/resources/static-content/polyglot/en.json @@ -92,7 +92,7 @@ "preset_label" : "Common Validation Options...", "preset_description" : "Click to automatically set options for common validation tasks", "preset_notification" : "Set to validate using %{selectedPreset}. Select the Options tab for more settings.", - "preset_fhir_resource" : "FHIR Resource", + "preset_fhir_resource" : "FHIR Resource (R4)", "preset_ips" : "IPS Document", "preset_ips_au" : "Australian IPS Document", "preset_ips_nz" : "New Zealand IPS Document", diff --git a/src/commonMain/resources/static-content/polyglot/es.json b/src/commonMain/resources/static-content/polyglot/es.json index 4c55a597..5b01747e 100644 --- a/src/commonMain/resources/static-content/polyglot/es.json +++ b/src/commonMain/resources/static-content/polyglot/es.json @@ -90,7 +90,7 @@ "preset_label" : "Common Validation Options... -Spanish", "preset_description" : "Click to automatically set options for common validation tasks-Spanish", "preset_notification" : "Set to validate using %{selectedPreset}. Select the Options tab for more settings. -Spanish", - "preset_fhir_resource" : "FHIR Resource -Spanish", + "preset_fhir_resource" : "FHIR Resource (R4) -Spanish", "preset_ips" : "IPS Document -Spanish", "preset_ips_au" : "Australian IPS Document -Spanish", "preset_ips_nz" : "New Zealand IPS Document -Spanish", diff --git a/src/jsMain/kotlin/App.kt b/src/jsMain/kotlin/App.kt index bc7578e2..c5153ec8 100644 --- a/src/jsMain/kotlin/App.kt +++ b/src/jsMain/kotlin/App.kt @@ -24,7 +24,7 @@ external interface AppProps : Props { var setLanguage: (Language) -> Unit var cliContext: CliContext - var updateCliContext: (CliContext) -> Unit + var updateCliContext: (CliContext, Boolean) -> Unit } val mainScope = MainScope() @@ -36,7 +36,7 @@ fun languageSetup(props: AppProps) { if (selectedLanguage != null) { props.setLanguage(selectedLanguage) props.fetchPolyglot(selectedLanguage.getLanguageCode()); - props.updateCliContext(props.cliContext.setLocale(selectedLanguage.getLanguageCode())) + props.updateCliContext(props.cliContext.setLocale(selectedLanguage.getLanguageCode()), false) break } } diff --git a/src/jsMain/kotlin/api/StatusApi.kt b/src/jsMain/kotlin/api/StatusApi.kt index 6e70c4b2..76b6c867 100644 --- a/src/jsMain/kotlin/api/StatusApi.kt +++ b/src/jsMain/kotlin/api/StatusApi.kt @@ -2,6 +2,7 @@ package api import constants.PACKAGES_SERVER_STATUS_ENDPOINT import constants.TX_SERVER_STATUS_ENDPOINT +import constants.VALIDATION_ENGINES_ENDPOINT import io.ktor.client.call.* import io.ktor.client.request.* @@ -9,6 +10,10 @@ suspend fun isTerminologyServerUp(): Boolean { return jsonClient.get(urlString = endpoint + TX_SERVER_STATUS_ENDPOINT).body() } +suspend fun getValidationEngines(): Set { + return jsonClient.get(urlString = endpoint + VALIDATION_ENGINES_ENDPOINT).body() +} + suspend fun isPackagesServerUp(): Boolean { return jsonClient.get(urlString = endpoint + PACKAGES_SERVER_STATUS_ENDPOINT).body() } diff --git a/src/jsMain/kotlin/model/BundleValidationRule.kt b/src/jsMain/kotlin/model/BundleValidationRule.kt index 35c7ddb1..469a61cc 100644 --- a/src/jsMain/kotlin/model/BundleValidationRule.kt +++ b/src/jsMain/kotlin/model/BundleValidationRule.kt @@ -1,8 +1,6 @@ package model -import kotlinx.js.Object import kotlinx.serialization.Serializable -import utils.Preset @Serializable actual class BundleValidationRule actual constructor() { diff --git a/src/jsMain/kotlin/model/CliContext.kt b/src/jsMain/kotlin/model/CliContext.kt index a8ecb4d2..1ab3ef39 100644 --- a/src/jsMain/kotlin/model/CliContext.kt +++ b/src/jsMain/kotlin/model/CliContext.kt @@ -7,6 +7,7 @@ import kotlinx.serialization.Serializable @Serializable actual class CliContext actual constructor() { + private var baseEngine: String? = null private var extensions : List = listOf() private var doNative = false private var hintAboutNonMustSupport = false @@ -35,6 +36,37 @@ actual class CliContext actual constructor() { locale = "en" } + constructor (cliContext : CliContext) : this() { + this.igs = cliContext.igs.toList() + this.baseEngine = cliContext.baseEngine + this.extensions = cliContext.extensions.toList() + this.doNative = cliContext.doNative + this.hintAboutNonMustSupport = cliContext.hintAboutNonMustSupport + this.assumeValidRestReferences = cliContext.assumeValidRestReferences + this.noExtensibleBindingMessages = cliContext.noExtensibleBindingMessages + this.showTimes = cliContext.showTimes + this.allowExampleUrls = cliContext.allowExampleUrls + this.txServer = cliContext.txServer + this.txLog = cliContext.txLog + this.txCache = cliContext.txCache + this.snomedCT = cliContext.snomedCT + this.targetVer = cliContext.targetVer + this.sv = cliContext.sv + this.profiles = cliContext.profiles.toList() + this.checkIPSCodes = cliContext.checkIPSCodes + this.bundleValidationRules = cliContext.bundleValidationRules.toList() + this.locale = cliContext.locale + } + + actual fun getBaseEngine() : String? { + return baseEngine; + } + + actual fun setBaseEngine(baseEngine: String?): CliContext { + this.baseEngine = baseEngine + return this + } + actual fun isDoNative(): Boolean { return doNative } @@ -150,7 +182,7 @@ actual class CliContext actual constructor() { return this } - fun addIg(ig: String): CliContext { + actual fun addIg(ig: String): CliContext { this.igs += ig return this } @@ -237,4 +269,6 @@ actual class CliContext actual constructor() { this.bundleValidationRules = bundleValidationRules return this } + + } \ No newline at end of file diff --git a/src/jsMain/kotlin/reactredux/containers/AppMain.kt b/src/jsMain/kotlin/reactredux/containers/AppMain.kt index 2269da93..58239fac 100644 --- a/src/jsMain/kotlin/reactredux/containers/AppMain.kt +++ b/src/jsMain/kotlin/reactredux/containers/AppMain.kt @@ -24,7 +24,7 @@ private interface AppStateProps : Props { private interface AppDispatchProps : Props { var fetchPolyglot: (String) -> Unit var setLanguage: (Language) -> Unit - var updateCliContext: (CliContext) -> Unit + var updateCliContext: (CliContext, Boolean) -> Unit } val app: ComponentClass = @@ -37,6 +37,6 @@ val app: ComponentClass = { dispatch, _ -> fetchPolyglot = { dispatch(LocalizationSlice.fetchPolyglot(it)) } setLanguage = { dispatch(LocalizationSlice.SetLanguage(it)) } - updateCliContext = { dispatch(ValidationContextSlice.UpdateCliContext(it)) } + updateCliContext = { cliContext: CliContext, resetBaseEngine: Boolean -> dispatch(ValidationContextSlice.UpdateCliContext(cliContext, resetBaseEngine)) } } )(App::class.js.unsafeCast>()) \ No newline at end of file diff --git a/src/jsMain/kotlin/reactredux/containers/FileUploadTab.kt b/src/jsMain/kotlin/reactredux/containers/FileUploadTab.kt index 807f2f68..51271c9d 100644 --- a/src/jsMain/kotlin/reactredux/containers/FileUploadTab.kt +++ b/src/jsMain/kotlin/reactredux/containers/FileUploadTab.kt @@ -13,11 +13,13 @@ import reactredux.store.AppState import redux.RAction import redux.WrapperAction import ui.components.tabs.uploadtab.FileUploadTab +import utils.Language private interface FileUploadTabProps : Props { var uploadedFiles: List var cliContext: CliContext var sessionId: String + var language: Language var polyglot: Polyglot } @@ -28,7 +30,7 @@ private interface FileUploadTabDispatchProps : Props { var toggleValidationInProgress: (Boolean, FileInfo) -> Unit var addValidationOutcome: (ValidationOutcome) -> Unit - var updateCliContext: (CliContext) -> Unit + var updateCliContext: (CliContext, Boolean) -> Unit var updateIgPackageInfoSet: (Set) -> Unit var updateExtensionSet: (Set) -> Unit var updateProfileSet: (Set)-> Unit @@ -41,6 +43,7 @@ val fileUploadTab: ComponentClass = uploadedFiles = state.uploadedResourceSlice.uploadedFiles cliContext = state.validationContextSlice.cliContext sessionId = state.validationSessionSlice.sessionId + language = state.localizationSlice.selectedLanguage polyglot = state.localizationSlice.polyglotInstance }, { dispatch, _ -> @@ -52,9 +55,7 @@ val fileUploadTab: ComponentClass = fileInfo)) } addValidationOutcome = { dispatch(UploadedResourceSlice.AddValidationOutcome(it)) } - updateCliContext = { - dispatch(ValidationContextSlice.UpdateCliContext(it)) - } + updateCliContext = { cliContext: CliContext, resetBaseEngine: Boolean -> dispatch(ValidationContextSlice.UpdateCliContext(cliContext, resetBaseEngine)) } updateIgPackageInfoSet = { dispatch(ValidationContextSlice.UpdateIgPackageInfoSet(it)) } diff --git a/src/jsMain/kotlin/reactredux/containers/HeaderMenu.kt b/src/jsMain/kotlin/reactredux/containers/HeaderMenu.kt index bea8b582..7247eb4f 100644 --- a/src/jsMain/kotlin/reactredux/containers/HeaderMenu.kt +++ b/src/jsMain/kotlin/reactredux/containers/HeaderMenu.kt @@ -29,7 +29,7 @@ private interface HeaderDispatchProps : Props { var fetchPolyglot: (String) -> Unit var setPolyglot: (Polyglot) -> Unit var setLanguage: (Language) -> Unit - var updateCliContext: (CliContext) -> Unit + var updateCliContext: (CliContext, Boolean) -> Unit } val header: ComponentClass = @@ -45,6 +45,6 @@ val header: ComponentClass = fetchPolyglot = { dispatch(LocalizationSlice.fetchPolyglot(it)) } setPolyglot = { dispatch(LocalizationSlice.SetPolyglot(it)) } setLanguage = { dispatch(LocalizationSlice.SetLanguage(it)) } - updateCliContext = { dispatch(ValidationContextSlice.UpdateCliContext(it)) } + updateCliContext = { cliContext: CliContext, resetBaseEngine: Boolean -> dispatch(ValidationContextSlice.UpdateCliContext(cliContext, resetBaseEngine)) } } )(Header::class.js.unsafeCast>()) \ No newline at end of file diff --git a/src/jsMain/kotlin/reactredux/containers/ManualEntryTab.kt b/src/jsMain/kotlin/reactredux/containers/ManualEntryTab.kt index 0919f977..41947c6c 100644 --- a/src/jsMain/kotlin/reactredux/containers/ManualEntryTab.kt +++ b/src/jsMain/kotlin/reactredux/containers/ManualEntryTab.kt @@ -17,12 +17,14 @@ import redux.RAction import redux.WrapperAction import ui.components.tabs.entrytab.ManualEntryTab import ui.components.tabs.entrytab.ManualEntryTabProps +import utils.Language private interface ManualEntryTabStateProps : Props { var cliContext: CliContext var validationOutcome: ValidationOutcome? var currentManuallyEnteredText: String var validatingManualEntryInProgress: Boolean + var language: Language var polyglot: Polyglot var sessionId: String } @@ -46,6 +48,7 @@ val manualEntryTab: ComponentClass = validationOutcome = state.manualEntrySlice.validationOutcome currentManuallyEnteredText = state.manualEntrySlice.currentManuallyEnteredText validatingManualEntryInProgress = state.manualEntrySlice.validatingManualEntryInProgress + language = state.localizationSlice.selectedLanguage polyglot = state.localizationSlice.polyglotInstance sessionId = state.validationSessionSlice.sessionId }, @@ -53,20 +56,18 @@ val manualEntryTab: ComponentClass = setValidationOutcome = { dispatch(ManualEntrySlice.AddManualEntryOutcome(it)) } toggleValidationInProgress = { dispatch(ManualEntrySlice.ToggleValidationInProgress(it)) } updateCurrentlyEnteredText = { dispatch(ManualEntrySlice.UpdateCurrentlyEnteredText(it)) } - updateCliContext = { - dispatch(ValidationContextSlice.UpdateCliContext(it)) - } + updateCliContext = { dispatch(ValidationContextSlice.UpdateCliContext(it, false)) } updateIgPackageInfoSet = { - dispatch(ValidationContextSlice.UpdateIgPackageInfoSet(it)) + dispatch(ValidationContextSlice.UpdateIgPackageInfoSet(it, false)) } updateExtensionSet = { - dispatch(ValidationContextSlice.UpdateExtensionSet(it)) + dispatch(ValidationContextSlice.UpdateExtensionSet(it, false)) } updateProfileSet = { - dispatch(ValidationContextSlice.UpdateProfileSet(it)) + dispatch(ValidationContextSlice.UpdateProfileSet(it, false)) } updateBundleValidationRuleSet = { - dispatch(ValidationContextSlice.UpdateBundleValidationRuleSet(it)) + dispatch(ValidationContextSlice.UpdateBundleValidationRuleSet(it, false)) } setSessionId = { id: String -> dispatch(ValidationSessionSlice.SetSessionId(id)) } } diff --git a/src/jsMain/kotlin/reactredux/containers/OptionsPage.kt b/src/jsMain/kotlin/reactredux/containers/OptionsPage.kt index 28ed9954..4b875d30 100644 --- a/src/jsMain/kotlin/reactredux/containers/OptionsPage.kt +++ b/src/jsMain/kotlin/reactredux/containers/OptionsPage.kt @@ -46,9 +46,7 @@ val optionsPage: ComponentClass = polyglot = state.localizationSlice.polyglotInstance }, { dispatch, _ -> - updateCliContext = { - dispatch(ValidationContextSlice.UpdateCliContext(it)) - } + updateCliContext = { dispatch(ValidationContextSlice.UpdateCliContext(it, true)) } updateIgPackageInfoSet = { dispatch(ValidationContextSlice.UpdateIgPackageInfoSet(it)) } diff --git a/src/jsMain/kotlin/reactredux/slices/ValidationContextSlice.kt b/src/jsMain/kotlin/reactredux/slices/ValidationContextSlice.kt index 100310d6..fcb9bab4 100644 --- a/src/jsMain/kotlin/reactredux/slices/ValidationContextSlice.kt +++ b/src/jsMain/kotlin/reactredux/slices/ValidationContextSlice.kt @@ -1,5 +1,6 @@ package reactredux.slices +import constants.Preset import model.BundleValidationRule import model.CliContext import model.PackageInfo @@ -12,39 +13,52 @@ object ValidationContextSlice { val extensionSet: Set = mutableSetOf(), val profileSet: Set = mutableSetOf(), val bundleValidationRuleSet: Set = mutableSetOf(), - val cliContext: CliContext = CliContext() + val cliContext: CliContext = CliContext().setBaseEngine(Preset.DEFAULT.key) ) - data class UpdateIgPackageInfoSet(val packageInfo: Set) : RAction + data class UpdateIgPackageInfoSet(val packageInfo: Set, val resetBaseEngine: Boolean = true) : RAction - data class UpdateCliContext(val cliContext: CliContext) : RAction + data class UpdateCliContext(val cliContext: CliContext, val resetBaseEngine : Boolean = true) : RAction - data class UpdateExtensionSet(val extensionSet: Set) : RAction + data class UpdateExtensionSet(val extensionSet: Set, val resetBaseEngine : Boolean = true) : RAction - data class UpdateProfileSet(val profileSet: Set) : RAction + data class UpdateProfileSet(val profileSet: Set, val resetBaseEngine : Boolean = true) : RAction - data class UpdateBundleValidationRuleSet(val bundleValidationRuleSet: Set) : RAction + data class UpdateBundleValidationRuleSet(val bundleValidationRuleSet: Set, val resetBaseEngine : Boolean = true) : RAction + + private fun resetBaseEngine(cliContext: CliContext, resetBaseEngine: Boolean): CliContext { + return if (resetBaseEngine) cliContext.setBaseEngine(null) else cliContext + } fun reducer(state: State = State(), action: RAction): State { return when (action) { is UpdateIgPackageInfoSet -> state.copy( igPackageInfoSet = action.packageInfo, - cliContext = state.cliContext.setIgs(action.packageInfo.map{PackageInfo.igLookupString(it)}.toList()) + cliContext = resetBaseEngine( + state.cliContext.setIgs(action.packageInfo.map{PackageInfo.igLookupString(it)}.toList()), + action.resetBaseEngine) + ) is UpdateCliContext -> state.copy( - cliContext = action.cliContext + cliContext = resetBaseEngine(action.cliContext, action.resetBaseEngine) ) is UpdateExtensionSet -> state.copy( extensionSet = action.extensionSet, - cliContext = state.cliContext.setExtensions(action.extensionSet.toList()) + cliContext = resetBaseEngine(state.cliContext + .setExtensions(action.extensionSet.toList()) + , action.resetBaseEngine) ) is UpdateProfileSet -> state.copy( profileSet = action.profileSet, - cliContext = state.cliContext.setProfiles(action.profileSet.toList()) + cliContext = resetBaseEngine(state.cliContext + .setProfiles(action.profileSet.toList()) + , action.resetBaseEngine) ) is UpdateBundleValidationRuleSet -> state.copy( bundleValidationRuleSet = action.bundleValidationRuleSet, - cliContext = state.cliContext.setBundleValidationRules(action.bundleValidationRuleSet.toList()) + cliContext = resetBaseEngine(state.cliContext + .setBundleValidationRules(action.bundleValidationRuleSet.toList()) + , action.resetBaseEngine) ) else -> state } diff --git a/src/jsMain/kotlin/ui/components/header/Header.kt b/src/jsMain/kotlin/ui/components/header/Header.kt index ab02228f..4ff0ba56 100644 --- a/src/jsMain/kotlin/ui/components/header/Header.kt +++ b/src/jsMain/kotlin/ui/components/header/Header.kt @@ -37,7 +37,7 @@ external interface HeaderProps : Props { var setLanguage: (Language) -> Unit var cliContext: CliContext - var updateCliContext: (CliContext) -> Unit + var updateCliContext: (CliContext, Boolean) -> Unit } class HeaderState : State { diff --git a/src/jsMain/kotlin/ui/components/header/LanguageOption/LanguageSelect.kt b/src/jsMain/kotlin/ui/components/header/LanguageOption/LanguageSelect.kt index b50b73f2..6ffb24c2 100644 --- a/src/jsMain/kotlin/ui/components/header/LanguageOption/LanguageSelect.kt +++ b/src/jsMain/kotlin/ui/components/header/LanguageOption/LanguageSelect.kt @@ -17,7 +17,7 @@ external interface LanguageSelectProps : Props { var selectedLanguage : Language var setLanguage: (Language) -> Unit var cliContext: CliContext - var updateCliContext: (CliContext) -> Unit + var updateCliContext: (CliContext, Boolean) -> Unit } @@ -49,7 +49,7 @@ class LanguageSelect(props : LanguageSelectProps) : RComponent) -> Unit var updateBundleValidationRuleSet: (Set) -> Unit var setSessionId: (String) -> Unit + var language: Language var polyglot: Polyglot } class PresetSelectState : State { var snackbarOpen : String? = null - var preset : String = "" + var validationEngines: Set = emptySet() } class PresetSelect : RComponent() { init { state = PresetSelectState() + mainScope.launch { + val loadedValidationEngines = getValidationEngines() + setState { + validationEngines = loadedValidationEngines + } + } } fun handleSnackBarClose() { @@ -57,7 +65,6 @@ class PresetSelect : RComponent() { display = Display.inlineFlex flexDirection = FlexDirection.column alignSelf = Align.center - } Tooltip { attrs { @@ -81,14 +88,18 @@ class PresetSelect : RComponent() { +props.polyglot.t("preset_label") } Select { + attrs { label = ReactNode("Preset") - value = "".unsafeCast() + value = props.cliContext.getBaseEngine().unsafeCast() onChange = { event, _ -> val selectedPreset = Preset.getSelectedPreset(event.target.value) if (selectedPreset != null) { console.log("updating cli context for preset: " + event.target.value) - props.updateCliContext(selectedPreset.cliContext) + console.log("updating cli context with base engine: " + selectedPreset.cliContext.getBaseEngine()) + + val cliContext = CliContext(selectedPreset.cliContext).setLocale(props.language.getLanguageCode()) + props.updateCliContext(cliContext) props.updateIgPackageInfoSet(selectedPreset.igPackageInfo) props.updateExtensionSet(selectedPreset.extensionSet) props.updateProfileSet(selectedPreset.profileSet) @@ -107,11 +118,18 @@ class PresetSelect : RComponent() { } Preset.values().forEach { - MenuItem { - attrs { - value = it.key + if (state.validationEngines.contains(it.key)) { + MenuItem { + attrs { + value = it.key + } + +props.polyglot.t(it.polyglotKey) + console.log( + it.key + " " + props.cliContext.getBaseEngine() + ":" + it.key.equals( + props.cliContext.getBaseEngine() + ) + ) } - +props.polyglot.t(it.polyglotKey) } } } diff --git a/src/jsMain/kotlin/ui/components/tabs/entrytab/ManualEntryTab.kt b/src/jsMain/kotlin/ui/components/tabs/entrytab/ManualEntryTab.kt index 3861dea4..7eff3ddb 100644 --- a/src/jsMain/kotlin/ui/components/tabs/entrytab/ManualEntryTab.kt +++ b/src/jsMain/kotlin/ui/components/tabs/entrytab/ManualEntryTab.kt @@ -2,6 +2,7 @@ package ui.components.tabs.entrytab import Polyglot import api.sendValidationRequest +import constants.Preset import css.animation.FadeIn.fadeIn import css.const.BORDER_GRAY @@ -22,10 +23,7 @@ import ui.components.options.presetSelect import ui.components.tabs.heading import ui.components.validation.validationOutcomeContainer -import utils.assembleRequest -import utils.getJS -import utils.isJson -import utils.isXml +import utils.* //TODO make this an intelligent value private const val VALIDATION_TIME_LIMIT = 120000L @@ -35,9 +33,9 @@ external interface ManualEntryTabProps : Props { var validationOutcome: ValidationOutcome? var currentManuallyEnteredText: String var validatingManualEntryInProgress: Boolean + var language: Language var polyglot: Polyglot var sessionId: String - var setValidationOutcome: (ValidationOutcome) -> Unit var toggleValidationInProgress: (Boolean) -> Unit var updateCurrentlyEnteredText: (String) -> Unit @@ -123,6 +121,7 @@ class ManualEntryTab : RComponent() { updateProfileSet = props.updateProfileSet updateBundleValidationRuleSet = props.updateBundleValidationRuleSet setSessionId = props.setSessionId + language = props.language polyglot = props.polyglot } } @@ -154,59 +153,70 @@ class ManualEntryTab : RComponent() { displayingError = false ohShitYouDidIt = false } - props.toggleValidationInProgress(true) - println("clicontext :: sv == ${props.cliContext.getSv()}, version == ${props.cliContext.getTargetVer()}, languageCode == ${props.cliContext.getLanguageCode()}") - val request = assembleRequest( - cliContext = props.cliContext, - fileName = generateFileName(fileContent), - fileContent = fileContent, - fileType = null - ).setSessionId(props.sessionId) - mainScope.launch { - try { - withTimeout(VALIDATION_TIME_LIMIT) { - val validationResponse = sendValidationRequest(request) - props.setSessionId(validationResponse.getSessionId()) - val returnedOutcome = validationResponse.getOutcomes().map { it.setValidated(true) } - println("File validated\n" - + "filename -> " + returnedOutcome.first().getFileInfo().fileName - + "content -> " + returnedOutcome.first().getFileInfo().fileContent - + "type -> " + returnedOutcome.first().getFileInfo().fileType - + "Issues ::\n" + returnedOutcome.first().getMessages() - .joinToString { "\n" }) - props.setValidationOutcome(returnedOutcome.first()) - props.toggleValidationInProgress(false) - } - } catch (e: TimeoutCancellationException) { - setState { - errorMessage = props.polyglot.t("manual_entry_timeout_exception") - displayingError = true - } - props.toggleValidationInProgress(false) - } catch (e : ValidationResponseException) { - setState { - errorMessage = props.polyglot.t("manual_entry_validation_response_exception", - getJS(arrayOf(Pair("httpResponseCode", e.httpStatusCode))) - ) - displayingError = true - } - println("Exception ${e.message}") - } - catch (e: Exception) { - setState { - if (props.currentManuallyEnteredText.contains("Mark is super dorky")) { - ohShitYouDidIt = true - props.updateCurrentlyEnteredText("Ken is super dorky.") - errorMessage = "Never gonna give you up, never gonna let you down, never gonna run around..." + println("Attempting to validate with: " + props.cliContext.getBaseEngine()) + val cliContext : CliContext? = if (props.cliContext.getBaseEngine() == null) { + println("Custom validation") + props.cliContext + } else { + println("Preset") + Preset.getSelectedPreset(props.cliContext.getBaseEngine())?.cliContext + } + if (cliContext != null) { + props.toggleValidationInProgress(true) + println("clicontext :: sv == ${cliContext.getSv()}, version == ${props.cliContext.getTargetVer()}, languageCode == ${props.cliContext.getLanguageCode()}") + val request = assembleRequest( + cliContext = CliContext(cliContext).setLocale(props.cliContext.getLanguageCode()), + fileName = generateFileName(fileContent), + fileContent = fileContent, + fileType = null + ).setSessionId(props.sessionId) + mainScope.launch { + try { + withTimeout(VALIDATION_TIME_LIMIT) { + val validationResponse = sendValidationRequest(request) + props.setSessionId(validationResponse.getSessionId()) + val returnedOutcome = validationResponse.getOutcomes().map { it.setValidated(true) } + println("File validated\n" + + "filename -> " + returnedOutcome.first().getFileInfo().fileName + + "content -> " + returnedOutcome.first().getFileInfo().fileContent + + "type -> " + returnedOutcome.first().getFileInfo().fileType + + "Issues ::\n" + returnedOutcome.first().getMessages() + .joinToString { "\n" }) + props.setValidationOutcome(returnedOutcome.first()) + props.toggleValidationInProgress(false) + } + } catch (e: TimeoutCancellationException) { + setState { + errorMessage = props.polyglot.t("manual_entry_timeout_exception") displayingError = true - } else { - errorMessage = props.polyglot.t("manual_entry_cannot_parse_exception") + } + props.toggleValidationInProgress(false) + } catch (e: ValidationResponseException) { + setState { + errorMessage = props.polyglot.t( + "manual_entry_validation_response_exception", + getJS(arrayOf(Pair("httpResponseCode", e.httpStatusCode))) + ) displayingError = true } + println("Exception ${e.message}") + } catch (e: Exception) { + setState { + if (props.currentManuallyEnteredText.contains("Mark is super dorky")) { + ohShitYouDidIt = true + props.updateCurrentlyEnteredText("Ken is super dorky.") + errorMessage = + "Never gonna give you up, never gonna let you down, never gonna run around..." + displayingError = true + } else { + errorMessage = props.polyglot.t("manual_entry_cannot_parse_exception") + displayingError = true + } + } + println("Exception ${e.message}") + } finally { + props.toggleValidationInProgress(false) } - println("Exception ${e.message}") - } finally { - props.toggleValidationInProgress(false) } } } diff --git a/src/jsMain/kotlin/ui/components/tabs/uploadtab/FileUploadTab.kt b/src/jsMain/kotlin/ui/components/tabs/uploadtab/FileUploadTab.kt index 38d979dd..f2ad26dd 100644 --- a/src/jsMain/kotlin/ui/components/tabs/uploadtab/FileUploadTab.kt +++ b/src/jsMain/kotlin/ui/components/tabs/uploadtab/FileUploadTab.kt @@ -18,12 +18,14 @@ import ui.components.options.presetSelect import ui.components.tabs.heading import ui.components.tabs.uploadtab.filelist.fileEntryList import ui.components.validation.validationOutcomePopup +import utils.Language import utils.assembleRequest external interface FileUploadTabProps : Props { var uploadedFiles: List var cliContext: CliContext var sessionId: String + var language: Language var polyglot: Polyglot var deleteFile: (FileInfo) -> Unit @@ -110,6 +112,7 @@ class FileUploadTab : RComponent() { updateProfileSet = props.updateProfileSet updateBundleValidationRuleSet = props.updateBundleValidationRuleSet setSessionId = props.setSessionId + language = props.language polyglot = props.polyglot } } diff --git a/src/jsMain/kotlin/utils/RequestUtils.kt b/src/jsMain/kotlin/utils/RequestUtils.kt index 073e7293..2edfc5ef 100644 --- a/src/jsMain/kotlin/utils/RequestUtils.kt +++ b/src/jsMain/kotlin/utils/RequestUtils.kt @@ -19,5 +19,21 @@ fun assembleRequest(cliContext: CliContext, file: FileInfo): ValidationRequest { } fun assembleRequest(cliContext: CliContext, files: List): ValidationRequest { - return ValidationRequest(cliContext, files) -} \ No newline at end of file + val assembledCliContext : CliContext= assembleCliContext(cliContext); + return ValidationRequest(assembledCliContext, files) +} + +fun assembleCliContext(cliContext: CliContext): CliContext { + if (cliContext.getBaseEngine() == null) { + return cliContext + } + console.log("Building new CLI Context") + val baseEngineContext = CliContext() + + baseEngineContext.setBaseEngine(cliContext.getBaseEngine()) + for (profile in cliContext.getProfiles()) { + baseEngineContext.addProfile(profile) + } + baseEngineContext.setLocale(cliContext.getLanguageCode()) + return baseEngineContext; +} diff --git a/src/jvmMain/kotlin/Config.kt b/src/jvmMain/kotlin/Config.kt new file mode 100644 index 00000000..070c1282 --- /dev/null +++ b/src/jvmMain/kotlin/Config.kt @@ -0,0 +1 @@ +data class Config(val host: String, val port: Int) diff --git a/src/jvmMain/kotlin/Module.kt b/src/jvmMain/kotlin/Module.kt index 43c0a42a..33334690 100644 --- a/src/jvmMain/kotlin/Module.kt +++ b/src/jvmMain/kotlin/Module.kt @@ -9,12 +9,14 @@ import controller.version.versionModule import desktop.launchLocalApp import io.ktor.server.application.* import io.ktor.server.plugins.callloging.* -import io.ktor.server.plugins.cors.* + import io.ktor.server.plugins.compression.* import io.ktor.server.plugins.contentnegotiation.* import io.ktor.http.* import io.ktor.server.http.content.* import io.ktor.serialization.jackson.* + +import io.ktor.server.plugins.cors.routing.* import io.ktor.server.response.* import io.ktor.server.routing.* diff --git a/src/jvmMain/kotlin/Server.kt b/src/jvmMain/kotlin/Server.kt index 92e24cb7..f425da8c 100644 --- a/src/jvmMain/kotlin/Server.kt +++ b/src/jvmMain/kotlin/Server.kt @@ -1,11 +1,8 @@ import api.ApiInjection -import com.typesafe.config.ConfigFactory import controller.ControllersInjection import io.ktor.server.application.* -import io.ktor.server.config.* import io.ktor.server.engine.* import io.ktor.server.jetty.* -import io.ktor.util.* import org.hl7.fhir.validation.ValidatorCli import org.hl7.fhir.validation.cli.utils.Params import org.koin.dsl.module @@ -13,7 +10,6 @@ import org.koin.ktor.plugin.Koin import utils.PackageCacheDownloaderRunnable import java.util.concurrent.TimeUnit -private const val DEFAULT_ENVIRONMENT: String = "dev" private const val FULL_STACK_FLAG = "-startServer" private const val LOCAL_APP_FLAG = "-gui" @@ -59,8 +55,8 @@ fun main(args: Array) { } fun startServer(args: Array) { - val environment = System.getenv()["ENVIRONMENT"] ?: handleDefaultEnvironment() - val config = extractConfig(environment, HoconApplicationConfig(ConfigFactory.load())) + + val config = ValidatorApplicationConfig.config val preloadCache = System.getenv()["PRELOAD_CACHE"] ?: "false" @@ -101,21 +97,5 @@ private fun runningAsDesktopApp(args: Array): Boolean { return args.isNotEmpty() && Params.hasParam(args, LOCAL_APP_FLAG) && !Params.hasParam(args, FULL_STACK_FLAG) } -data class Config(val host: String, val port: Int) - -fun extractConfig(environment: String, hoconConfig: HoconApplicationConfig): Config { - val hoconEnvironment = hoconConfig.config("ktor.deployment.$environment") - return Config( - hoconEnvironment.property("host").getString(), - Integer.parseInt(hoconEnvironment.property("port").getString()), - ) -} -/** - * Returns default environment. - */ -fun handleDefaultEnvironment(): String { - println("Falling back to default environment 'dev'") - return DEFAULT_ENVIRONMENT -} \ No newline at end of file diff --git a/src/jvmMain/kotlin/ValidatorApplicationConfig.kt b/src/jvmMain/kotlin/ValidatorApplicationConfig.kt new file mode 100644 index 00000000..959991c9 --- /dev/null +++ b/src/jvmMain/kotlin/ValidatorApplicationConfig.kt @@ -0,0 +1,34 @@ +import com.typesafe.config.ConfigFactory +import io.ktor.server.config.* + +private const val DEFAULT_ENVIRONMENT: String = "dev" + +class ValidatorApplicationConfig { + + companion object { + val config = extractConfig(detectEnvironment(), HoconApplicationConfig(ConfigFactory.load())) + + private fun detectEnvironment(): String { + return System.getenv()["ENVIRONMENT"] ?: handleDefaultEnvironment() + } + + /** + * Returns default environment. + */ + private fun handleDefaultEnvironment(): String { + println("Falling back to default environment 'dev'") + return DEFAULT_ENVIRONMENT + } + + private fun extractConfig(environment: String, hoconConfig: HoconApplicationConfig): Config { + val hoconEnvironment = hoconConfig.config("ktor.deployment.$environment") + return Config( + hoconEnvironment.property("host").getString(), + Integer.parseInt(hoconEnvironment.property("port").getString()) + ) + } + } + + + +} \ No newline at end of file diff --git a/src/jvmMain/kotlin/api/ApiInjection.kt b/src/jvmMain/kotlin/api/ApiInjection.kt index 7277a0cf..d9e34f76 100644 --- a/src/jvmMain/kotlin/api/ApiInjection.kt +++ b/src/jvmMain/kotlin/api/ApiInjection.kt @@ -15,7 +15,9 @@ object ApiInjection { private const val PACKAGE_CLIENT_ADDRESS = "https://packages.fhir.org" val koinBeans = module { - single { ValidationServiceFactoryImpl() } + single(createdAtStart = true) { + + ValidationServiceFactoryImpl() } single { PackageClient(PackageServer(PACKAGE_CLIENT_ADDRESS)) } single { TerminologyApiImpl() } single { EndpointApiImpl() } diff --git a/src/jvmMain/kotlin/controller/validation/GuavaSessionCacheAdapter.kt b/src/jvmMain/kotlin/controller/validation/GuavaSessionCacheAdapter.kt new file mode 100644 index 00000000..cf9b9c4c --- /dev/null +++ b/src/jvmMain/kotlin/controller/validation/GuavaSessionCacheAdapter.kt @@ -0,0 +1,54 @@ +package controller.validation + +import com.google.common.cache.Cache +import com.google.common.cache.CacheBuilder +import org.hl7.fhir.validation.ValidationEngine +import org.hl7.fhir.validation.cli.services.SessionCache +import java.util.* +import java.util.concurrent.TimeUnit + +class GuavaSessionCacheAdapter(cacheSize : Long, cacheDuration: Long) : SessionCache { + private val cache: Cache = CacheBuilder.newBuilder().expireAfterAccess(cacheDuration, TimeUnit.MINUTES).maximumSize(cacheSize).build() + + override fun cacheSession(validationEngine: ValidationEngine): String { + val generatedId = generateID() + cache.put(generatedId, validationEngine) + println("Cache size: " + cache.size()) + return generatedId + } + + override fun cacheSession(sessionId: String?, validationEngine: ValidationEngine): String { + var sessionIdVar = sessionId + if (sessionIdVar == null) { + sessionIdVar = cacheSession(validationEngine) + } else { + cache.put(sessionIdVar, validationEngine) + println("Cache size: " + cache.size()) + } + return sessionIdVar + } + + override fun sessionExists(sessionKey: String?): Boolean { + return cache.asMap().containsKey(sessionKey) + } + + override fun fetchSessionValidatorEngine(sessionKey: String): ValidationEngine? { + return cache.getIfPresent(sessionKey) + } + + override fun getSessionIds(): Set { + return cache.asMap().keys + } + + override fun cleanUp() { + cache.cleanUp() + } + + /** + * Session ids generated internally are UUID [String]. + * @return A new [String] session id. + */ + private fun generateID(): String { + return UUID.randomUUID().toString() + } +} \ No newline at end of file diff --git a/src/jvmMain/kotlin/controller/validation/ValidationController.kt b/src/jvmMain/kotlin/controller/validation/ValidationController.kt index b5c13ba9..499c54ff 100644 --- a/src/jvmMain/kotlin/controller/validation/ValidationController.kt +++ b/src/jvmMain/kotlin/controller/validation/ValidationController.kt @@ -7,5 +7,7 @@ import org.hl7.fhir.validation.cli.model.ValidationRequest interface ValidationController { suspend fun validateRequest(validationRequest: ValidationRequest): ValidationResponse + suspend fun getValidationEngines() : Set + suspend fun getAppVersions() : AppVersions } \ No newline at end of file diff --git a/src/jvmMain/kotlin/controller/validation/ValidationControllerImpl.kt b/src/jvmMain/kotlin/controller/validation/ValidationControllerImpl.kt index 1b0a831f..a07dd8bb 100644 --- a/src/jvmMain/kotlin/controller/validation/ValidationControllerImpl.kt +++ b/src/jvmMain/kotlin/controller/validation/ValidationControllerImpl.kt @@ -29,4 +29,8 @@ class ValidationControllerImpl : ValidationController, KoinComponent { override suspend fun getAppVersions(): AppVersions { return AppVersions(getValidatorWrapperVersion(), VersionUtil.getVersion()) } + + override suspend fun getValidationEngines(): Set { + return validationServiceFactory.getValidationService().baseEngineKeys; + } } \ No newline at end of file diff --git a/src/jvmMain/kotlin/controller/validation/ValidationModule.kt b/src/jvmMain/kotlin/controller/validation/ValidationModule.kt index 0f11ed47..776775fe 100644 --- a/src/jvmMain/kotlin/controller/validation/ValidationModule.kt +++ b/src/jvmMain/kotlin/controller/validation/ValidationModule.kt @@ -2,6 +2,7 @@ package controller.validation import constants.VALIDATION_ENDPOINT import constants.VALIDATOR_VERSION_ENDPOINT +import constants.VALIDATION_ENGINES_ENDPOINT import io.ktor.http.* import io.ktor.server.application.* @@ -53,4 +54,8 @@ fun Route.validationModule() { get(VALIDATOR_VERSION_ENDPOINT) { call.respond(HttpStatusCode.OK, validationController.getAppVersions()) } + + get(VALIDATION_ENGINES_ENDPOINT) { + call.respond(HttpStatusCode.OK, validationController.getValidationEngines()) + } } diff --git a/src/jvmMain/kotlin/controller/validation/ValidationServiceFactoryImpl.kt b/src/jvmMain/kotlin/controller/validation/ValidationServiceFactoryImpl.kt index 509ea0e6..ac342950 100644 --- a/src/jvmMain/kotlin/controller/validation/ValidationServiceFactoryImpl.kt +++ b/src/jvmMain/kotlin/controller/validation/ValidationServiceFactoryImpl.kt @@ -1,30 +1,56 @@ package controller.validation -import java.util.concurrent.TimeUnit; - -import org.hl7.fhir.validation.cli.services.ValidationService -import org.hl7.fhir.validation.cli.services.SessionCache +import com.typesafe.config.ConfigFactory +import constants.Preset +import io.ktor.server.config.* +import model.PackageInfo import org.hl7.fhir.validation.cli.services.PassiveExpiringSessionCache +import org.hl7.fhir.validation.cli.services.SessionCache +import org.hl7.fhir.validation.cli.services.ValidationService +import java.util.concurrent.TimeUnit +import kotlin.concurrent.thread + -private const val MIN_FREE_MEMORY = 250000000 private const val SESSION_DEFAULT_DURATION: Long = 60 +private const val SESSION_DEFAULT_SIZE: Long = 4 + class ValidationServiceFactoryImpl : ValidationServiceFactory { private var validationService: ValidationService init { validationService = createValidationServiceInstance(); + } - fun createValidationServiceInstance() : ValidationService { + fun createValidationServiceInstance(): ValidationService { val sessionCacheDuration = System.getenv("SESSION_CACHE_DURATION")?.toLong() ?: SESSION_DEFAULT_DURATION; - val sessionCache: SessionCache = PassiveExpiringSessionCache(sessionCacheDuration, TimeUnit.MINUTES).setResetExpirationAfterFetch(true); - return ValidationService(sessionCache); + val sessionCacheSize = System.getenv("SESSION_CACHE_SIZE")?.toLong() ?: SESSION_DEFAULT_SIZE + + val sessionCache: SessionCache = + GuavaSessionCacheAdapter(sessionCacheSize, sessionCacheDuration) + val validationService = ValidationService(sessionCache); + thread { + Preset.values().forEach { + if (it != Preset.CUSTOM) { + println("Loading preset: " + it.key) + try { + validationService.putBaseEngine(it.key, it.cliContext) + } catch (e: Exception) { + println("Error loading preset: " + it.key) + e.printStackTrace() + } + println("Preset loaded: " + it.key); + } + } + } + return validationService } override fun getValidationService() : ValidationService { - if (java.lang.Runtime.getRuntime().freeMemory() < MIN_FREE_MEMORY) { - println("Free memory ${java.lang.Runtime.getRuntime().freeMemory()} is less than ${MIN_FREE_MEMORY}. Re-initializing validationService"); + val engineReloadThreshold = (System.getenv("ENGINE_RELOAD_THRESHOLD") ?: "250000000").toLong() + if (java.lang.Runtime.getRuntime().freeMemory() < engineReloadThreshold) { + println("Free memory ${java.lang.Runtime.getRuntime().freeMemory()} is less than ${engineReloadThreshold}. Re-initializing validationService"); validationService = createValidationServiceInstance(); } return validationService; diff --git a/src/jvmTest/kotlin/controller/validation/GuavaCacheTest.kt b/src/jvmTest/kotlin/controller/validation/GuavaCacheTest.kt new file mode 100644 index 00000000..08268a8d --- /dev/null +++ b/src/jvmTest/kotlin/controller/validation/GuavaCacheTest.kt @@ -0,0 +1,41 @@ +package controller.validation + +import io.mockk.mockk +import org.hl7.fhir.validation.ValidationEngine +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.TestInstance + +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +class GuavaCacheTest { + + @Test + fun `test happy path`() { + val sessionCache: GuavaSessionCacheAdapter = + GuavaSessionCacheAdapter(2, 10) + val sessionIds : Set = sessionCache.getSessionIds(); + val engine1 : ValidationEngine = mockk() + val sessionId1 = sessionCache.cacheSession(engine1); + + val engine2 : ValidationEngine = mockk() + val sessionId2 = sessionCache.cacheSession(engine2); + + assert(sessionCache.sessionIds.size == 2) + + val engine3 : ValidationEngine = mockk() + val sessionId3 = sessionCache.cacheSession(engine3); + + assert(sessionCache.sessionIds.size == 2) + assert(sessionCache.sessionExists(sessionId2)); + assert(sessionCache.sessionExists(sessionId3)); + + sessionCache.fetchSessionValidatorEngine(sessionId2); + + val engine4 : ValidationEngine = mockk() + val sessionId4 = sessionCache.cacheSession(engine4); + + assert(sessionCache.sessionIds.size == 2) + assert(sessionCache.sessionExists(sessionId2)); + assert(sessionCache.sessionExists(sessionId4)); + + } +} \ No newline at end of file