This module was developed by Jembi.
Overview
As part of an implementation which is being done by Jembi, there are some special requirements for the Html_Form_Entry_Module. The details of this tweaked module are outlined below.
Features
The custom features of this module are defined below.
Form Pop Out
Forms pop out into a new window to be completed, viewed or previewed.
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.
User Guide
- Download the module from here.
- Install the module by following the guide at Administering Modules.
- On the Html Form Designer (Administration >> Manage HTML Forms), you should now be able to associate roles with forms, as seen below:
- Users can be assigned roles from the User Admin page (Administration >> Manage Users). For more about roles see Controlling User Access___Roles and Privileges.
Developer Guide
Implementation Notes
Form Pop Out
There are two parts to this feature. Firstly, on the form designer page, the preview now pops out into a new window. This is done by making use of a request parameter (mode=PREVIEW
) on the htmlForm.jsp
page, which when used, displays only the preview and not the designer. When this parameter is not used, the normal designer page is displayed, but instead of the preview at the bottom, a link is displayed to the same page, but with the mode=PREVIEW
parameter used. This link is made to pop into a new window.
The second part of the feature affects the patient dashboard portlet (patientHtmlForms.jsp
). The links on this page have been made to pop into a new window.
Roles Based Form Display
A new database table called htmlformentry_html_form_role
is introduced. This table facilitates a many-to-many mapping between roles and html forms. There will also be a column in the table which will be used to denote whether the given mapping is a "View" or "Edit" ("Both") mapping. That is, separate mappings will be created for the case where a user can view a completed form and for the case where a user can complete a new form.
HtmlFormController.java
is extended to return associated roles and a complete list of roles to the view via the referenceData
method. Also, the onSubmit
method is extended to persist the associated roles to the database. Functionality has been added to htmlForm.jsp
in order to facilitate the adding of new roles on the form designer.
PatientHtmlFormEntryPortletController.java
's populateModel
method has been extended to filter out any forms that the current user doesn't have permission to view/complete. Note: forms with no associated roles will always be displayed.