From 72a067bac27055410e5ba8e792202ecfd77855db Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Fri, 22 Mar 2024 00:25:00 +0000 Subject: [PATCH] IOPS-2494(Guidance for Remove Reasonable Adjustment Record) Review (#21) * Create remove-record-usecase.plantuml * Update remove-reasonable-adjustment-record.md * Add files via upload * Delete input/images/remove-record-workflow.svg * Add files via upload * Update remove-reasonable-adjustment-record.md * Delete input/images/remove-record-workflow.bpmn * Delete input/images/remove-record-workflow.svg * Add files via upload * Update remove-record-usecase.plantuml * Delete input/images/remove-record-workflow.bpmn * Delete input/images/remove-record-workflow.svg * Add files via upload * Update remove-reasonable-adjustment-record.md * Update 0012-RemoveRARecordExample.fsh * Update 0012-RemoveRARecordExample.fsh * Update remove-reasonable-adjustment-record.md * Update 0012-RemoveRARecordExample.fsh * Create remove-record-sequence.plantuml * Delete input/images/remove-record-workflow.bpmn * Delete input/images/remove-record-workflow.svg * Add files via upload * Update remove-reasonable-adjustment-record.md * Update remove-reasonable-adjustment-record.md * Update remove-record-usecase.plantuml * Update remove-record-usecase.plantuml * Update remove-reasonable-adjustment-record.md * Update remove-reasonable-adjustment-record.md * Update remove-reasonable-adjustment-record.md * Update remove-reasonable-adjustment-record.md * Update remove-reasonable-adjustment-record.md * Update remove-reasonable-adjustment-record.md * Update _updatePublisher.sh * minor format fixes * spelling fix * fix alt text on bpmn diagrams --------- Co-authored-by: Declan Kieran --- _updatePublisher.sh | 2 +- .../examples/0012-RemoveRARecordExample.fsh | 4 +- .../remove-record-sequence.plantuml | 30 ++++++ .../remove-record-usecase.plantuml | 21 ++++ input/images/remove-record-workflow.bpmn | 99 +++++++++++++++++++ input/images/remove-record-workflow.svg | 4 + .../add-reasonable-adjustment-record.md | 2 +- .../consent-to-share-information.md | 2 +- .../remove-reasonable-adjustment-record.md | 66 ++++++++++--- .../retrieve-reasonable-adjustment-record.md | 7 +- 10 files changed, 214 insertions(+), 23 deletions(-) create mode 100644 input/images-source/remove-record-sequence.plantuml create mode 100644 input/images-source/remove-record-usecase.plantuml create mode 100644 input/images/remove-record-workflow.bpmn create mode 100644 input/images/remove-record-workflow.svg diff --git a/_updatePublisher.sh b/_updatePublisher.sh index 0f9ecbe..4f2134e 100755 --- a/_updatePublisher.sh +++ b/_updatePublisher.sh @@ -31,7 +31,7 @@ while [ "$#" -gt 0 ]; do done echo "Checking internet connection" -curl -sSf tx.fhir.org > /dev/null +curl -sSf raw.githubusercontent.com > /dev/null if [ $? -ne 0 ] ; then echo "Offline (or the terminology server is down), unable to update. Exiting" diff --git a/input/fsh/examples/0012-RemoveRARecordExample.fsh b/input/fsh/examples/0012-RemoveRARecordExample.fsh index a0f77db..bec6397 100644 --- a/input/fsh/examples/0012-RemoveRARecordExample.fsh +++ b/input/fsh/examples/0012-RemoveRARecordExample.fsh @@ -3,8 +3,8 @@ InstanceOf: Bundle Title: "RA Example of deleting an RA record with a Transaction" Usage: #example * type = #transaction -* entry[0].request.method = #DELETE -* entry[=].request.url = "Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" +* entry[+].request.method = #DELETE +* entry[=].request.url = "Flag/RAPatientFlagExample1" * entry[+].request.method = #DELETE * entry[=].request.url = "Consent/RAConsentExample1" * entry[+].request.method = #DELETE diff --git a/input/images-source/remove-record-sequence.plantuml b/input/images-source/remove-record-sequence.plantuml new file mode 100644 index 0000000..64a9c48 --- /dev/null +++ b/input/images-source/remove-record-sequence.plantuml @@ -0,0 +1,30 @@ +@startuml + +skinparam actorStyle hollow + +actor "Practitioner" as pra +actor "Patient" as pat +participant "FHIR API" as api +entity "Consent" as con +entity "Patient Flag" as pfg +entity "Adjustment Flag" as adj +entity "Condition" as cod + + pra -> pat : Request consent + pra <-- pat : Deny/revoke consent + + pra -> api : Record consent was not given + api -> con : Update resource + con -> con : Validate + api <-- con : return + alt Validation failed + api -> api : rollback + pra <-- api : OperationOutcome + else Validation passed + api -> pfg : Delete adjustment patient flag + api -> adj : Delete adjustment flag(s) + api -> cod : Delete condition flag(s) + pra <-- api : OperationOutcome + end + +@enduml diff --git a/input/images-source/remove-record-usecase.plantuml b/input/images-source/remove-record-usecase.plantuml new file mode 100644 index 0000000..4be45ce --- /dev/null +++ b/input/images-source/remove-record-usecase.plantuml @@ -0,0 +1,21 @@ +@startuml + +skinparam actorStyle awesome + +actor Practitioner as pra +package Consenter { + actor "Patient Advocate" as pad + actor Patient as pat +} + +usecase "Consent to share information" as CON +usecase "Remove Reasonable Adjustment record" as RET + +pat -- CON +pad -- CON +pra -- CON +pra -- RET +CON <.. RET : include + + +@enduml diff --git a/input/images/remove-record-workflow.bpmn b/input/images/remove-record-workflow.bpmn new file mode 100644 index 0000000..eb9454a --- /dev/null +++ b/input/images/remove-record-workflow.bpmn @@ -0,0 +1,99 @@ + + + + + + + + + Event_0o7dt0z + Activity_1kgwaxm + + + Activity_1s5y9xm + + + Event_03tz7z4 + Activity_00yhqnr + + + + Flow_0ws129z + + + + Flow_0ws129z + Flow_1y1ffd0 + + + + Flow_1y1ffd0 + Flow_1l3qp01 + + + + Flow_1l3qp01 + Flow_0a0e2sc + + + + Flow_0a0e2sc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/input/images/remove-record-workflow.svg b/input/images/remove-record-workflow.svg new file mode 100644 index 0000000..bf60381 --- /dev/null +++ b/input/images/remove-record-workflow.svg @@ -0,0 +1,4 @@ + + + +Consent to TreatmentPractitionerPatientAPIRequest consentDeny/revoke consentUpdate consent/remove all records \ No newline at end of file diff --git a/input/pagecontent/add-reasonable-adjustment-record.md b/input/pagecontent/add-reasonable-adjustment-record.md index ac42c5a..9fbe395 100644 --- a/input/pagecontent/add-reasonable-adjustment-record.md +++ b/input/pagecontent/add-reasonable-adjustment-record.md @@ -85,7 +85,7 @@ Then a freetext note may be added to the flag A 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 adjustment is recorded, and optionally the condition as well.
- + Add record workflow BPMN diagram.
### System Interactions diff --git a/input/pagecontent/consent-to-share-information.md b/input/pagecontent/consent-to-share-information.md index c2d38cd..f9c3bde 100644 --- a/input/pagecontent/consent-to-share-information.md +++ b/input/pagecontent/consent-to-share-information.md @@ -55,7 +55,7 @@ And all conditions will be deleted 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.
- Activity created in draw.io! + Consent workflow BPMN diagram.
### System Interactions diff --git a/input/pagecontent/remove-reasonable-adjustment-record.md b/input/pagecontent/remove-reasonable-adjustment-record.md index e1ffd37..5c36aeb 100644 --- a/input/pagecontent/remove-reasonable-adjustment-record.md +++ b/input/pagecontent/remove-reasonable-adjustment-record.md @@ -1,33 +1,67 @@ -#### Summary +### Overview -

Practioner wishes to remove an entire RA Record

+A patient may deny or revoke their consent to share adjustment or impairment information at any point. See [Consent to Share Information](consent-to-share-information.html) for details of requirements around consent. + +For high level requirements, see [Key purposes of the Reasonable Adjustment Flag](index.html#key-purposes) + + +#### UseCase + +If a patient denys consent, then this must be recorded and all adjustment records must be removed. + +
+ + {%include remove-record-usecase.svg%} + +
+ +#### Scenarios + +```gherkin +Given a patient or their advocate revokes consent +And the consent is for reasonable adjustments +When a practioner records the consent +Then consent will be marked as inactive +And all flags will be deleted +And all conditions will be deleted +``` #### Workflow

-A patient presents to be examined by a practitioner. The practitioner performs an examination and retrieves the patients RA record. The practitioner then decides to remove an RA record for a patient. + +A patient may revoke consent to share information about Reasonable Adjustment records and if they do, all records must be removed. +

- Activity created in draw.io! + Remove record workflow BPMN diagram.
-#### Patient's RA Record Removed +### System Interactions + +In the following sequence diagram, a patient revokes consent. The Consent resource is updated to reflect the patient dissent, and all adjustment records are deleted. + +
+ + {%include remove-record-sequence.svg%} -
- Patient's RA Record Removed
-#### Example +The following resource types will be deleted from the record if consent is not granted i.e. -for the delete transaction example provided below, the following query will performed (dynamically during the IG build) +* [Patient Flag](StructureDefinition-PatientFlag.html) +* [Programme Flag](StructureDefinition-ProgrammeFlag.html) +* [Condition Flag](StructureDefinition-FlagCondition.html) -``` -POST / -``` +#### Example + +Multiple resources can be deleted using a transaction bundle. This [example delete transaction Bundle](Bundle-RemoveRARecordExample.html) demonstates deleting the following resources -This query will delete the patient's RA record, i.e. the resources contained in the transaction. +* [Patient Flag](Flag-RAPatientFlagExample1.html) example. +* [Programme Flag](Flag-RAFlagExample1.html) example. +* [Condition Flag](Condition-RAConditionExample1.html) example. -* Flag resources -* Condition resources +### Relevant Documentation -This will be the following Request body [Bundle transaction](Bundle-RemoveRARecordExample.html) +[Bundles](https://hl7.org/fhir/r4/bundle.html) +[Transactions](https://hl7.org/fhir/r4/http.html#transaction) \ No newline at end of file diff --git a/input/pagecontent/retrieve-reasonable-adjustment-record.md b/input/pagecontent/retrieve-reasonable-adjustment-record.md index b407242..a98d232 100644 --- a/input/pagecontent/retrieve-reasonable-adjustment-record.md +++ b/input/pagecontent/retrieve-reasonable-adjustment-record.md @@ -16,10 +16,10 @@ After obtaining consent from a patient, a Reasonable Adjustment Record may be re ### Workflow -A practitioner confirms that a patient consents to share information about Reasonable Adjustment records. A patient may revoke consent to share information about Reasonable Adjustment records and if they do, all records should be removed. +A practitioner confirms that a patient consents to share information about Reasonable Adjustment records. A patient may revoke consent to share information about Reasonable Adjustment records and if they do, all records must be removed.
- Activity created in draw.io! + Retrieve record workflow BPMN diagram.
### System Interactions @@ -113,3 +113,6 @@ This includes the associated patient resource. &_include=Flag:patient ``` +### Relevant Documentation + +[FHIR Search](http://www.hl7.org/fhir/R4/search.html) \ No newline at end of file