diff --git a/input/fsh/codesystem/RA-ConsentPurpose.fsh b/input/fsh/codesystem/RA-ConsentPurpose.fsh index 3bff03b..01bec37 100644 --- a/input/fsh/codesystem/RA-ConsentPurpose.fsh +++ b/input/fsh/codesystem/RA-ConsentPurpose.fsh @@ -15,3 +15,5 @@ Description: "A CodeSystem to identify the purpose of the consent given within R * ^caseSensitive = true * ^content = #complete * #RACONSENT "Reasonable Adjustments - Consent to record Reasonable Adjustments" +* #RADISSENT "Reasonable Adjustments - Dissent to record Reasonable Adjustments" +* #RAREVOKED "Reasonable Adjustments - Consent revoked to record Reasonable Adjustments" diff --git a/input/fsh/examples/0013-RAConsentExample1.fsh b/input/fsh/examples/0013-RAConsentExample1.fsh index 16e0295..60098b7 100644 --- a/input/fsh/examples/0013-RAConsentExample1.fsh +++ b/input/fsh/examples/0013-RAConsentExample1.fsh @@ -1,6 +1,6 @@ Instance: RAConsentExample1 InstanceOf: Consent -Title: "RA example of Consent resource." +Title: "RA example of Consent resource where patient provides consent." Usage: #example * meta.profile = "https://fhir.nhs.uk/England/StructureDefinition/FlagConsent" diff --git a/input/fsh/examples/0030-RAConsentExampleDissent.fsh b/input/fsh/examples/0030-RAConsentExampleDissent.fsh new file mode 100644 index 0000000..d70370b --- /dev/null +++ b/input/fsh/examples/0030-RAConsentExampleDissent.fsh @@ -0,0 +1,28 @@ +Instance: RAConsentExampleDissent +InstanceOf: Consent +Title: "RA example of Consent resource where patient dissents to share information." +Usage: #example +* meta.profile = "https://fhir.nhs.uk/England/StructureDefinition/FlagConsent" + +* extension[0].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentCreateSummary" +* extension[=].valueAnnotation.text = "Example of consent create summary extension text" +* extension[+].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentRemoveSummary" +* extension[=].valueAnnotation.text = "Example of consent remove summary extension text" + +* status = #active +* scope = $consentscope#patient-privacy +* category = PatientFlagCategory#NRAF "National Reasonable Adjustments Flag" +* provision.purpose = RA-ConsentPurpose#RADISSENT "Reasonable Adjustments - Dissent to record Reasonable Adjustments" +* patient = Reference(Patient/PatientExample1) +* policy.authority = "https://www.gov.uk/" +* policy.uri = "https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf" +* policyRule = FlagProxyRole#001 + +* contained.resourceType = "Provenance" +* contained.id = "4c75ce1f-1ad7-4391-b5f6-104754c7e904" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $v3-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/0031-RAConsentExampleRevoked.fsh b/input/fsh/examples/0031-RAConsentExampleRevoked.fsh new file mode 100644 index 0000000..bc753f6 --- /dev/null +++ b/input/fsh/examples/0031-RAConsentExampleRevoked.fsh @@ -0,0 +1,28 @@ +Instance: RAConsentExampleRevoked +InstanceOf: Consent +Title: "RA example of Consent resource where patient revokes consent." +Usage: #example +* meta.profile = "https://fhir.nhs.uk/England/StructureDefinition/FlagConsent" + +* extension[0].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentCreateSummary" +* extension[=].valueAnnotation.text = "Example of consent create summary extension text" +* extension[+].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentRemoveSummary" +* extension[=].valueAnnotation.text = "Example of consent remove summary extension text" + +* status = #active +* scope = $consentscope#patient-privacy +* category = PatientFlagCategory#NRAF "National Reasonable Adjustments Flag" +* provision.purpose = RA-ConsentPurpose#RAREVOKED "Reasonable Adjustments - Consent revoked to record Reasonable Adjustments" +* patient = Reference(Patient/PatientExample1) +* policy.authority = "https://www.gov.uk/" +* policy.uri = "https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf" +* policyRule = FlagProxyRole#001 + +* contained.resourceType = "Provenance" +* contained.id = "4c75ce1f-1ad7-4391-b5f6-104754c7e904" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $v3-DataOperation#UPDATE "revise" +* 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/images-source/consent-sequence.plantuml b/input/images-source/consent-sequence.plantuml index ac68d29..f4df0df 100644 --- a/input/images-source/consent-sequence.plantuml +++ b/input/images-source/consent-sequence.plantuml @@ -30,11 +30,18 @@ alt Consent has been given pra <-- api : OperationOutcome else Consent has not been given/been revoked pra -> api : Record consent was not given - api -> con : Delete adjustment consent - api -> pfg : Delete adjustment patient flag - api -> adj : Delete adjustment flag(s) - api -> cod : Delete condition flag(s) + api -> con : Create/update resource + con -> con : Validate + api <-- con : return + alt Validation failed + api -> api : rollback + else + api -> con : Delete adjustment consent + api -> pfg : Delete adjustment patient flag + api -> adj : Delete adjustment flag(s) + api -> cod : Delete condition flag(s) + end pra <-- api : OperationOutcome end -@enduml +@enduml \ No newline at end of file diff --git a/input/pagecontent/consent-to-share-information.md b/input/pagecontent/consent-to-share-information.md index f9c3bde..b182e2a 100644 --- a/input/pagecontent/consent-to-share-information.md +++ b/input/pagecontent/consent-to-share-information.md @@ -52,7 +52,7 @@ And all conditions will be deleted ### Workflow -If consent is not given, then this will be recorded. If there was previous consent to record adjustments, but the consent is then revoked, then all adjustment records must also be removed. +When consent or dissent is provided by the patient or their advocate, then this will be recorded in a [Consent](https://www.hl7.org/fhir/r4/consent.html) resource. If there was previous consent to record adjustments, but the consent is then revoked, then all adjustment records must also be removed.