XForms Module Release Notes

Release Notes


  • Added ability to delete encounters - XFRM-208


  • Fixed bug with date values when using the OpenMRS calendar widget in forms.
  • Added ability to edit encounters from the reference application visits patient dashboard - XFRM-203

  • Added support for platform 2.0


  • Fixed bug where retired forms were shown for data entry. XFRM-201
  • Fixed Null Pointer Exception when displaying encounters with no forms.
  • Fixed bug where edited contact information could not be saved. RA-901
  • Fixed Null Pointer Exception when returning encounter filled xforms.
  • Added an HTML widget to the form designer.
  • Added an option to exclude layout when loading a prefilled xform.
  • Added encounterUuid for loading xforms filled with encounter data.
  • Added patient information when returning an encounter filled xform.


  • Fixed problem where clicking the edit link in the patient header was not loading the xforms patient registration form. XFRM-197
  • Fixed problem which required one to load the uiframework module in order to load the xforms module. XFRM-198


  • Added ability to select the form to navigate to on submission. XFRM-195
  • Improved styling of xforms in the reference application.


  • Added ability to override the default patient registration form in the reference application. XFRM-194
  • Fixed error when concept data type is numeric and the precise check box is selected. XFRM-192


  • Added ability to prevent entering a form more than once for a patient.
  • Added ability to disable automatic creation of the patient relationship node.
  • Added ability to accept patient uuid instead of only id, during data submission. XFRM-191
  • Fixed displaying of null for providers without identifiers.
  • Fixed bug where one would not display the health center name. XFRM-185
  • Made a followup fix for failure to submit a form due to time zone changes. XFRM-164


  • Fixed bug where encounter forms did not save edited patient demographic data.
  • Fixed NPE when a relationship person has no name.
  • Changed the encounter and observation date and time to always be assigned by the server instead of the client.


  • Fixed problem where date and time concepts did not have the correct data types in the form designer.
  • Fixed problem where location and provider auto complete widgets displayed ids instead of names on form edit.
  • Fixed problem where some fields in group widgets were not saving data.
  • Made the location search widget work in the reference application.
  • Removed HTML display from auto complete widget search results in the reference application.


  • Fixed NPE when designing a form with problem lists.
  • Fixed problem where tables were not displayed when entering form data from the reference application.
  • Added display and ability to edit existing encounters for the reference application.


  • Added support for resetting Tab order.
  • Added sub forms feature.
  • Added ability to lock all widgets.
  • Added ability to add new columns and row without resizing a table, while pressing CTRL.
  • Added ability to drag a field without its label and drop onto the design surface, while pressing CTRL.
  • Made the selected widget/s standout more markedly from others.
  • Fixed bug where widgets with the same tab index were not shown.
  • Fixed validation rule bug in nested group question types.
  • Fixed parent widget validation bug in group boxes.
  • Fixed bug where editing labels messed up tables when their lengths became wider than the table.


  • Fixed a java.lang.NoClassDefFoundError: org/springframework/mail/MailException when run on OpenMRS 1.11
  • Fixed a Null Pointer Exception when opening the patient dashboard of the reference application.


  • Added support for the reference application new user interface - XFRM-179
  • Fixed bug where removing the relationship node led to deletion of patient relationships on form submission - XFRM-176


  • Added ability to get a concept name from an attribute value - XFRM-171
  • Added ability to save concept person attribute values on encounter forms - XFRM-171

  • Fixed bug where external source property was case sensitive - XFRM-172
  • Fixed NPE when external source widget search results have null values - XFRM-173


  • Fixed NPE when submitting some forms with relationships.

  • Added ability to submit forms without refreshing the page.
  • Fixed NPE when submitting forms for patients without relationships.

  • Added the relationship widget. XFRM-16
  • Added ability to update demographic and person attribute data when submitting encounter forms . XFRM-104
  • Added automatic selection of a design surface widget when its form field panel item is selected.
  • Added automatic selection of a form field panel item when its design surface widget is selected.
  • Added support for opening a form in read only mode. XFRM-121
  • Added skip logic support for an exclusive option in answers of a multiple select question. XFRM-148
  • Added skip logic support for exclusive options between answers of two multiple select questions. XFRM-72

  • Added support for dragging a multiple select question option/answer from the form fields panel to design surface. XFRM-132
  • Added flag to turn off automatic adding of widgets to the design surface when the form is loaded for the first time. XFRM-100
  • Improved error reporting when submitting forms
  • Updated the default XSLT to support complex observation. XFRM-120
  • Fixed a NPE when submitting some patient registration xforms. XFRM-161
  • Fixed a NPE when saving some complex obs on a group type widget that has a binary data type.
  • Localized more error messages that happen when submitting forms. XFRM-133

  • Fixed bug where form entry errors were hidden by the xforms module. XFRM-160
  • Fixed bug where some concepts under PROBLEM LIST were not shown as repeat questions on the form. XFRM-151
  • Fixed bug where you could not have more than one concept search widget working properly on the form.
  • Fixed NPE when one had more than one location search widget on the form.
  • Fixed bug where one could not search for radio button and check box widgets text on the design surface.
  • Fixed bug where searching for widget text on the design surface was not selecting the containing tab if it was not the currently selected one.
  • Added more previous years to the date picker widget. XFRM-147

  • Added table widget.
  • Added ability to change the Time, DateTime and Date picker widget from the default to that used in the rest OpenMRS
  • Added ability to search for text under the form fields panel and on the design surface
  • Added toolbar icons for Bold, Italic, Underline, Font Family, Font Color and Font Size.
  • Added ability to customize the form look and feel using custom CSS.
  • Added ability to automatically type on a design surface without requiring to first drag and drop a label widget from the palette.
  • Fixed bug where error icon was not being removed whenever text area widget data became valid.
  • Fixed bug where forms with duplicate schema fields were not able to load in the form designer. e.g the demo data AMPATH Adult Return Visit Form.
  • Fixed bug where a patient creation form that has encounter obs was creating patients even when the encounter failed to save.
  • Fixed problem where a form failed to load when it had velocity expressions that failed to be evaluated.

  • Added ability to format date and time for past observations.
  • Fixed bug where an XSLT provided under form resources was not being used.
  • Removed the showing no data node found message when previewing some forms.
  • Fixed NPE when refreshing forms which have concepts that do not have names in some locales.
  • Enforced saving of forms in error folder whenever there are processing problems.
  • Fixed NPE when trying to create a new patient without any input parameters.
  • Fixed NPE when submitting grouped questions that are not of type repeat.
  • Fixed NPE when OPENMRS_VERSION_SHORT is null.

  • Added duplicating of an xform together with a form schema.
  • Added automatic refreshing of the preview tab, whenever the user switches to it, if the form has changes.
  • Fixed widget scrolling problems for forms that are longer than the screen.

  • Added ability to drag and drop fields from the Form Fields panel to Design Surface.

  • Added ability to lock/unlock individual widgets.
  • Fixed problem where dragging a rubber band was automatically highlighting text on the design surface.
  • Fixed problem where one could not launch the form designer when running Java 7
  • Fixed problem where one was not able to add a selected form field to a group box widget.

  • Added support for using the current theme by new forms.
  • Added provider, location and person search widgets.
  • Added support for grouping form fields without having them to repeat.
  • Fixed Null Pointer Exception when editing some encounters on 1.9
  • Fixed bug where Boolean concepts were displayed as text fields.

  • Made some improvements in the form designer.

  • Fixed bug where new person attributes could not save on editing using the patient registration xform - XFRM-74

  • Fixed Null Pointer Exception when designing a form with problem lists.

  • Improved xform creation speed.
  • Fixed bug where duplicate form schema fields were not shown.

  • Fixed problem where mysterious text box was showing on the patient registration xform.


  • Added support for downloading dynamic cohorts by mobile devices. XFRM-49
  • Added jQuery concept search widget facilities for openmrs versions that do not have the dojo concept search widget - XFRM-51
  • Fixed problem where form schema duplicate fields were not displayed in the form designer - XFRM-52
  • Fixed NPE for encounters without locations
  • Fixed NPE when a form has duplicate concept sets
  • Fixed bug where date widgets could not lose focus on Chrome and Safari, even on tabbing away.
  • Fixed bug where calculation property did not support undo redo functionality
  • Fixed bug where re-enabling a widget did not automatically recompute its calculation expression
  • Fixed bug where calculation expressions for copying one field's non numeric value into another did not work


  • Fixed bug where, in form list, the form names were not xml escaped.
  • Fixed bug where patient registration xform was downloaded with unnecessary layout and locale xml.
  • Fixed bug where one got a class cast exception while setting focus to a repeat text box widget that has the external source property set.
  • Fixed errors which did not allow you to design or submit an encounter form in OpenMRS 1.9 (XFRM-44 & XFRM-45)
  • Added patientEncounters and relationships to the form velocity context.
  • Added uuid field to the xforms table in order to work well with the sync module.
  • Added ability to optionally hide the form designer's design surface and preview tabs.


  • Removed unnecessary indenting of xforms to reduce the form size especially for mobile devices.
  • Added a warning message before closing windows to prevent accidental data loss.
  • Added backwards tabbing using SHIFT + ENTER
  • Added length validation on multiple select question types.
  • Added JR compliant skip logic for multiple select question types.
  • Fixed bug where single select dynamic options at times got lost.
  • Fixed bug where length validation for repeat questions was not working.
  • Fixed contains operator bug for multiple select question types.


  • Added ability to add more than one identifier when using the patient registration xform.
  • Fixed Null Pointer Exception when refreshing some complicated xforms.


  • Fixed bug where urls in form list had a hard coded context name.
  • Fixed bug where clicking cancel on the patient registration xform resulted into errors.
  • Added degree, family_name2, family_name_prefix, family_name_suffix, and prefix fields to the patient registration xform.


  • Fixing bug where some validation logic was messed up on refresh.
  • Fixed bug where reserved xml characters were not escaped in form names.
  • Added ability to turn on rebuilding of validation rules from concept dictionary numeric ranges.


  • Added ability to add logo on forms.
  • Added automatic refreshing of providers/locations and coded concept answers when deleted or new ones added.
  • Added support for concept mappings to enable smooth sharing of forms.
  • Added automatic deleting of xforms when their corresponding openmrs forms are deleted.
  • Added support for "Ends With" and "Does Not End With" validation and skip logic operators to the form designer.


  • Fixed problem where undoing moving of radio buttons or check boxes resulted into widget changing from right to bottom alignment.
  • Fixed NPE when adding new rows for repeat widgets.
  • Fixed problem where multiple widget drag was not working well with repeat and group box widgets.


  • Fixed problem where patient registration xform did now allow saving of problem lists.
  • Fixed NPE when undoing widget insert and grouping.


  • Added undo/redo functionality for all actions of the Form Designer.
  • Added ability to use check box widgets for Boolean concepts.


  • Added automatic creation of the default form schema when there is no basic form to duplicate. e.g. when one does not install demo data.
  • Fixed bug with concept names that have xml escaped characters like &.


  • Fixed problem caused by referencing dojo widgets which were removed from the latest versions of OpenMRS.
  • Added support for the remote form entry module.
  • Added Spanish translations.
  • Fixed date formatting problems on data entry forms.
  • Added ability to display read only observation history on encounter forms.
  • Added person attributes and addresses for a patients created during submission of an encounter form.


  • Added OpenRosa / JavaRosa xforms extensions.
  • Added some caching capabilities to improve performance when loading forms.
  • Fixed bug where encounter provider was referencing user_id instead of person_id for OpenMRS versions from 1.6 and above.


  • Added support for sync module.
  • Removed xforms tab from the patient dashboard.


  • Fixed bug where skip logic was allowing questions of only the same type.
  • Removed Page tabs from forms that have only the default Page1, when running a form for data entry.


  • Fixed bug where some set fields were duplicated as problem lists in the form designer.


  • Fixed index out of bounds exception when getting a concept id from a string during form data edit submission.
  • Fixed bug where set values were not loaded correctly on editing form data.
  • Fixed problem where refreshing a form resulted into loss of question options that were added from the designer instead of form schema.
  • Improved problem lists implementation.
  • Added proper display of answers for concept search fields instead of displaying the ugly HL7 string during form data edit.
  • Added ability to turn on and off editing of field bindings in the form designer using a global property.
  • 3.8.9
  • Fixed errors when saving form in Safari and Chrome.
  • Fixed null pointer exception when trying to create new patient without a saved new patient xform.
  • Added default time for DateTime widget such that one does not need to enter both date and time.


  • Added ability to capture time for encounter date time.
  • Added bar code question type.
  • Fixed bug where retired providers were being shown.
  • Fixed bug during xsl transformation of xforms that are requested with a content type parameter.
  • Fixed bug where datetime widget was not shown during data entry.


  • Added support for starts with, does not start with, contains and does not contain operators in the form designer validations.
  • Added support for doing custom xslt transformations when downloading xforms.
  • Added ability to fetch filtered single select dynamic values from the database instead of hard coding them in the xforms.
  • Fixed null pointer exception when downloading patients for a cohort which does not exist.
  • Fixed null pointer exception when saving some single select dynamic question types in the form designer.
  • Fixed bug in the today() function created in the xpath expression for encounter date time in xforms.


  • Added support for filtering concept searches based on concept classes.
  • Fixed tab navigation problems for repeat widgets.


  • Added user account validation servlet for external clients.
  • Fixed Same Origin Policy violation error caused by improper handling of urls with no port numbers.


  • Fixed the java.lang.NoClassDefFoundError exception for org.openmrs.hl7.HL7Receiver in openmrs versions from 1.6 and above.
  • Fixed the java.lang.NoSuchMethodError exception for org.openmrs.Encounter.getProvider()Lorg/openmrs/User
  • Fixed problem where question ordering was not preserved after refresh.
  • Added taking one to the patient dashboard after creating a new patient using the patient xform.


  • Added immediate notification of the user when form submission processing fails.
  • Fixed form submission bug caused by invalid submission xml generated by the form viewer.


  • Added title to xforms documents embedded in xhtml.
  • Added support for specifying a custom serializer when downloading patient cohorts.
  • Added saving of birth date estimated value for patients.
  • Fixed bug where refreshing a form leads to loss of calculations attached to questions.
  • Removed "Xforms Properties" link, which is buggy, from the admin screen.


  • Fixed problem of messing up form JavaScript when doing File Save As.
  • Fixed problem of showing retired forms under the xforms tab.
  • Fixed problem of clicking the add new and remove repeating row widget which at times moves some widgets which are not to be moved.
  • Added support for using patient_identifier_type_id in addition to the existing patient_identifier_type as the node name of patient identifier types used when creating new patients for an encounter form.
  • Added ability to specify a url parameter to transform an xform to xhtml.


  • Fixed null pointer exception when deleting form fields.
  • Fixed xml parsing error when displaying a form which has non ascii characters.
  • Added support for using the default encounter editor whenever there is not xforms widget layout attached to a form.
  • 3.7.9
  • Added automatic filling of encounter provider to the currently logged on user, if they have the provider role.
  • Added automatic filling of encounter location to that of the currently logged on user, as set in the user profile.


  • Added support for provider and location search.
  • Added ability to select and unselect radio buttons using the keyboard SPACE BAR.
  • Added ability to tab through widgets including radio buttons and check boxes using the keyboard ENTER key.
  • Fixed issue where values from external database tables were not loaded in widgets in both preview and runtime modes.
  • Fixed issue where the JavaScript tab was not preserving the formatting of JavaScript on being loaded again after saving the form.


  • Added support for attaching custom JavaScript to forms.
  • Fixed problem of rubber band widget selection happening together with browser selection of text.
  • Fixed issue of radio button and check box in line editing of label text which does dot allow you click anywhere in the text to change the cursor position during the course of editing


  • Added ability to create forms in different languages.
  • Fixed skip logic problem with multiple questions sharing the same skip logic and having no way of removing one from this group, and also in some cases where the xform did not have the relevancy attribute removed after removing conditions and saving.


  • Added support for concept search when in preview mode of the form designer.
  • Fixed problem of concept search widget not displaying properly when in a group box or at the edges of the browser.
  • Fixed problem of conditionally required questions still displaying error messages even after being answered.
  • Added support for automatic loading of widgets when one selects the preview tab before the design surface tab.
  • Fixed null pointer exception when one clicks the browse button for multimedia (picture,audio and video) widgets.
  • Added support for immediate automatic filling of bindings for Single Select Dynamic question types.
  • Changed widget resize keyboard shortcut from Shift and Arrow keys to Ctrl and Arrow keys.


  • Added ability to resize widgets using keyboard Shift and Arrow keys.
  • Fixed forms panel scrollbar problem with long question text.
  • Fixed problem of boolean, some single and multiple select values not displaying properly when defining skip and validation logic.