(Sending to the dev list, since my reply is more dev-focused.)

This makes a lot of sense to me, both as a use case, and as a way to
approach it.

At first thought, it seems to me that the following would be pretty easy to
implement:

   - Add two properties to EncounterType: viewPrivilege and editPrivilege
   - in the db those would be encounter_type.view_privilege and
   edit_privilege (varchar references privilege)
   - The encounters dashboard tab would need to respect viewPrivilege when
   deciding what encounters to display
      - can we build this into the paged hibernate query we're using,
      though?
   - Same goes for the visits dashboard tab
   - Same goes for the encounter search widget, and the manage encounters
   admin page

Assuming the hibernate query is tractable, and assuming people generally
agree with this design, I could see this fitting into the sprint...

-Darius

On Thu, May 17, 2012 at 1:52 PM, James Arbaugh <jarba...@hashaiti.org>wrote:

> Hi All!****
>
> ** **
>
> I have commented on 
> TRUNK-3361<https://tickets.openmrs.org/browse/TRUNK-3361>and had a short call 
> with Darius to explain the use-case that we are trying
> to solve.  It has more to do with requiring permissions for viewing/editing
> encounters than it does to what users can fill out a given form. So, after
> a form has already been filled out (which we’ll called an encounter at that
> point and is shown under the encounter/visit tab on the dashboard).  Who
> has permissions to view it and/or edit it?  So for example, we need to
> limit the viewing/editing of Blood Bank  encounters to only users of the
> Blood Bank.  And we need to limit the editing of Lab encounters to only Lab
> Technicians, but they can be viewable by doctors.  And we need to limit the
> editing of surgery encounters by Surgery data entry clerks and surgeons,
> but all doctors can view them.  If a user isn’t going to be able to
> view/edit the contents then it need not appear in the list of encounters.*
> ***
>
> ** **
>
> The view and edit role and/or privileges could be implemented on the Edit
> Encounter Type page rather than on the Edit Form page.  The consideration
> of doing it on the Edit Form page instead would be if someone needed to
> limit viewing/editing of forms in the case of different forms that use the
> same type of encounter.****
>
> ** **
>
> Thanks for your patience and willingness to help make this needed
> functionality a reality.****
>
> ** **
>
> Thanks,****
>
> James****
>
> ** **
>
> *From:* implement...@openmrs.org [mailto:implement...@openmrs.org] *On
> Behalf Of *Darius Jazayeri
> *Sent:* Wednesday, May 16, 2012 7:09 PM
>
> *To:* openmrs-implemen...@listserv.iupui.edu
> *Subject:* Re: [OPENMRS-IMPLEMENTERS] Roles and Privileges Sprint****
>
> ** **
>
> Hi Implementers and Devs,****
>
> ** **
>
> James has been pushing for TRUNK-1640 to be included in next week's sprint
> (and I don't blame him--it has 6 votes!). But on today's design call, we
> looked at the proposed solution in that ticket, and we're not comfortable
> introducing it into the codebase with the given design.****
>
> ** **
>
> In particular, it wants to create a form_role table that links forms to
> the roles that are allowed to enter/edit them.****
>
> ** **
>
> Instead, we have a counter-proposal, which I've ticketed at 
> TRUNK-3361<https://tickets.openmrs.org/browse/TRUNK-3361>.
> Instead we would add a form.entry_privilege column, so a sysadmin can
> create a privilege for entering a particular form, and assign it to
> whatever role or roles they choose.****
>
> ** **
>
> James & others: would this solve your use case? If possible please comment
> on the ticket. (I'm emailing this to both the implementers and dev lists,
> so you won't all necessarily get each others replies.)****
>
> ** **
>
> https://tickets.openmrs.org/browse/TRUNK-3361****
>
> ** **
>
> -Darius****
>
> ** **
>
> On Wed, May 16, 2012 at 3:12 PM, Ben Wolfe <b...@openmrs.org> wrote:****
>
> Looking at it briefly TRUNK-1640 looks very similar to what is on slate
> for the gsoc project. Both are linked to forms, not to encounter types.  *
> ***
>
> ** **
>
> Ben****
>
> ** **
>
> On Wed, May 16, 2012 at 5:41 PM, Daniel Kayiwa <kayiwadan...@gmail.com>
> wrote:****
>
>
> Hi James,
>
> We shall not deal with TRUNK-1640 during GSOC because it will broaden the
> scope more than what the student is expected to cover in that limited time.
>
> However, i see it fitting in next week's Roles and Privileges Sprint.
> So i think we could consider it as part of what we are going to deal with
> during that sprint.
>
> What do others think?****
>
>
>
> ****
>
> On Mon, May 14, 2012 at 3:21 PM, James Arbaugh <jarba...@hashaiti.org>
> wrote:****
>
> Hi Darius,****
>
>  ****
>
> Thanks for setting me straight.  I confused the “Restrict By Role Module”
> with the “Restrict By Encounter Type Module” by the HISP India group which
> would address the needs of TRUNK-1640.  We do NOT need the “Restrict By
> Role Module”.****
>
>  ****
>
> I recently added TRUNK-1640 as “Extra Credit” on the Filtering Forms on
> Dashboard Design Page because it’s related. The GSoC main project is to
> limit which forms appear in the list of forms that can be filled out.
> TRUNK-1640 is to limit which role is required for given encounter types to
> be viewed/edited.
> https://wiki.openmrs.org/display/docs/Jembi+Html+Form+Entry+Module ****
>
> *Roles Based Form Display*****
>
> On the form designer, roles can be associated with forms. Roles associated
> with a form can either be associated as a "View" role or an "Edit" role (or
> the equivalent "Both" role). On the patient dashboard, if there are roles
> associated with a form, then the currently authenticated user must have the
> appropriate roles to view and/or edit a form.****
>
> Can we make TRUNK-1640 an official requirement for the GSoC project?  Or
> is that something that can be addressed through the Roles and Privileges
> Sprint?****
>
>  ****
>
> Thanks,****
>
> James****
>
>  ****
>
> *From:* implement...@openmrs.org [mailto:implement...@openmrs.org] *On
> Behalf Of *Darius Jazayeri****
>
>
> *Sent:* Thursday, May 10, 2012 7:19 PM
> *To:* openmrs-implemen...@listserv.iupui.edu****
>
> *Subject:* Re: [OPENMRS-IMPLEMENTERS] Roles and Privileges Sprint****
>
>  ****
>
> About filtering things by roles...****
>
>  ****
>
> Filtering forms by roles and patient characteristics is a GSoC project
> this year (https://wiki.openmrs.org/x/OIW5AQ, student = Goutham
> Vasireddi) so we will not be working on that during the sprint. (But yes,
> we know it's highly voted and much awaited!)****
>
>  ****
>
> The Restrict By 
> Role<https://modules.openmrs.org/modules/view.jsp?module=restrictbyrole> 
> module
> allows you to use Cohort Builder queries to limit the patients a given Role
> can see. As far as I know, this is the *only* published module that lets
> you limit the patients that particular users are allowed to see, although
> that's a frequently-requested feature. This was a very early module (from
> 2007), so the code is mediocre, it probably slows down your patient
> searches a lot, and the API has changed since then so it probably misses a
> lot of restrictions.****
>
>  ****
>
> [The reason there aren't any other published modules doing this is that
> it's basically impossible to solve the problem generically in a performant
> way.)****
>
>  ****
>
> So the question is: are there any implementers out there who would like to
> see us spend some developer cycles doing a modernized version of Restrict
> By Role? It would:****
>
>    - let you restrict the patients that particular users/roles can see
>    based on reporting module cohort queries (instead of cohort builder)***
>    *
>    - cache query results so it slows things down less than the current
>    module does****
>
> If there's interest, we can spend some cycles on this during the sprint.
> (And if not, not.)****
>
>  ****
>
> -Darius****
>
>  ****
>
> On Thu, May 10, 2012 at 3:22 PM, James Arbaugh <jarba...@hashaiti.org>
> wrote:****
>
> Greetings all!  ****
>
>  ****
>
> One of our highest priorities should be the RestrictByRole module
> capability; the ability to specify which user roles can view/edit which
> encounters.  This is important to many based on the number of people that
> have voted (6) for the “Add roles-based form display feature ticket”…****
>
> https://tickets.openmrs.org/browse/TRUNK-1640****
>
> …which includes the ability to “filter form viewing and editing based on
> roles”.****
>
>  ****
>
> This is also something that comes up frequently on the mailing list and on
> OpenMRS Answers.****
>
>
> https://answers.openmrs.org/questions/585/a-way-to-set-role-privileges-to-specific-form-entry-forms
> ****
>
>  ****
>
> +1 on improving documentation****
>
>  ****
>
> Thanks,****
>
> James****
>
>  ****
>
> *From:* implement...@openmrs.org [mailto:implement...@openmrs.org] *On
> Behalf Of *Daniel Kayiwa
> *Sent:* Thursday, May 10, 2012 5:22 PM
> *To:* openmrs-implemen...@listserv.iupui.edu
> *Subject:* [OPENMRS-IMPLEMENTERS] Roles and Privileges Sprint****
>
>  ****
>
> Greetings to you all!!!****
>
>  ****
>
> We are soon going to have a sprint on roles and privileges, during which
> we are thinking of dealing with the following topics:****
>
>  ****
>
> 1) Make it easy for an admin to see what privileges are needed to perform
> a sequence of actions. ****
>
> 2) Improve the page a user sees when they fail a privilege check.****
>
> 3) Improve documentation on how to use privileges/roles and avoid pitfalls.
> ****
>
> 4) Implement Organizational Role as designed in this wiki page:
> https://wiki.openmrs.org/display/docs/Organizational+Roles****
>
>  ****
>
> Do you feel the above topics address what the community needs, as far as
> roles and privileges are concerned?****
>
> Does anyone want a modernized version of the Restrict By Role module?****
>
> Do you have anything to say about the Organizational Role API design?****
>
>  ****
>
> All questions, comments and suggestions are very welcome!!!****
>
>  ****
>
> Daniel Kayiwa****
>
> On Behalf of the OpenMRS Community****
>
>  ****
> ------------------------------
>
> Click here to 
> unsubscribe<lists...@listserv.iupui.edu?body=SIGNOFF%20openmrs-implement-l>from
>  OpenMRS Implementers' mailing list
> ****
>
>  ****
> ------------------------------
>
> Click here to 
> unsubscribe<lists...@listserv.iupui.edu?body=SIGNOFF%20openmrs-implement-l>from
>  OpenMRS Implementers' mailing list
> ****
> ------------------------------
>
> Click here to 
> unsubscribe<lists...@listserv.iupui.edu?body=SIGNOFF%20openmrs-implement-l>from
>  OpenMRS Implementers' mailing list
> ****
>
>
>
> ****
>
> --
> If we keep uppermost in our minds the unkind and unjust acts of others, we
> shall find it impossible to love them as Christ has loved us; but if our
> thoughts dwell upon the wondrous love and pity of Christ for us, the same
> spirit will flow out to others.****
>
> ** **
> ------------------------------
>
> Click here to 
> unsubscribe<lists...@listserv.iupui.edu?body=SIGNOFF%20openmrs-implement-l>from
>  OpenMRS Implementers' mailing list
> ****
>
> ** **
> ------------------------------
>
> Click here to 
> unsubscribe<lists...@listserv.iupui.edu?body=SIGNOFF%20openmrs-implement-l>from
>  OpenMRS Implementers' mailing list
> ****
>
> ** **
> ------------------------------
>
> Click here to 
> unsubscribe<lists...@listserv.iupui.edu?body=SIGNOFF%20openmrs-implement-l>from
>  OpenMRS Implementers' mailing list
> ****
>  ------------------------------
> Click here to 
> unsubscribe<lists...@listserv.iupui.edu?body=SIGNOFF%20openmrs-implement-l>from
>  OpenMRS Implementers' mailing list
>

_________________________________________

To unsubscribe from OpenMRS Developers' mailing list, send an e-mail to 
lists...@listserv.iupui.edu with "SIGNOFF openmrs-devel-l" in the  body (not 
the subject) of your e-mail.

[mailto:lists...@listserv.iupui.edu?body=SIGNOFF%20openmrs-devel-l]

Reply via email to