Draft Forms Project Progress, To-Do List, Known Bugs
Progress
draftFormsForm.jsp (starting screen, labeled Drafts Overview)
Displays summaries of all forms in the database.
Add new draft can be used to add a new draft to the database, goes to Edit Form Details page
Edit can be used to edit an existing draft, goes to Edit Form Details page
Delete can be used to delete a draft from the database, requires confirmation
*To Do: New version does nothing. It should recursively make a deep copy of the entire form. It should also update the version id #, perhaps just add _V2 to the end and expect the user to edit it.
addDraftFormsForm.jsp (labeled Edit Form Details)
If called when adding a new form, it comes up blank
If called when editing a form, it comes up with current values filled in
Generate version id button works
Save button saves the user's edits in the database and goes to the edit form page
Cancel discards user's edits and goes to the edit form page
editDraftFormForm.jsp (labeled Edit Draft Form)
If called when creating a new form, displays title, description and version id. All other fields blank
If called when editing a form, shows title, description, version id and list of pages
Edit details button goes to the Edit Form Details page
Exit form button goes to the Drafts Overview page
Clicking on Add Page adds a new page
Clicking on "Page #" displays the contents of the page
Add Section button goes to the Edit Section page
Delete Page deletes the currently-displayed page, requires confirmation
If a page contains sections, a +/- button can be used to expand and hide their contents
When expanded, the Add menu pulls up the appropriate Web page to add an item of each type
The Edit button for a section goes to the Edit Section page, filling in the current values
The details of a form, as well as the instructions for the page, can be hidden/shown by the user to save space and scrolling
The section remains open after editing or adding an item.
Items can be reordered with up & down arrows
Text repsonses preview with their name and a text field
Clicking the Preview button generates html that is understandable by the html form entry module that includes section and obs tags. Also, each form has the encounter fields included in the html. The generated html is displayed on the screen. You can copy and paste it into a form in the html form entry to do the preview.
*To Do: Finish button does nothing. It is supposed to generate a basic html version of the form, set finished on the summary to true, and record the location of the html file.
*To Do: It would be good to highlight pages / sections / items that have unidentified concepts by using a different color.
*To Do: There should be a button or list that would allow the user to go directly to the unidentified concepts instead of needing to search for them.
*To Do: On the Edit Form page when displaying an item, it would be better to show the concept name and, in parentheses, the concept id, associated with an item rather than just saying "Identified".
editSectionForm.jsp (labeled Edit Section)
If called when adding a section, it comes up blank
If called with an existing section, the form is initialized
Ok button saves changes and returns to Edit Draft Form page
Cancel button discards changes and returns to Edit Draft Form page
Delete button deletes the section and returns to Edit Draft Form page
Delete button brings up a confirmation dialog
A checkbox is used to determine if a section name should appear on the form or only in the GUI
Sections are validated to be sure they all have unique names
editDropRadioCheckForm.jsp (labeled Edit Radio Button, Drop Down Menu, Check Box)
Page displays
Response type can be selected
Add answer button works
Answers can be reordered with arrow buttons
Answers can be deleted with the x button
*To Do: Concept identification widget needs to be integrated.
*To Do: If the user clicks an "other" checkbox, there should be a label field that they can give a value to.
editTextResponseForm.jsp
The concept id widget is now into the page where you enter information about text responses (called obs in html form entry).
Database tables exist for:
DraftSummary
Page
Section
Item
Reference text
Image
Obsgroup
Reference table
Repeat
Placeholder
To Do
Some of the Items may need Concepts that do not currently have one: TextResponse, Image?, others??
The controllers for adding items to a section only allow displaying a blank form and clicking their cancel button.
Neither Java types nor database tables have been designed for the following. There are entries for all of these in the Add menu.
Date
Provider
Location
Display items
Provide a JSP page for Date, Provider and Location to allow the user to specify a label to go with these fields.
The user might want to create internationalized forms. This would be a big change so something to think about for version 2.
The user would indicate which languages the form should be for as part of the form's details
The screens where the user enters text that would appear in the form should be prompted to provide translations for all the languages that specified in the details.
These would appear in translation tags used by html form entry.
Integrate html preview with the HTML form entry module.
Known bugs
Create section, immediately delete. Should be no confirmation dialog. Should just do it. We worked on this a long time and gave up. The problem was that we wanted an if-statement in the JSP to decide whether to show the confirmation dialog or not. We wanted the condition to call a Java function that returned a boolean, but Spring does not support boolean as a return type.
An unknown javascript bug came up during the demo. On the checkbox / radio button add screen, an answer that was not the last was deleted and all answers that followed it were also deleted. ( Haven't been able to duplicate. )
User Interface Issues to Evaluate
A suggestion was to look at how Survey Monkey works to allow a user to create surveys. It may be reasonable to steal user interface ideas from them, for example, how to distinguish radio buttons and check boxes.