Good point Sateesh, that is probably more common a use-case than my
example.   Although whether we add the ability to restrict at a hospital
level or a provider level, we have the same problem:

There isn't a way to mark a patient's health center.  The workaround some
people have used are either using a new person_attribute_type or a
post-data entry query of "if this patient has ever had an en encounter at
location x".

There isn't a way to mark a patient's provider(s).  The workaround is
similar in that a person_attribute_type could point at a provider.

If we add this as one of the simple options for data restriction we'll need
to add a core method of storing the info AND help users migrate their
workarounds into it.

Ben

On Thu, Apr 19, 2012 at 12:56 AM, Sateesh Babu <[email protected]>wrote:

> In my view a patient is always related to a doctor and not a hospital and
> has utmost authority on his/her data.
> In this aspect, if Patient_A was checked upon by Doctor_X in Hospital_H,
> then the Patient_A record should be accessible by only Doctor_X unless and
> until the Doctor_X has referred Patient_A to other doctors in Hospital_H
>
> It would surely be not correct to allow each and every doctor in the
> OpenMRS installation to allow access to all patient records
>
> --
> Sateesh
>
> On Wed, Apr 18, 2012 at 10:56 PM, Ben Wolfe <[email protected]> wrote:
>
>> (moving to dev list)
>>
>> Wayne
>>
>> My biggest fear is that If we were to implement data level permissions it
>> would slow the system down significantly.
>>
>> Data level permissions starts off easy:
>> Restrict patient with location = X to users with privilege
>> can_see_patients_at_location_x
>>
>> However, making that generic gets complicated:
>>
>> restrict table y where column_z = X to users with privilege
>> can_see_table-y_where_column_z_is_X
>>
>> I'm sure there would be a way to store that so that an admin can specify
>> that.  However, we'd then have to modify all core api calls to obey that
>> principle.  Reporting would be the real slow-down.
>>
>> If we could identify the 90% use-case for data level permissions that
>> might be doable.  How would you be using it?  aka what are you restricting,
>> when, and to whom?
>>
>> Examples:
>> 1) Provider at hospital Y can only see patients if they have ever had an
>> encounter at location Y
>> (if making most generic: how to know if a provider is "at" hospital Y?)
>>
>> 2) Provider of specialty A can only see patients if they have had an
>> encounter with encounter_type A, Aa, or AAa
>>
>> 3) User can only see data that they are the "creator" of
>>
>> Ben
>>
>> On Wed, Apr 18, 2012 at 12:54 PM, Wayne Chelliah <[email protected]> wrote:
>>
>>> Hi Ben
>>>
>>> Just following up on our conversation from last week. Can you please
>>> help me understand what are some of the specific challenges with the
>>> OpenMRS architecture that make data level permissions difficult?
>>> OpenMRS can use roles and privileges to restrict access to pages, forms
>>> and encounters. But can we restrict access to groups of data that span
>>> multiple encounters?
>>>
>>> Regards
>>> Wayne
>>>
>>
>> ------------------------------
>> Click here to 
>> unsubscribe<[email protected]?body=SIGNOFF%20openmrs-devel-l>from 
>> OpenMRS Developers' mailing list
>
>
> ------------------------------
> Click here to 
> unsubscribe<[email protected]?body=SIGNOFF%20openmrs-devel-l>from 
> OpenMRS Developers' mailing list

_________________________________________

To unsubscribe from OpenMRS Developers' mailing list, send an e-mail to 
[email protected] with "SIGNOFF openmrs-devel-l" in the  body (not 
the subject) of your e-mail.

[mailto:[email protected]?body=SIGNOFF%20openmrs-devel-l]

Reply via email to