Skip to content

Commit c076ab3

Browse files
authored
Merge branch 'main' into dependabot/gradle/service/com.azure-azure-storage-blob-12.32.0
2 parents e7011aa + 7f05f7b commit c076ab3

36 files changed

+1645
-792
lines changed

OPERATING.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@ Variables without a default value and not marked optional, *MUST* be defined for
1111

1212
### General Configuration Options
1313

14-
| Environment Variable | Default | Description |
15-
|--------------------------|---------------------------|-------------------------------------------------------------------------------------------|
16-
| GP2GP_SERVER_PORT | 8080 | The port on which the GP2GP Adapter API will run. |
17-
| GP2GP_ROOT_LOGGING_LEVEL | WARN | The logging level applied to the entire application (including third-party dependencies). |
18-
| GP2GP_LOGGING_LEVEL | INFO | The logging level applied to GP2GP adaptor components. |
19-
| GP2GP_LOGGING_FORMAT | (*) | Defines how to format log events on stdout |
14+
| Environment Variable | Default | Description |
15+
|--------------------------|---------|--------------------------------------------------------------------------------------------------------------------------------|
16+
| GP2GP_SERVER_PORT | 8080 | The port on which the GP2GP Adapter API will run. |
17+
| GP2GP_ROOT_LOGGING_LEVEL | WARN | The logging level applied to the entire application (including third-party dependencies). |
18+
| GP2GP_LOGGING_LEVEL | INFO | The logging level applied to GP2GP adaptor components. |
19+
| GP2GP_LOGGING_FORMAT | (*) | Defines how to format log events on stdout |
20+
| GP2GP_REDACTIONS_ENABLED | false | Defines if RCMR_IN030000UK07 HL7 XML is produced when `NOPAT` `meta.security` fields are provided within the structured bundle |
2021

2122
Logging levels are ane of: DEBUG, INFO, WARN, ERROR
2223

service/REDACTIONS.md

Lines changed: 242 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,242 @@
1+
# **GP2GP Redactions**
2+
3+
Redaction is the process of restricting access or ‘hiding’ information in the online viewer from the patient and anyone
4+
they have granted proxy access to. It does not remove the information from the patient’s record.
5+
6+
Before information is shared, sensitive information which could be harmful to a patient or is about or refers to other
7+
people (third parties) should be assessed, and a decision taken about whether or not to redact it.
8+
9+
Individual words, sentences, or paragraphs within an entry cannot be redacted. The entire entry, for instance the
10+
consultation or document must be either shared (visible online) or redacted i.e. made not visible online).
11+
12+
## **Why are redactions used**
13+
14+
When GP records are shared with patients or their representatives (nominated proxy), the GP practice is responsible for
15+
ensuring that only appropriate information is disclosed. To ensure this happens, information in both the existing record
16+
and any new items should be checked and where necessary, redacted.
17+
18+
Most records will not have content that requires redaction. For individual requests for full online record access (i.e.
19+
past, historic and current records) it is best practice for all of the records to be checked in advance of being shared.
20+
21+
For more information about redactions please review the NHS England Documentation for redactions:
22+
23+
[*https://www.england.nhs.uk/long-read/redacting-information-for-online-record-access/*](https://www.england.nhs.uk/long-read/redacting-information-for-online-record-access/)
24+
25+
26+
## Enabling redactions support in the GP2GP adaptors
27+
28+
The GP2GP Adaptor needs to be deployed with the necessary configuration for redactions to be enabled.
29+
30+
To enable Redactions, the GP2GP Adaptor should be deployed with the following environment variable set as follows:
31+
32+
***`GP2GP_REDACTIONS_ENABLED: true`***
33+
34+
To disable Redactions, the GP2GP Adaptor should be deployed with the following environment variable set as follows:
35+
36+
***`GP2GP_REDACTIONS_ENABLED: false`***
37+
38+
Note that if redactions are not enabled, the resultant XML be produced with an `interactionId` of `RCMR_IN030000UK06` and
39+
redaction security labels will not be populated.
40+
41+
**This setting should be set to `false` until the incumbent systems have enabled redactions functionality across their
42+
whole estate. If in any doubt please contact NIA Support.**
43+
44+
45+
## How are redactions identified
46+
47+
When sending a patient record using the GP2GP System, a JSON FHIR Bundle is sent. Certain resources (covered below) can
48+
be marked as redacted by applying a `NOPAT` security label within the resource metadata. `NOPAT` is a code within the
49+
*ActCode Code System* and signifies that the information should not not be disclosed to the patient, family or
50+
caregivers.
51+
52+
This label should be applied to the `meta.security` element with the `system`, `code` and `display` values set exactly as
53+
below:
54+
55+
```json
56+
{
57+
"meta":{
58+
"security":[
59+
{
60+
"system":"http://hl7.org/fhir/v3/ActCode",
61+
"code":"NOPAT",
62+
"display":"no disclosure to patient, family or caregivers without attending provider's authorization"
63+
}
64+
]
65+
}
66+
}
67+
```
68+
69+
When a patient record is received from an incumbent system using the GP2GP System, an `interactionId` of `RCMR_IN030000UK07`
70+
will be provided. Certain elements within the XML may be marked as redacted by a `confidentialityCode` security label
71+
containing a `code` value of `NOPAT`.
72+
73+
This security label should be applied to element being redacted and should be exactly as below:
74+
75+
```xml
76+
<confidentialityCode code="NOPAT" codeSystem="2.16.840.1.113883.4.642.3.47" displayName="no disclosure to patient, family or caregivers without attending provider's authorization"/>
77+
```
78+
79+
## GP2GP Send Adaptor Redactions
80+
81+
This section details the resource types which can be redacted when using the GP2GP Send Adaptor. Some of these cover
82+
multiple resources within the JSON Bundle.
83+
84+
**This also includes details of any known issues with the redaction being applied when the patient record is received and
85+
integrated by an incumbent (Optum / TPP).**
86+
87+
88+
### Laboratory Results
89+
90+
Laboratory Results consist of a number of resources which can have the `NOPAT` security label applied.
91+
92+
93+
#### Diagnostic Report
94+
95+
To mark a `DiagnosticReport` as redacted, the `NOPAT` security label should be applied to resource with `resource.resourceType` set to `DiagnosticReport`
96+
97+
This will populate the relevant `CompoundStatement[laboratory reporting] / confidentialityCode` in the resultant HL7 XML with the `NOPAT` security label.
98+
99+
**Both Optum and TPP do not currently display redacted `DiagnosticReport` resources in their respective systems. This has been reviewed and is not clinically relevant. This will be raised with both Optum and TPP.**
100+
101+
#### Specimen
102+
103+
To mark a `Specimen` as redacted, the `NOPAT` security label should be applied to resource with `resource.resourceType` set to `Specimen`
104+
105+
This will populate the relevant `CompoundStatement[specimen] / confidentialityCode` in the resultant HL7 XML with the `NOPAT` security label.
106+
107+
**Both Optum and TPP do not currently display redacted `Specimen` resources in their respective systems. This has been reviewed and is not clinically relevant. This will be raised with both Optum and TPP.**
108+
109+
#### Observation \- Filing Comment
110+
111+
To mark an `Observation (Filing Comment)` as redacted, the `NOPAT` security label should be applied to resource with `resource.resourceType` set to `Observation` and contain a `resource.code` set to `37331000000100` for `Comment Note`
112+
113+
This will populate the `NarrativeStatement / confidentialityCode` in the resultant HL7 XML with the `NOPAT` security label.
114+
115+
#### Observation \- Test Group Header
116+
117+
To mark an `Observation (Test Group Header)` as redacted, the `NOPAT` security label should be applied to the test group header resource with `resource.resourceType` set to `Observation`.
118+
119+
This will populate the relevant `CompoundStatement / confidentialityCode` in the resultant HL7 XML with the `NOPAT` security label.
120+
121+
#### Observation \- Test Result
122+
123+
To mark an `Observation (Test Result)` as redacted, the `NOPAT` security label should be applied to the test result resource with `resource.resourceType` set to `Observation`.
124+
125+
This will populate the relevant `ObservationStatement / confidentialityCode` in the resultant HL7 XML with the `NOPAT` security label.
126+
127+
128+
### Allergy Intolerance
129+
130+
To mark a `Drug Allergy` or `Non-Drug Allergy` as redacted, the `NOPAT` security label should be applied to a resource with `resource.resourceType` set to `AllergyIntolerance`.
131+
132+
This will populate the relevant `ObservationStatement / confidentialityCode` in the resultant HL7 XML with the `NOPAT` security label.
133+
134+
135+
### Condition
136+
137+
To mark a `Condition` as redacted, the `NOPAT` security label should be applied to a resource with `resource.resourceType` set to `Condition`.
138+
139+
When a `Condition` contains an `extension` which provides a reference to an `actual problem` (example provided below) then the `NOPAT` security label should be applied to `Observation` referenced in the header also.
140+
141+
```json
142+
"extension": [ {
143+
"url": "https://fhir.hl7.org.uk/STU3/StructureDefinition/Extension-CareConnect-ActualProblem-1",
144+
"valueReference": {
145+
"reference": "Observation/F16EAE60-77F0-49F3-A424-C8F57FF02358"
146+
}
147+
}
148+
]
149+
```
150+
151+
This will populate the relevant `LinkSet / confidentiality code` in the resultant HL7 XML with the `NOPAT` security label.
152+
153+
154+
### Immunization
155+
156+
To mark an `Immunization` as redacted, the `NOPAT` security label should be applied to a resource with `resource.resourceType` set to `Immunization`.
157+
158+
This will populate the relevant `ObservationStatement / confidentialityCode` in the resultant HL7 XML with the `NOPAT` security label.
159+
160+
161+
### Medication Request
162+
163+
To mark a `MedicationRequest` as redacted, the `NOPAT` security label should be applied to a resource with `resource.resourceType` set to `MedicationRequest.`
164+
165+
This will populate the relevant `ObservationStatement / confidentialityCode` in the resultant HL7 XML with the `NOPAT` security label.
166+
167+
**When the patient record is received and integrated into Optum, the system can only hide either:**
168+
169+
1. **All medications associated with a repeat.**
170+
2. **None of the medications associated with a repeat**
171+
172+
**This means that if only one of associated `MedicationRequest[Order]` has a `NOPAT` security label applied, then none will be marked as redacted in Optum.**
173+
174+
**When the patient record is received and integrated into TPP and the `MedicationRequest[Order]` has a NOPAT security label applied, but not the associated `MedicationRequest[Plan]` of an acute medication, then the medication will not be marked as redacted in TPP.**
175+
176+
**These have been identified as being clinically acceptable after being reviewed.**
177+
178+
179+
### Document Reference
180+
181+
There are two possible ways to mark a `DocumentReference` as redacted, when applied to a resource with `resource.resourceType` set to `MedicationRequest`:
182+
183+
1. The `NOPAT` security label is applied to `DocumentReference.meta.security` as usual.
184+
2. The `NOPAT` security label is applied to `DocumentReference.securityLabel`.
185+
186+
Either of these will populate the relevant `NarrativeStatement / reference / referredToExternalDocument / confidentialityCode` in the resultant HL7 XML with the `NOPAT` security label.
187+
188+
189+
### Procedure Request
190+
191+
To mark a `ProcedureRequest` as redacted, the `NOPAT` security label should be applied to a resource with `resource.resourceType` set to `ProcedureRequest.`
192+
193+
This will populate the relevant `PlanStatement / confidentialityCode` in the resultant HL7 XML with the `NOPAT` security label.
194+
195+
**When the patient record is received and integrated into Optum, these diary entries will not be marked as redacted. This has been reviewed and does not present a clinical risk.**
196+
197+
198+
### Referral Request
199+
200+
To mark a `ReferralRequest` as redacted, the `NOPAT` security label should be applied to a resource with `resource.resourceType` set to `ReferralRequest.`
201+
202+
This will populate the relevant `RequestStatement / confidentialityCode` in the resultant HL7 XML with the `NOPAT` security label.
203+
204+
205+
### Observation
206+
207+
An Observation can contain a variety of data. In addition to the *laboratory results observations* documented above, the following observation resources can also be redacted.
208+
209+
#### Observation \- Blood Pressure
210+
211+
To mark an `Observation(Blood Pressure)` as redacted, the `NOPAT` security label should be applied to the relevant resource with `resource.resourceType` set to `Observation`.
212+
213+
This will populate the relevant `CompoundStatement/ confidentialityCode` in the `CompoundStatement` containing the `ObservationStatement` resource in the resultant HL7 XML with the `NOPAT` security label.
214+
215+
#### Observation \- Uncategorised
216+
217+
To mark an `Observation(Uncategoried)` as redacted, the `NOPAT` security label should be applied to the relevant resource with `resource.resourceType` set to `Observation.`
218+
219+
This will populate the relevant `ObservationStatement / confidentialityCode` in the resultant HL7 XML with the `NOPAT` security label.
220+
221+
222+
### Encounter
223+
224+
To mark an `Encounter` as redacted, the `NOPAT` security label should be applied to a resource with `resource.resourceType` set to `Encounter.`
225+
226+
This will populate the relevant `ehrComposition / confidentialityCode` in the resultant HL7 XML with the `NOPAT` security label.
227+
228+
229+
### Referral Request
230+
231+
To mark a `ReferralRequest` as redacted, the `NOPAT` security label should be applied to a resource with `resource.resourceType` set to `ReferralRequest.`
232+
233+
This will populate the relevant `RequestStatement / confidentialityCode` in the resultant HL7 XML with the `NOPAT` security label.
234+
235+
236+
### List \- Topic
237+
238+
To mark a `List(Topic)` as redacted, the `NOPAT` security label should be applied to a resource with `resource.resourceType` set to `List` and contain a `resource.code` set to `25851000000105` for `Topic (EHR)`.
239+
240+
This will populate the relevant `CompoundStatement / confidentialityCode` in the resultant HL7 XML with the `NOPAT` security label.
241+
242+
**When the patient record is received and integrated into Optum or TPP, these will not be marked as redacted. This is to be raised with EMIS and TPP as they either do not handle, or do not intend to handle the concept of redacting at a topic level.**

0 commit comments

Comments
 (0)