Data isolation/namespacing in caching layer #12
Replies: 2 comments 9 replies
-
Hey Julien, Thanks for the detailed request. However, we wanted to clarify that today, Flexpa limits access based on the patient access token that is used to make a request. The access is therefore identical/transitive to what is implemented by the payer.
In the event that a payer implemented the ACL you describe, where a policy holder can authorize access to a dependent but can only retrieve a subset of information, no PHI leaks could occur. The current access control based on Patient Access Tokens would result in:
In this way, no PHI leaks could occur. Regardless, we do think a feature in this area could be valuable and relatively reasonable to allow customers to:
We'll work on the API design and let you know what we're thinking shortly. |
Beta Was this translation helpful? Give feedback.
-
Closing this as implemented. See details here. |
Beta Was this translation helpful? Give feedback.
-
Last week, Flexpa announced that it would update how it namespaces FHIR resources in its upcoming data cache. It will isolate data at the application level rather than at the Link access token level. This is a great improvement as it allows clients to get the same stable IDs for resources as a user refreshes a Link or creates a new Link. Clients can now easily track how an EOB evolves over time.
However, the new design means that the same ID will be returned for the same FHIR resource regardless of who has authorized the Patient in the family. This could lead to PHI leakage because, to comply with HIPAA, payers normally have to implement access control logic (ACL) within a family. For example, the policyholder of a plan may not be able to see the EOBs of their spouse or dependents over 18 years old. From the HHS website:
For those reasons, as a policyholder, you don't get to see the EOBs for your entire family when you log into your insurance portal. You will see the accumulators for your family and sometimes scrubbed EOBs to help with payment. Anecdotally, I worked on a project defining and implementing these access control rules at Oscar Health.
If payers implemented the ACL in the API, the new Flexpa isolation scheme could lead to unintended PHI leaks. For example, if a spouse fetches their own Patient records, and then the policyholder fetches the Patient record for their spouse, the policyholder would currently access all the cached records that were previously fetched by the spouse, completely bypassing the ACL of the payer. If the spouse had told their payer that the policyholder should not be able to see a specific EOB and the payer had hidden that record from the policyholder, the policyholder could still see that EOB through Flexpa.
Unfortunately, the CARIN specs do not mention anything about ACL in their implementation, so access control is currently left to the payers' discretion. As far as I know, none of the test accounts listed by Flexpa share some family data so we are left to use production data to understand each payer's implementation. Since Flexpa does not cache any data and their API currently does not differentiate between who is authorizing access for a Patient, we have no data points except for a few anecdotical reports from Flexpa's employees or Flexpa's customers; usually people on Anthem / Empire since it's the main commercial insurer who supports those Patient access API.
Given that (1) Flexpa has seen tremendous variability in payers' API implementations and that (2) HIPAA compliance is considered a top priority by payers, Flexpa should design its isolation system to prevent PHI leakage when payers implement ACL. It is very possible that no payers implement ACL in their Patient APIs today, but as those APIs get adopted, there will be some public blowback around PHI leakage that will inevitably lead to ACL being implemented in those Patient APIs, either independently or via an update to the CARIN specs.
To account for this, we're proposing that Flexpa allows clients to pass an optional
userId
toFlexpaLink.create
so it can isolate FHIR resources at the level of the application and the user who created the Link (i.e. the user who authorized the access). The benefits of this approach:Future-proof: There will never be unintended PHI leakage within a family, and Flexpa can guarantee it won't ever have to update its ID scheme to honor payers' ACL. The latter would be very disruptive for clients for the reason listed in the introduction and because they would have to redesign their production system after the fact.
Visibility: Flexpa gets visibility into how payers are dealing with ACL. Currently, Flexpa is completely in the dark and has to rely on anecdotal reports from customers.
Required: Unfortunately, clients have no way to implement this isolation system on their own and are completely dependent on Flexpa for this.
Optional for clients: Only clients who are paranoid about PHI leakage like us can use the system.
Simple: If Flexpa was able to move from the previous isolation scheme to the new one in a week, it's probably a low lift to add an extra parameter to their ID generation scheme.
Please, let us know what you think.
Beta Was this translation helpful? Give feedback.
All reactions