--
You received this message because you are subscribed to the Google Groups "SMART on FHIR" group.
To unsubscribe from this group and stop receiving emails from it, send an email to smart-on-fhi...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
We all agree that there is opportunity for improvement in the SMART scopes.
For example, FHIR’s Observation already divides into eight distinct categories. In the above (admittedly, contrived) example, gestational age is provided in Observation’s core-characteristics category, weight in the vital-signs category, and the HIV lab result in the laboratory category. I think we should standardize and enhance our representation of scopes to something like: patient/Observation-vital-signs.read & user/Observation-laboratory.create.
While Condition includes a similar category, other resources do not. Does that mean that they’re an appropriate breadth for authorization? If not, is there a reasonable, alternate method that logically split them into distinct scopes?
HIV lab results are exposed to apps with the same user/Observation.read scope as simple weight or gestational age! This seems crazy to a CISO.
I don't think these things have much to do with scopes - those are to authorize apps, but the possible concern is to authorize users - and that should be (hopefully IS) handled by existing permissions systems
--
One of the distinctions we made in IHE a very long time ago was the distinction between typeCode and classCode, where typeCode was a detailed description of the data at a very in depth level, suitable for computing with, whereas classCode was a very high level description of the data suitable for human use.
This fits in some ways with the category classification on several resources (e.g., observation, condition, allergy).
Generally, the way I’ve handled category classification in FHIR is through value sets linked to a particular category. So, any observation falling into my “vital-signs” value set would be classified as a vital-signs observation. Some times this can be handled (for example for certain kinds of procedures) through hierarchical definitions of categories in a coding system (this chunk of codes descending from XYZ in SNOMED-CT are all {particular type of disease}-diagnostic procedures).
So, from the end user perspective, if you are looking to subset observations to a particular list, I’d say, consider using a well-defined category code (already existing in FHIR), or reference a value set with a name and a good definition. In that way, it CAN be something the user would understand.
Eventually, query parameters are testable through value sets, so this will also work with the computer.
Keith
Great points Josh.
Lest we forget, one of the things that is supposed to happen in SMART between the time that an App requests certain scopes and those scopes are granted is interaction with the owner of the resources in which they authorize use of certain resources. If you’ve ever used an app of Facebook, LinkedIn or Twitter, you might have seen such a dialog box.
XYZ app wants to
Access your e-mail address
Access your contact list
Make posts on your behalf
In some cases, you can make an all or none Approve/Cancel request, but in other cases you can turn off individual requests. When I’m using Google or Facebook login’s to basically authenticate myself, I deny access to all the other features that the application is requesting, because it doesn’t need them to find out what my e-mail address is.
So, an EHR COULD ask the user to provide further restrictions and apply those, without the app ever knowing that further limitations had been placed one it should it so choose to limit the types of observations the app was attempting to access. There’s some benefit to this App unaware negotiation process, in that it doesn’t disclose to the app what limits have been placed on it, which is a potential for leaking information.
If an app knows it can access my labs, but not my XYZ data, that could be interpreted as “there’s a good change that I have some XYZ data that I don’t want you to see”. This is in part why we say there’s nothing here (404 Not Found), when in fact, what we really mean is there’s nothing hear you are allowed to look at (403 Forbidden).
Keith
From: smart-...@googlegroups.com <smart-...@googlegroups.com>
On Behalf Of Josh Mandel
Sent: Monday, December 3, 2018 12:12 PM
To: John Moehrke <johnm...@gmail.com>
Cc: Syed,Jenni <Jenni...@cerner.com>; SMART on FHIR <smart-...@googlegroups.com>
Subject: Re: Scope support for profile granularity
Great discussion I'm interested in better understanding the distinction you're making here, Jenni. Is it mainly about the target of the delegation (sharing with an app vs sharing with, say, a provider)? From your example, that was my first impression, but I think I may have missed your real point. Because in both of these cases, limitations on what's shared might be imposed outside of the scope-based negotiation (e.g., the EHR system may impose rules limiting what's shared, or may give the user a fine-grained way to limit what's shared on top of the scope negotiation, as an explicit part of the approval UX).