diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 7387509..d3d15b7 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -10,7 +10,7 @@ jobs: steps: - uses: actions/checkout@v3 - + - name: Install Node uses: actions/setup-node@v3 with: @@ -34,9 +34,33 @@ jobs: - name: Install Jekyll run: sudo gem install jekyll jekyll-plantuml + - name: Run FHIR server (TODO - load package from vars and validate - maybe just let the publisher handle that...) + run: docker run -d -p 8080:8080 -e hapi.fhir.daoconfig_client_id_strategy=UUID -e hapi.fhir.client_id_strategy=ANY hapiproject/hapi:latest + + - name: Convert FSH to JSON and set up resources folder in input + run: sushi .; mkdir -p input/resources + + - name: Sleep to give server time to start + run: sleep 90 + + - name: Load add-condition-transaction-example-1 + run: curl -X POST -H "Content-type:application/fhir+json;fhirVersion=4.0" -d @fsh-generated/resources/Bundle-add-condition-transaction-example-1.json http://localhost:8080/fhir; + + - name: Query add-condition-transaction-example-1 + run: sleep 10; curl $(cat input/queries/get-flags-associated-with-patient.md) | jq '.id = "QUERY-OUTPUT--add-condition-transaction-example-1"' > input/resources/QUERY-OUTPUT--add-condition-transaction-example-1.json + + - name: Load add-condition-transaction-example-2 + run: curl -X POST -H "Content-type:application/fhir+json;fhirVersion=4.0" -d @fsh-generated/resources/Bundle-add-condition-transaction-example-2.json http://localhost:8080/fhir; \ + + - name: Query add-condition-transaction-example-2 + run: sleep 10; curl $(cat input/queries/get-flags-associated-with-patient.md) | jq '.id = "QUERY-OUTPUT--add-condition-transaction-example-2"' > input/resources/QUERY-OUTPUT--add-condition-transaction-example-2.json + - name: Build IG run: ./_genonce.sh + - name: Download and unpack font-awesome + run: wget https://fontawesome.com/v4/assets/font-awesome-4.7.0.zip; unzip font-awesome-4.7.0.zip -d output + - name: Publish IG Artefact uses: actions/upload-artifact@v3 with: diff --git a/.gitignore b/.gitignore index 74a9223..f90eb77 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,11 @@ _site/ # Ignore folders generated by Bundler .bundle/ vendor/ +input-cache +node_modules +output +temp +template +font-awesome* +fsh-generated +input/resources/QUERY-OUTPUT* diff --git a/ig-template/package/includes/_append.fragment-header.html b/ig-template/package/includes/_append.fragment-header.html index f533d2e..33ce6b7 100644 --- a/ig-template/package/includes/_append.fragment-header.html +++ b/ig-template/package/includes/_append.fragment-header.html @@ -1,4 +1,5 @@ +
diff --git a/input/fsh/examples/add-condition-transaction-example-1.fsh b/input/fsh/examples/add-condition-transaction-example-1.fsh new file mode 100644 index 0000000..84ad930 --- /dev/null +++ b/input/fsh/examples/add-condition-transaction-example-1.fsh @@ -0,0 +1,97 @@ +Alias: $consentscope = http://terminology.hl7.org/CodeSystem/consentscope +Alias: $RARecord-FlagCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1 +Alias: $sct = https://snomed.info/sct +Alias: $condition-clinical = http://terminology.hl7.org/CodeSystem/condition-clinical +Alias: $CareConnect-ConditionCategory-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1 +Alias: $RARecord-ConditionCode-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConditionCode-1 +Alias: $DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperation +Alias: $CareConnect-SDSJobRoleName-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 +Alias: $RARecord-AdjustmentCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1 + +Instance: add-condition-transaction-example-1 +InstanceOf: Bundle +Usage: #example +* type = #transaction +* entry[0].fullUrl = "urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" +* entry[=].resource = patient-example-1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Patient?identifier=9912003888" +* entry[+].fullUrl = "urn:uuid:959fbc3c-0907-419e-aa3d-ab88f2d90c5e" +* entry[=].resource = consent-example-1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Consent?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" +* entry[+].fullUrl = "urn:uuid:41a84a93-1c95-4162-b13c-1c617509e6e2" +* entry[=].resource = condition-example-1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Condition?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" +* entry[+].fullUrl = "urn:uuid:fba99f70-fe1d-42e2-b77a-916e44b53c19" +* entry[=].resource = master-flag-example-1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" +* entry[+].fullUrl = "urn:uuid:04adcb5b-3de7-4f67-97f0-b2fdf941ba85" +* entry[=].resource = condition-flag-example-1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85" + +Instance: patient-example-1 +InstanceOf: Patient +Usage: #inline +* identifier.system = "https://fhir.nhs.uk/Id/nhs-number" +* identifier.value = "9912003888" +* active = true +* name.use = #official +* name.family = "Duck" +* name.given = "Donald" +* gender = #male +* birthDate = "1970-01-01" + +Instance: consent-example-1 +InstanceOf: Consent +Usage: #inline +* status = #active +* scope = $consentscope#patient-privacy +* category = $RARecord-FlagCategory-1#NRAF "National Reasonable Adjustments Flag" +* provision.purpose = $sct#370856009 "Limiting access to confidential patient information" +* patient = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) +* policy.authority = "https://www.gov.uk/" +* policy.uri = "https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf" + +Instance: master-flag-example-1 +InstanceOf: Flag +Usage: #inline +* status = #active +* code = $RARecord-FlagCategory-1#NRAF "National Reasonable Adjustments Flag" +* category = $RARecord-FlagCategory-1#NRAF "National Reasonable Adjustments Flag" +* subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) +* contained.resourceType = "Provenance" +* contained.id = "4c75ce1f-1ad7-4391-b5f6-104754c7e904" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $DataOperation#CREATE "create" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" + +Instance: condition-example-1 +InstanceOf: Condition +Usage: #inline +* clinicalStatus = $condition-clinical#active +* category = $CareConnect-ConditionCategory-1#issue "Issue" +* code = $RARecord-ConditionCode-1#5 "Learning or understanding or concentrating" +* subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) + +Instance: condition-flag-example-1 +InstanceOf: Flag +Usage: #inline +* status = #active +* code = $RARecord-AdjustmentCategory-1#001 "Communication support" +* category = $RARecord-FlagCategory-1#NRAF "National Reasonable Adjustments Flag" +* subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) +* contained.resourceType = "Provenance" +* contained.id = "ddb4df1c-d15a-4d02-9346-c034732c5a37" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $DataOperation#CREATE "create" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" diff --git a/input/fsh/examples/add-condition-transaction-example-2.fsh b/input/fsh/examples/add-condition-transaction-example-2.fsh new file mode 100644 index 0000000..ed427f1 --- /dev/null +++ b/input/fsh/examples/add-condition-transaction-example-2.fsh @@ -0,0 +1,66 @@ +Alias: $consentscope = http://terminology.hl7.org/CodeSystem/consentscope +Alias: $RARecord-FlagCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1 +Alias: $sct = https://snomed.info/sct +Alias: $condition-clinical = http://terminology.hl7.org/CodeSystem/condition-clinical +Alias: $CareConnect-ConditionCategory-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1 +Alias: $RARecord-ConditionCode-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConditionCode-1 +Alias: $DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperation +Alias: $CareConnect-SDSJobRoleName-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 +Alias: $RARecord-AdjustmentCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1 + +Instance: add-condition-transaction-example-2 +InstanceOf: Bundle +Usage: #example +* type = #transaction +* entry[0].fullUrl = "urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" +* entry[=].resource = patient-example-1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Patient?identifier=9912003888" +* entry[+].fullUrl = "urn:uuid:959fbc3c-0907-419e-aa3d-ab88f2d90c5e" +* entry[=].resource = consent-example-1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Consent?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" +* entry[+].fullUrl = "urn:uuid:fba99f70-fe1d-42e2-b77a-916e44b53c19" +* entry[=].resource = master-flag-example-1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" +* entry[+].fullUrl = "urn:uuid:41a84a93-1c95-4162-b13c-1c617509e6e2" +* entry[=].resource = condition-example-1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Condition?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" +* entry[+].fullUrl = "urn:uuid:04adcb5b-3de7-4f67-97f0-b2fdf941ba85" +* entry[=].resource = condition-flag-example-1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85" +* entry[+].fullUrl = "urn:uuid:b19124e9-f742-49b4-9247-5c2d58ac1ef4" +* entry[=].resource = condition-example-2 +* entry[=].request.method = #PUT +* entry[=].request.url = "Condition/b19124e9-f742-49b4-9247-5c2d58ac1ef4" +* entry[+].fullUrl = "urn:uuid:212c1018-f52a-4db7-9bc2-59a88622eb4f" +* entry[=].resource = condition-flag-example-2 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/212c1018-f52a-4db7-9bc2-59a88622eb4f" + +Instance: condition-example-2 +InstanceOf: Condition +Usage: #inline +* clinicalStatus = $condition-clinical#active +* category = $CareConnect-ConditionCategory-1#issue "Issue" +* code = $sct#73618009 "Autistic spectrum disorder with isolated skills" +* subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) + +Instance: condition-flag-example-2 +InstanceOf: Flag +Usage: #inline +* status = #active +* code = $RARecord-AdjustmentCategory-1#001 "Communication support" +* category = $RARecord-FlagCategory-1#NRAF "National Reasonable Adjustments Flag" +* subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) +* contained.resourceType = "Provenance" +* contained.id = "55ac7111-dbd1-42f2-906c-a167b04d47ce" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $DataOperation#CREATE "create" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" diff --git a/input/fsh/extensions/Extension-England-DateTime.fsh b/input/fsh/extensions/Extension-England-DateTime.fsh deleted file mode 100644 index c8ac523..0000000 --- a/input/fsh/extensions/Extension-England-DateTime.fsh +++ /dev/null @@ -1,38 +0,0 @@ -Alias: $England-TypedDateTime = https://fhir.nhs.uk/England/ValueSet/England-TypedDateTime - -Extension: ExtensionEnglandDateTime -Id: Extension-England-DateTime -Title: "Extension England Date Time" -Description: "This supports the exchange of non-clinical business dates and times. The extension date and/or time is carried along with a code to identify the type of date and/or time." -* ^url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-England-DateTime" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2023-10-24" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^purpose = "This extension extends the Encounter, the Communication, the Organization and the OrganizationAffiliation resources to support the exchange of information describing the specific business related date and/or time." -* ^copyright = "Copyright © 2023+ HL7 UK Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* ^context[0].type = #element -* ^context[=].expression = "Organization" -* ^context[+].type = #element -* ^context[=].expression = "OrganizationAffiliation" -* . ^short = "This supports the exchange of dates and/or times." -* . ^definition = "This supports the exchange of dates and/or times. The extension date and/or time is carried along with a code to identify the type of date and/or time." -* extension contains - type 1..1 and - dateTime 1..1 -* extension[type] ^short = "Code to identify the type of time/date." -* extension[type].value[x] 1.. -* extension[type].value[x] only Coding -* extension[type].value[x] from $England-TypedDateTime (extensible) -* extension[type].value[x] ^short = "A ValueSet to identify the type of business date time." -* extension[type].value[x] ^binding.description = "The type of business date time." -* extension[dateTime] ^short = "The specific business related date and/or time." -* extension[dateTime].value[x] 1.. -* extension[dateTime].value[x] only dateTime -* extension[dateTime].value[x] ^short = "The date and/or time." -* url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-England-DateTime" (exactly) diff --git a/input/fsh/extensions/Extension-England-FlagRemovalReason.fsh b/input/fsh/extensions/Extension-England-FlagRemovalReason.fsh deleted file mode 100644 index 9d4aa69..0000000 --- a/input/fsh/extensions/Extension-England-FlagRemovalReason.fsh +++ /dev/null @@ -1,26 +0,0 @@ -Alias: $England-FlagRemovalReason = https://fhir.nhs.uk/England/ValueSet/England-FlagRemovalReason - -Extension: ExtensionEnglandFlagRemovalReason -Id: Extension-England-FlagRemovalReason -Title: "Extension England Flag Removal Reason" -Description: "An extension used to allow the removal of a Flag and to indicate the reason why the Flag needs removal or has been removed." -* ^url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-England-FlagRemovalReason" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2023-08-18" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 2 -* ^purpose = "The extension extends the Flag resource to support the NHS England requirements for removal of Flags with a stated reason." -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* ^context.type = #element -* ^context.expression = "Flag" -* url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-England-FlagRemovalReason" (exactly) -* value[x] 1.. -* value[x] only Coding -* value[x] from $England-FlagRemovalReason (required) -* value[x].system 1.. -* value[x].code 1.. diff --git a/input/fsh/extensions/Extension-England-OrganisationRole.fsh b/input/fsh/extensions/Extension-England-OrganisationRole.fsh deleted file mode 100644 index 61210e6..0000000 --- a/input/fsh/extensions/Extension-England-OrganisationRole.fsh +++ /dev/null @@ -1,47 +0,0 @@ -Alias: $England-OrganisationRole = https://fhir.nhs.uk/England/ValueSet/England-OrganisationRole - -Extension: ExtensionEnglandOrganisationRole -Id: Extension-England-OrganisationRole -Title: "Extension England Organisation Role" -Description: "An extension to describe the role of the organisation and whether this is it's primary role." -* ^url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-England-OrganisationRole" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2023-10-18" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^purpose = "This extension extends the Organization resource to support the NHS England requirement for additional information about organisational roles." -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* ^context.type = #element -* ^context.expression = "Organization" -* . ^short = "An Extension to describe what an Organisation does and whether this is the primary role of the Organisation." -* extension contains - primaryRole 1..1 and - instanceID 1..1 and - code 1..1 and - period 1..* and - active 1..1 -* extension[primaryRole] ^short = "This describes the type of role of the organisation." -* extension[primaryRole] ^definition = "This denotes whether the specific role is primary or non primary. Where the Boolean value is true then this is a primary role. Conversely, if the Boolean value is false then this indicates this is a non primary role." -* extension[primaryRole].value[x] 1.. -* extension[primaryRole].value[x] only boolean -* extension[instanceID] ^short = "Unique ID for each instance of an organisation role (organisation roles can be ended and then the organisation later undertakes same role again)." -* extension[instanceID].value[x] 1.. -* extension[instanceID].value[x] only integer -* extension[code] ^binding.description = "A ValueSet to identify the Organisation Data Service (ODS) role codes" -* extension[code].value[x] from $England-OrganisationRole (extensible) -* extension[code].value[x] 1.. -* extension[code].value[x] only CodeableConcept -* extension[code].value[x].coding.code 1.. -* extension[period] ^short = "Period of the role" -* extension[period].value[x] 1.. -* extension[period].value[x] only Period -* extension[active] ^short = "Roles are either active or inactive" -* extension[active] ^definition = "Where the Boolean value is true, this means that the role is active. Conversely if the Boolean value is false, then this means that the role is inactive." -* extension[active].value[x] 1.. -* extension[active].value[x] only boolean -* url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-England-OrganisationRole" (exactly) diff --git a/input/fsh/terminologies/England-FGMRemovalReason.fsh b/input/fsh/terminologies/England-FGMRemovalReason.fsh deleted file mode 100644 index 6dd43dd..0000000 --- a/input/fsh/terminologies/England-FGMRemovalReason.fsh +++ /dev/null @@ -1,19 +0,0 @@ -CodeSystem: EnglandFGMRemovalReason -Id: England-FGMRemovalReason -Title: "England FGM Removal Reason" -Description: "A set of codes that define the reason a FGM Flag was removed." -* ^url = "https://fhir.nhs.uk/England/CodeSystem/England-FGMRemovalReason" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2023-08-18" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 2 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* ^caseSensitive = true -* ^content = #complete -* #0 "Added in error - this child does not have a family history of FGM" -* #2 "No longer required - this child has had FGM" diff --git a/input/fsh/terminologies/England-ODSOrganisationRole.fsh b/input/fsh/terminologies/England-ODSOrganisationRole.fsh deleted file mode 100644 index 638cae3..0000000 --- a/input/fsh/terminologies/England-ODSOrganisationRole.fsh +++ /dev/null @@ -1,16 +0,0 @@ -CodeSystem: EnglandODSOrganisationRole -Id: England-ODSOrganisationRole -Title: "England ODS Organisation Role" -Description: "A set of codes that define the role of an organisation using the Organisation Data Service (ODS)." -* ^url = "https://fhir.nhs.uk/England/CodeSystem/England-ODSOrganisationRole" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2023-10-18" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* ^content = #not-present diff --git a/input/fsh/terminologies/England-ORDDateTime.fsh b/input/fsh/terminologies/England-ORDDateTime.fsh deleted file mode 100644 index d67ac1f..0000000 --- a/input/fsh/terminologies/England-ORDDateTime.fsh +++ /dev/null @@ -1,18 +0,0 @@ -CodeSystem: EnglandORDDateTime -Id: England-ORDDateTime -Title: "England ORD Date Time" -Description: "A set of codes that define the type of Organisation Reference Data (ORD) date and time being recorded, for the Organisation Data Service (ODS)." -* ^url = "https://fhir.nhs.uk/England/CodeSystem/England-ORDDateTime" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2023-10-24" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* ^caseSensitive = true -* ^content = #complete -* #last-change-date "Last Change Date" "The date and time that the ORD data was last changed" diff --git a/input/fsh/valuesets/England-ChildProtectionPlan.fsh b/input/fsh/valuesets/England-ChildProtectionPlan.fsh deleted file mode 100644 index 8d46f1c..0000000 --- a/input/fsh/valuesets/England-ChildProtectionPlan.fsh +++ /dev/null @@ -1,30 +0,0 @@ -ValueSet: EnglandChildProtectionPlan -Id: England-ChildProtectionPlan -Title: "England Child Protection Plan" -Description: "A set of codes that define the type of Child Protection Plan that is in place. Selected from UK SNOMED CT." -* ^url = "https://fhir.nhs.uk/England/ValueSet/England-ChildProtectionPlan" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2023-08-18" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* ^expansion.identifier = "6c36caea-57d1-42a7-8621-ae1addc67581" -* ^expansion.timestamp = "2023-09-07T17:36:41+00:00" -* ^expansion.total = 3 -* ^expansion.offset = 0 -* ^expansion.contains[0].system = "http://snomed.info/sct" -* ^expansion.contains[=].code = #342191000000101 -* ^expansion.contains[=].display = "Subject to child protection plan" -* ^expansion.contains[+].system = "http://snomed.info/sct" -* ^expansion.contains[=].code = #764841000000100 -* ^expansion.contains[=].display = "Looked after child" -* ^expansion.contains[+].system = "http://snomed.info/sct" -* ^expansion.contains[=].code = #818901000000100 -* ^expansion.contains[=].display = "Unborn child subject to child protection plan" -* include codes from system SNOMED_CT_INT - where constraint = "(342191000000101 OR 764841000000100 OR 818901000000100)" diff --git a/input/fsh/valuesets/England-FlagRemovalReason.fsh b/input/fsh/valuesets/England-FlagRemovalReason.fsh deleted file mode 100644 index 59e788f..0000000 --- a/input/fsh/valuesets/England-FlagRemovalReason.fsh +++ /dev/null @@ -1,23 +0,0 @@ -ValueSet: EnglandFlagRemovalReason -Id: England-FlagRemovalReason -Title: "England Flag Removal Reason" -Description: "This ValueSet defines the set of codes that can be used to indicate the reason a Flag was removed." -* ^url = "https://fhir.nhs.uk/England/ValueSet/England-FlagRemovalReason" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2023-08-18" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* ^expansion.timestamp = "2023-08-02T12:00:00+00:00" -* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/England-FGMRemovalReason" -* ^expansion.contains[=].code = #0 -* ^expansion.contains[=].display = "Added in error - this child does not have a family history of FGM" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/England-FGMRemovalReason" -* ^expansion.contains[=].code = #2 -* ^expansion.contains[=].display = "No longer required - this child has had FGM" -* include codes from system https://fhir.nhs.uk/England/CodeSystem/England-FGMRemovalReason|1.0.0 diff --git a/input/fsh/valuesets/England-OrganisationRole.fsh b/input/fsh/valuesets/England-OrganisationRole.fsh deleted file mode 100644 index c2ebc60..0000000 --- a/input/fsh/valuesets/England-OrganisationRole.fsh +++ /dev/null @@ -1,18 +0,0 @@ -Alias: $England-ODSOrganisationRole = https://fhir.nhs.uk/England/CodeSystem/England-ODSOrganisationRole - -ValueSet: EnglandOrganisationRole -Id: England-OrganisationRole -Title: "England Organisation Role" -Description: "This valueset defines the codes used to identify the role of an organisation." -* ^url = "https://fhir.nhs.uk/England/ValueSet/England-OrganisationRole" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2023-10-18" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* include codes from system $England-ODSOrganisationRole \ No newline at end of file diff --git a/input/fsh/valuesets/England-TypedDateTime.fsh b/input/fsh/valuesets/England-TypedDateTime.fsh deleted file mode 100644 index ae2aa99..0000000 --- a/input/fsh/valuesets/England-TypedDateTime.fsh +++ /dev/null @@ -1,25 +0,0 @@ -Alias: $England-ORDDateTime = https://fhir.nhs.uk/England/CodeSystem/England-ORDDateTime - -ValueSet: EnglandTypedDateTime -Id: England-TypedDateTime -Title: "England Typed Date Time" -Description: "This ValueSet defines the set of codes that can be used to describe the type of business date and time being recorded." -* ^url = "https://fhir.nhs.uk/England/ValueSet/England-TypedDateTime" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2023-10-24" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* ^expansion.identifier = "0782b2cc-5813-434e-bb6c-1cf79f2ca01d" -* ^expansion.timestamp = "2023-10-24T17:45:44+00:00" -* ^expansion.total = 1 -* ^expansion.offset = 0 -* ^expansion.contains.system = "https://fhir.nhs.uk/England/CodeSystem/England-ORDDateTime" -* ^expansion.contains.code = #last-change-date -* ^expansion.contains.display = "Last Change Date" -* include codes from system $England-ORDDateTime diff --git a/input/images/condition-recorded-sequence.drawio.png b/input/images/condition-recorded-sequence.drawio.png index a06f773..ca76e58 100644 Binary files a/input/images/condition-recorded-sequence.drawio.png and b/input/images/condition-recorded-sequence.drawio.png differ diff --git a/input/images/data-model-contained-provenance.drawio.png b/input/images/data-model-contained-provenance.drawio.png new file mode 100644 index 0000000..8bc69de Binary files /dev/null and b/input/images/data-model-contained-provenance.drawio.png differ diff --git a/input/pagecontent/add-condition.md b/input/pagecontent/add-condition.md deleted file mode 100644 index c09145b..0000000 --- a/input/pagecontent/add-condition.md +++ /dev/null @@ -1,70 +0,0 @@ - -### Summary - -

Patient wishes to record Consent. Practitioner records Consent information

- -#### Workflow - -##### Draw.io - -
- Activity created in draw.io! -
- -##### PlantUML - -

{% include add-condition.svg %}

- -#### Condition Recorded - -##### Draw.io - -

Pre-condition: Patient details have been retrieved/validated

- -
- Activity created in draw.io! -
- -##### PlantUML - -

{% include record-condition.svg %}

- -#### Example 1 - -[Single Condition POST](StructureDefinition-Extension-England-FlagRemovalReason.html) - -#### Example 2 - -

-This will create all conditions and fail if any one fails. -

- -[Multiple Condition POST - Transaction](StructureDefinition-Extension-England-FlagRemovalReason.html). - -

-This will update (and optionally create) all conditions and fail if any one fails. -

- -[Multiple Condition PUT - Transaction](StructureDefinition-Extension-England-FlagRemovalReason.html) - -

-This will create all conditions and if any fail, individual OperationOutcomes will be returned. -

- -[Multiple Condition POST - Batch](StructureDefinition-Extension-England-FlagRemovalReason.html) - -

-This will update (and optionally create) all conditions and if any fail, individual OperationOutcomes will be returned. -

- -[Multiple Condition PUT - Batch](StructureDefinition-Extension-England-FlagRemovalReason.html) - -

-More information on -

- -### Relevant Documentation - -[Bundles](https://hl7.org/fhir/r4/bundle.html) -[Transactions](https://hl7.org/fhir/r4/http.html#transaction) -[Upsert](https://hl7.org/fhir/r4/http.html#upsert) diff --git a/input/pagecontent/add-ra-record.md b/input/pagecontent/add-ra-record.md new file mode 100644 index 0000000..8380960 --- /dev/null +++ b/input/pagecontent/add-ra-record.md @@ -0,0 +1,64 @@ + +### Summary + +

Patient wishes to record Consent. Practitioner records Consent information

+ +#### Workflow + +

+A patient presents to be examined by a practitioner. The practitioner performs an examination and determines that a condition and/or an adjustment should be recorded. If the patient does not consent, no details are recorded. If the patient consents, then the condition and/or the adjustment is recorded. +

+ +
+ Activity created in draw.io! +
+ +#### Condition Recorded + +

+Pre-condition: Patient details have been retrieved/validated. +

+ +

+The practioner decides to record a condition. This could be done with individual calls to the required endpoints, or can be done in a single transaction Bundle. A transaction Bundle can help with data integrity requirements and also help to reduce required http calls. +

+ +
+ Activity created in draw.io! +
+ +#### Example 1 + +> Pre-condition: A patient has previously had a master flag associated with them, and no adjustment is to be recorded + +[Single Condition POST](todo.html) + +#### Example 2 + +

+The first example given here shows the use of a transaction to add all required resources to add a Consent, a Condition and associated adjustments (Flag) resources for a patient. + +The master Flag and condition Flag (and associated Condition) resources are included and have the Provence resource as contained resources. This example could be modified to include a new condition just by adding the new Condition and Flag resource as this transaction is fully idempotent. The next example will show this. +

+ +[Example Transaction: Add condition resources in a Transaction](Bundle-add-condition-transaction-example-1.html). + +

+NOTE: TODO discuss how provenace could be added after (i.e. not contained), but not in a transaction. If provence needed to be linked to a versioned resource (seems reasonable), this isn't supported https://build.fhir.org/bundle.html#references. Also see https://chat.fhir.org/#narrow/stream/179166-implementers/topic/Provenance.20in.20a.20bundle. Using an etag would work. If the provenance was created after and took the etag of the resource from the response, which should come back for each resource in transaction, the provenance.target could then be set to a versioned url (assuming this was required). Benefits of this would be ability to expand the scope of the provenace. If it really doesn't have a lifetime outside of the resource, contained is probably tidier but definetly less flexible. More discussion here ttps://chat.fhir.org/#narrow/stream/179166-implementers/topic/Transaction.20Bundle.20with.20Provenance/near/402326516. +

+ +

+The second example given here simply adds conditions to the previous transaction resource to demonstrate the ability to add new conditions to the same data structure and reply in an idempotent way. The request entry in the transaction Bundle for the second condition uses the uuid from the fullUrl on the Bundle entry to use in the URL for the PUT method. The first uses the patient uuid as a search parameter for the PUT. A uuid would be the preferred method to construct the uuid for the fullUrl in the Bundle entry, so this should be a reasonable example. This example is just to demonstrate ReSTful capabilities of the FHIR spec. +

+ +[Example Transaction: Additional condition and flag added to previous Transaction](Bundle-add-condition-transaction-example-2.html). + +

+TODO: maybe cover other ways of doing this, all POST's, if-match, X-provenance, batch tranaction etc... +

+ +### Relevant Documentation + +[Bundles](https://hl7.org/fhir/r4/bundle.html) +[Transactions](https://hl7.org/fhir/r4/http.html#transaction) +[Upsert](https://hl7.org/fhir/r4/http.html#upsert) diff --git a/input/pagecontent/data-model.md b/input/pagecontent/data-model.md new file mode 100644 index 0000000..c59546e --- /dev/null +++ b/input/pagecontent/data-model.md @@ -0,0 +1,9 @@ +### Summary + +The RA record is made up of Consent, Condition, Flag and Provenances resources. The Consent, Condition and Flag resources are linked via a Patient resource. The Provenace resource is only scoped to a sinle Flag and has no lifetime outside of the Flag (specific version) resource. + +### Data Model + +
+ RA Record Data Model +
diff --git a/input/pagecontent/server-example-add-ra-record.md b/input/pagecontent/server-example-add-ra-record.md new file mode 100644 index 0000000..f534f67 --- /dev/null +++ b/input/pagecontent/server-example-add-ra-record.md @@ -0,0 +1,45 @@ +### Summary + +The [HAPI FHIR Starter Server](https://github.com/hapifhir/hapi-fhir-jpaserver-starter) is used to demostrate some basic REST capabilities in FHIR using examples within this implementation guide. + +#### Docker invocation of the HAPI Starter Project + +This command starts the server on port 8080 and use UUID (as opposed to sequential numbers) for resource ID's. + +``` +docker run -p 8080:8080 -e hapi.fhir.daoconfig_client_id_strategy=UUID -e hapi.fhir.client_id_strategy=ANY hapiproject/hapi:latest +``` + +To pull the latest image, run + +``` +docker pull hapiproject/hapi:latest +``` + +#### Swagger + +The HAPI starter project provides an OAS interface to the supported FHIR API. Assuming the above docker command is used, this would be available at + +``` +http://localhost:8080/fhir/swagger-ui/index.html +``` + +#### CI Build + +These examples are loaded into a running FHIR server during the IG build. Some resources (queries) are dynamically generated and added to the IG at build time. (TODO add a list of dynamically generated resources somewhere). + +### Examples + +The examples here describe the API options related to the workflow given in the use case [Add RA Record](add-ra-record.html#workflow). + +#### Example 1 + +TODO + +#### Example 2 + +The first [example transaction](Bundle-add-condition-transaction-example-1.html) adds an RA record consisting of a Consent resource from the patient, a master Flag resource (is this really needed?), a Condition resource and an associated condition Flag resource using a transaction Bundle, which provides atomicity as well as more network efficent call. Each Flag resource has a Provenance resource embedded in it. (TODO maybe a futher discussion section somewhere on options for provenance, i.e. linking to versions, _history and transaction considerations, options to use etag or X-provenance). + +The second [example transaction](Bundle-add-condition-transaction-example-1.html) simply modifies the first transaction by adding additional resources for another Condition and adjustment (Flag). The transactions are using PUT's and as FHIR does defined (upsert)[https://hl7.org/fhir/http.html#upsert] as an option, and the HAPI Starter Server has implemented this, this example has been constructed to demostrate this. + +Details of querying the resulting data from these transaction is given in the [Retrieve RA Record](server-example-add-ra-record.html) server example. \ No newline at end of file diff --git a/input/pagecontent/server-example-retrieve-ra-record.md b/input/pagecontent/server-example-retrieve-ra-record.md new file mode 100644 index 0000000..06f6ed2 --- /dev/null +++ b/input/pagecontent/server-example-retrieve-ra-record.md @@ -0,0 +1,53 @@ +### Summary + +The [HAPI FHIR Starter Server](https://github.com/hapifhir/hapi-fhir-jpaserver-starter) is used to demostrate some basic REST capabilities in FHIR using examples within this implementation guide. + +#### Docker invocation of the HAPI Starter Project + +This command starts the server on port 8080 and use UUID (as opposed to sequential numbers) for resource ID's. + +``` +docker run -p 8080:8080 -e hapi.fhir.daoconfig_client_id_strategy=UUID -e hapi.fhir.client_id_strategy=ANY hapiproject/hapi:latest +``` + +To pull the latest image, run + +``` +docker pull hapiproject/hapi:latest +``` + +#### Swagger + +The HAPI starter project provides an OAS interface to the supported FHIR API. Assuming the above docker command is used, this would be available at + +``` +http://localhost:8080/fhir/swagger-ui/index.html +``` + +#### CI Build + +These examples are loaded into a running FHIR server during the IG build. Some resources (queries) are dynamically generated and added to the IG at build time. (TODO add a list of dynamically generated resources somewhere). + +### Examples + +The examples here describe search options for the workflow given in [Retrieve RA Record](todo.html). This follows on from the data entered in the workflow given in the use case [Add RA Record](add-ra-record.html#workflow). + +#### Example 1 + +Based on the example transaction Bundles given in the use case [Add RA Record](add-ra-record.html#workflow), for each transaction, the following query will performed (dynamically during the IG build) + +``` +/Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient +``` + +This query will return the Patient resource using the patients NHS number (TODO will be profiled to check for this, reference this later). The assocaited resources that make up the RA are also returned, which are all using default Patient SearchParameters define in the base specification for each resource. + +For the [first transaction example](Bundle-add-condition-transaction-example-1.html), this is the [output of the query](Bundle-QUERY-OUTPUT--add-condition-transaction-example-1.html). + +For the [second transaction example](Bundle-add-condition-transaction-example-2.html), where a Condition and adjustment (Flag) is added, this is the [output of the query](Bundle-QUERY-OUTPUT--add-condition-transaction-example-2.html). + +See the [Data Model](data-model.html) for details on the relationships between the resources. + +#### Example # + +TODO? \ No newline at end of file diff --git a/input/queries/get-flags-associated-with-patient.md b/input/queries/get-flags-associated-with-patient.md new file mode 100644 index 0000000..43b564b --- /dev/null +++ b/input/queries/get-flags-associated-with-patient.md @@ -0,0 +1 @@ +http://localhost:8080/fhir/Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient \ No newline at end of file diff --git a/postman/ReasonableAdjustmentsExamples.postman_collection.json b/postman/ReasonableAdjustmentsExamples.postman_collection.json new file mode 100644 index 0000000..6f00fb2 --- /dev/null +++ b/postman/ReasonableAdjustmentsExamples.postman_collection.json @@ -0,0 +1,82 @@ +{ + "info": { + "_postman_id": "adb3f331-e89f-4548-b96b-b781a41eba64", + "name": "ReasonableAdjustmentsExamples", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "32605342" + }, + "item": [ + { + "name": "Add examples", + "item": [ + { + "name": "New RA record - Single transaction - Provenance contained", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"resourceType\": \"Bundle\",\n \"id\": \"add-condition-transaction-example-1\",\n \"type\": \"transaction\",\n \"entry\": [\n {\n \"fullUrl\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"id\": \"patient-example-1\",\n \"identifier\": [\n {\n \"system\": \"https://fhir.nhs.uk/Id/nhs-number\",\n \"value\": \"9912003888\"\n }\n ],\n \"active\": true,\n \"name\": [\n {\n \"use\": \"official\",\n \"family\": \"Duck\",\n \"given\": [\n \"Donald\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"birthDate\": \"1970-01-01\"\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Patient?identifier=9912003888\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:959fbc3c-0907-419e-aa3d-ab88f2d90c5e\",\n \"resource\": {\n \"resourceType\": \"Consent\",\n \"id\": \"consent-example-1\",\n \"status\": \"active\",\n \"scope\": {\n \"coding\": [\n {\n \"code\": \"patient-privacy\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/consentscope\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"provision\": {\n \"purpose\": [\n {\n \"code\": \"370856009\",\n \"system\": \"https://snomed.info/sct\",\n \"display\": \"Limiting access to confidential patient information\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"policy\": [\n {\n \"authority\": \"https://www.gov.uk/\",\n \"uri\": \"https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf\"\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Consent?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:41a84a93-1c95-4162-b13c-1c617509e6e2\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"condition-example-1\",\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"code\": \"active\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"issue\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1\",\n \"display\": \"Issue\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"code\": \"5\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConditionCode-1\",\n \"display\": \"Learning or understanding or concentrating\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Condition?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:fba99f70-fe1d-42e2-b77a-916e44b53c19\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"master-flag-example-1\",\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://hl7.org/fhir/v3/DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:04adcb5b-3de7-4f67-97f0-b2fdf941ba85\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"condition-flag-example-1\",\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"001\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1\",\n \"display\": \"Communication support\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://hl7.org/fhir/v3/DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85\"\n }\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:8080/fhir", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "fhir" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Query examples", + "item": [ + { + "name": "Get Flags associated with Patient", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:8080/fhir/Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "fhir", + "Patient" + ], + "query": [ + { + "key": "identifier", + "value": "9912003888" + }, + { + "key": "_revinclude", + "value": "Consent:patient" + }, + { + "key": "_revinclude", + "value": "Flag:patient" + } + ] + } + }, + "response": [] + } + ] + } + ] +} \ No newline at end of file diff --git a/sushi-config.yaml b/sushi-config.yaml index 558d5b1..ead1e9f 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -77,13 +77,15 @@ publisher: menu: Home: index.html Sitemap: toc.html + Data Model: data-model.html Use Cases: - Add Condition(s): add-condition.html - Add Adjustment(s): todo.html - Retrieve Condition(s): retrieve-condition.html - Retrieve Adjustment(s): todo.html - Remove Condition(s): todo.html - Remove Adjustment(s): todo.html + Add RA Record: add-ra-record.html + Retrieve RA Record: todo.html + Remove RA Record: todo.html + Server Examples: + Add RA Record: server-example-add-ra-record.html + Retrieve RA Record: server-example-retrieve-ra-record.html + Remove RA Record: todo.html Artifacts: artifacts.html Contact Us: todo.html Downloads: todo.html