Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

  • Create a table for form_filtering. form_id, form_filter_id. If a form's form_id is listed in this table, the associated filter MUST return true in order to be displayed in the list of forms
  • Create a table for the filters and their parameters: form_filter. form_filter_id, class_name, properties (a key/value pairing)
  • Create an interface FormFilter where the logic for each type of filtering will be stored. important method is "public boolean shouldDisplayForm(Patient p, User u)"
  • Create an admin page for administrators to choose which forms get which filters
    • The admin page should look for all implementations of FormFilter and allow the admin to choose one
    • The admin page for each FormFilter should look at properties on the FormFilter to know what to ask of the admin
      • answers to these properties are stored in form_filter.properties as "age=18,value=after" vs "age=18,value=before" (using AgeFormFilter as example)
  • Create a GenderFormFilter that uses the patient's gender
  • Create a RoleFormFilter that requires the current user to have a specific Role
  • Create a PrivilegeFormFilter that requires the current user to have a specific Privilege
  • Create a DateFormFilter that requires it be before or after a certain date to be displayed
  • Create an AgeFormFilter that requires the patient be over or under a certain age
  • Create a CohortFormFilter that is based on the patient being in the defined cohort – this should be added in by the ReportingCompatibility Module

Mockup

Wiki Markup
{mockup:FormFilter|3}
Wiki Markup
{mockup:FormFilter_2|13}

...

Mockup
FormFilter
FormFilter
13
Mockup
FormFilter_2
FormFilter_2
113

...

Mockup
formfilter_3
formfilter_3
15