FHIR Chat · Purpose of Use Labeling for request questions · Security and Privacy

Stream: Security and Privacy

Topic: Purpose of Use Labeling for request questions


view this post on Zulip Eric Haas (Oct 20 2021 at 19:34):

From http://build.fhir.org/security-labels.html#core

The Security Label vocabulary has three patterns of use: (1) Bundle: Security/Privacy considerations of a data set, (2) Context: Describe security/privacy context of a request for data, and (3) Meta Data: to indicate security/privacy meta about that data.
...
Context: Requests (e.g. Read, Query, message triggers) - would describe the context of the request using purposeOfUse and compartment/clearance. The request might declare the highest confidentiality desired. It is unlikely to see in a request a declaration of sensitivity or integrity. It is also unlikely to see Obligations within a Request. (See Bundle for Response, where these are appropriate)
...
Purpose of Use These Purpose of Use (system = http://terminology.hl7.org/CodeSystem/v3-PurposeOfUse) is an indication of a reason for performing one or more operations on information. which may be permitted by source system's security policy in accordance with one or more privacy policies and consent directives. Such as collecting personal health information for research or public health purposes.
Notes may be used as:
The rationale or purpose for a request for data
The use limitation on a data Bundle
See discussion on HCS below

However it is unclear how to implement POU with requests. So for CDEX we are proposing the following for Task-based requests for data:

  1. The intent and meaning when using the Task.meta.security element to "describe the context of the request using purposeOfUse" codes was unclear. Instead we elected to use purposeOfUse codes in a Task.input parameter to indicate the context of the request.

  2. It is unclear whether the The Purpose of Use Codes (system = http://terminology.hl7.org/CodeSystem/v3-PurposeOfUse) can be used to Describe the context of a request for data or are they limited to Security/Privacy considerations of a data set or about that data. For example, can CLMATTCH be used to indicate that a data request is for a claims-audit?

view this post on Zulip Eric Haas (Oct 20 2021 at 19:36):

see this Example

view this post on Zulip John Moehrke (Oct 20 2021 at 20:29):

@Eric Haas I am not clear on what you are asking. Mostly because there is context that I am unaware of. I think it would be best to have a discussion rather than hope that this can be resolved on zulip.

view this post on Zulip John Moehrke (Oct 20 2021 at 20:36):

in a Query, the PurposeOfUse(s) would tend to be passed in as part of the security context. This is why it was added to SMART-on-FHIR and why it is fundamental to IHE IUA implementation guides. It might be implied by the security context, part of the trust-framework (all entities authorized within a given CA have agreed to policy that is stated as limited to a set of PurposeOfUse). Thus it is not always needed in every transaction. It is used as part of the authorization decision and enforcement. Any data returned in a response is expected to be usable for those PurposeOfUse that were in the request, and thus the data is not given for PurposeOfUse outside that request.

view this post on Zulip John Moehrke (Oct 20 2021 at 20:38):

on the vocabulary... If you have a concept that is not represented, then please use the vocabulary process to have your purposeOfUse added. If you don't think it is legitimate to add to HL7 vocabulary (THO), then you are free to create your own PurposeOfUse vocabulary, such as within your IG. Just like with any codesystem.

view this post on Zulip Eric Haas (Oct 20 2021 at 21:01):

Thanks John .... I think you answered my the questions in part.

view this post on Zulip John Moehrke (Oct 20 2021 at 21:02):

that is scary

view this post on Zulip Eric Haas (Oct 20 2021 at 21:06):

in a Query, the PurposeOfUse(s) would tend to be passed in as part of the security context. This is why it was added to SMART-on-FHIR

@John Moehrke I just did a search of the Smart spec and did not find any mention of PurposeofUse. Can you point out the salient section?

view this post on Zulip Eric Haas (Oct 20 2021 at 21:08):

remind me when are the Security calls?

view this post on Zulip John Moehrke (Oct 20 2021 at 21:51):

that would be in the version 2. -- http://build.fhir.org/ig/HL7/smart-app-launch/

view this post on Zulip John Moehrke (Oct 20 2021 at 21:55):

seems they have downplayed the capability I saw in the ballot . @Josh Mandel ?

view this post on Zulip John Moehrke (Oct 20 2021 at 21:56):

It still seems to be in the UDAP spec - https://build.fhir.org/ig/HL7/fhir-udap-security-ig/branches/main/b2b.html

view this post on Zulip John Moehrke (Oct 20 2021 at 21:58):

It is in the IHE spec https://profiles.ihe.net/ITI/IUA/index.html - look for purpose_of_use

view this post on Zulip John Moehrke (Oct 20 2021 at 21:59):

FHIR Security calls are Mondays at 12 eastern

view this post on Zulip Eric Haas (Oct 21 2021 at 20:32):

After reviewing the 3 references spec above, I see three distinct "standard" ways to do Purpose of Use for Direct Queries using Authorization Layer. - see my analysis here

am I mistaken?

view this post on Zulip Lloyd McKenzie (Oct 22 2021 at 03:25):

Do we have a requirement for "purpose of use" for direct queries? I thought our only requirement was for the asynchonous Task-based requests - and for those, we need to pass it as a parameter to the Task. The various header mechanisms are all about the "purpose of use for the current action" - which is posting a Task. They wouldn't deal with the purpose of use of the action the Task is soliciting.

view this post on Zulip John Moehrke (Oct 22 2021 at 12:19):

I had not understood the distinction Lloyd is making. So the Task itself is the embodyment of a set of actions that are ALL under a set of PurposeOfUse? I could see how this would be useful element of the Task instance. It then might drive that all accesses to the Task must agree with that PurposeOfUse, right?

view this post on Zulip Lloyd McKenzie (Oct 22 2021 at 18:16):

The Task is saying "please go find this data/execute this query/filter as appropriate/package it up for my consumption - and return it to me". We also want to say "and by the way, the way I intend to use this information (which might affect what you choose to give me/how you choose to filter), is the following".

view this post on Zulip Lloyd McKenzie (Oct 22 2021 at 18:17):

So, there's no real "purpose of use" for the posting of the Task. The purpose of use is for "what will happen to the data you give me assuming you execute the Task".

view this post on Zulip Eric Haas (Oct 23 2021 at 01:55):

@Lloyd McKenzie , @John Moehrke my question aboveis not related to Task based requests. I think my questions about Task and the reuse of POU terminololy have been sufficiently answered. But in CDEX we also cover direct queries and obliquely reference the aforementioned standards the the IG notes. I am trying to get my head around the current state for the request authorization layer. Doing some extra credit reading....Gotta keep up! :-)

view this post on Zulip Eric Haas (Oct 23 2021 at 02:04):

Lloyd McKenzie said:

So, there's no real "purpose of use" for the posting of the Task. The purpose of use is for "what will happen to the data you give me assuming you execute the Task".

the distinction between those two things is easily conflatable and why I keep questioning why they are not the same. I give up for now on arguing that they are, and I imagine by not using Task.meta.security it will be avoided. Reluctantly agreeing with Lloyd. ;-)

view this post on Zulip Grahame Grieve (Oct 25 2021 at 04:40):

I think that purpose of use shouldn't be associated with the OAuth content. I don't want to have to re-login when I decide to look up some information for treatment as opposed to research.

view this post on Zulip Grahame Grieve (Oct 25 2021 at 04:41):

and the spec defines how to associate security labels with requests, if that's appropriate: https://hl7.org/fhir/security-labels.html#break-the-glass

view this post on Zulip John Moehrke (Oct 25 2021 at 11:57):

the purposeOfUse should be declared in the security context. The fact that the v2 of SMART does not have this is due to implementer pushback on how hard it is, I don't disagree. Security is hard, doing it right is very hard. The break-the-glass hack is outside the security context, and hence why it is dragon warning.


Last updated: Apr 12 2022 at 19:14 UTC