Data Entry

RequirementData Entry
Section3.2.2.1
JIRA Task
EIR-45 - Getting issue details... STATUS
Reviewed ForDate
Monospace use for key seqs, math, parameters2016-08-17
Conventional spacing between sections2016-08-31

Introduction

The Data Entry component of Enter fulfills the module's primary function: the collection of data entered into the fields of a questionnaire and the storing of that information in the project's database.  The data collected depend on the fields placed on the questionnaire during Form Layout.  The process of collection is administered by Check Code.  As data are entered, the cursor moves between fields according to the Tab Order and any (potentially data-dependent) deviations ordered by the underlying Check Code commands.  Data are automatically saved when moving to a new page and when navigating to a new record or another existing record.  If the user attempts to exit before the data are saved, the user is stopped and prompted with an opportunity to do so.


Open Enter

Objective

Given a form populated with fields and supporting check code (and an initialized database, see Section 3.2.1.1.4), open the form in Enter to enter data.

Preconditions

The user shall have a .prj file containing a project with a form with information about its variables and layout.

Postconditions

The completed form is open in Enter, ready to accept the addition of a new database record. 

Stimulus/Response Sequence

Open an Existing Project for Data Entry
1

Stimulus:

Response:

From the Epi Info™ 7 main menu, user clicks the "Enter Data" button.

Enter program is executed and the Enter window opens.

2

Stimulus: .

Response:

From the Enter window, user clicks "Open Form" from button bar or selects File→Open Form from menu bar or types Ctrl-O or selects File→Recent Forms and selects a project and form from the list.

A dialog box labeled "Open Form" opens with a blank field labeled "Current Project," followed by a button labeled "Browse" and an empty multi-line field labeled "Forms."

3

Stimulus:

Response:

User clicks the "Browse" button.

A file browser opens on the <InstallationDirectory>\Projects\ directory, showing folders for existing projects.

4

Stimulus:

Response:

From the file browser, the user opens a project folder, then opens the file: <ProjectName>.prj.

The File browser closes. In the "Open Form" dialog, the "Current Project" field now contains the fully-qualified name of the selected .prj file, and the "Forms" field contains the name of every form in the project.

5

Stimulus:

Response:

From the "Open Forms" dialog, the user selects a form from the list of names in the "Forms" field and clicks the "OK" button.

The Data Table Properties dialog opens with pre-populated fields for Data Table Name and Starting ID. 

6

Stimulus:

Response:

From the Data Table Properties dialog, user may specify a custom table name and/or new starting ID. User clicks the "OK" button.

The Enter window opens. The window consists of a menu bar and button bar along the top, with the remainder of the window divided into a large frame on the right and two smaller frames stacked on the left.  The large frame contains a form page with a tab indicating page name. The remainder of the Enter window consists of the "Pages" frame that contains a tree browser with <ProjectName> attached to the root and a leaf containing the name of each page of the form. The lower-left frame is labeled "Linked Records". It contains a stack of two mini-forms, labeled "Exposed From" and "Exposed To", each containing a multi-line display field and two buttons.  The left button is labeled "Unlink" and is grayed-out when no data is present.  The right button is labeled "Add Exposure".  Below the stack of mini-forms is a button labeled "View SNA Graph".



Functional Requirements

  1. The system shall enable the user to:
    1. open Enter from the main menu,
    2. use Enter either a standard or full screen mode, and
    3. browse the file system from Enter in order to locate and open a project and form for data entry.
  2. The system shall enable the user to switch: 
    1. from Enter to Form Designer, keeping the same project, form, and page open,
    2. from Enter to Visual Dashboard, keeping the same project and form data open for analysis, and
    3. from Enter to Map, keeping the same project and form data open for analysis.
  3. The system shall provide a shortcut that allows the user to open one of the last four forms opened previously.
  4. The system shall prompt the user to: 
    1. create the data table(s) in the database when opening a form that has been created but not yet initialized,
    2. close a form while Enter continues to run,
    3. exit the Enter module,
    4. preview and print a form with data,
    5. preview and print one or more forms populated with data records,
    6. compact the database.


Create Records and Enter Data

Objective

Using the Enter component of Epi Info™ 7, the system shall enable the user to add a new record to a form and enter data into that record.

Preconditions

Enter is running.  A project containing a form is loaded. The cursor is positioned at the first field, according to the form's Tab Order.

Postconditions

The fields of the form have been populated, creating a new record for that form in the project database. The record can be visualized in tabular format using any of the options available in the Line Listing menu.  The record will be given a serial "line" number for reference, visible on the button bar when the record is in focus and in the first column of a Line List table.  The record can be identified using Find and query on a specific field using the corresponding value from that Record.  If the user navigates away from the new record using the "|◄", "◄", "►", or "►|" buttons on the button bar, the record is automatically saved.

Stimulus/Response Sequence

Enter Data and Create New Record
1

Stimulus:

Response:

Cursor is positioned on the first field in the form's Tab Order. User enters data into field. User presses the Tab key.

Check Code (if any[1]) in the After block of the first field executes.  Cursor moves to the next field in the Tab Order. Check Code in the Before block of the next field executes.  

2

Stimulus:

Response:

Cursor is positioned on the last field of page 1 of a two-page form. User enters data into field, if needed. User presses Tab key.

Check Code for page 1 After block executes. Page 1 of form closes.  Check Code page 2 Before block executes.  Page 2 opens. The cursor is positioned at the first field in the Tab Order for page 2. Check Code in the field Before block executes. The name of page 2 is highlighted in the form tree in the "Pages" frame.

3

Stimulus:

Response:

Cursor is positioned on the last field of page 2 of a two-page form. User enters data into field. User presses the Tab key.

Check Code for page 2 After block executes. Check Code for record After executes. Page 2 of the form is closed. Check Code for page 1 Before block executes. Page 1 is opened. The cursor is positioned at the first field in the Tab Order for the first page. Check Code in the field Before block executes. The name of page 1 is highlighted in the form tree in the "Pages" frame.

4

Stimulus:

Response:

User clicks New Record on the button bar.

The character in the current record indicator changes to " * " (asterisk) to indicate a new and unsaved record has been created. The previous record is saved unless there is a required field that is not satisfied (in which case, a warning dialog appears with the message, "<FieldName> is a required field (page <PageName>). Please fill in this field before attempting to leave the record, save data, or close the form." Page 1 of the form is redrawn, clearing all user-writable fields. When successfully saved, the record will be assigned the number of the next available increment in the record count; the value is stored in the UniqueKey variable.

5

Stimulus:

Response:

User clicks the go-to-first-record button ( "|◄") to the immediate right of New Record.

The value in the current record indicator changes to 1. The fields on page 1 are reset to the values entered for the first record in the project for the open form. The go-to-first-record ( "|◄") and go-to-previous-record ("") buttons are grayed out.

6

Stimulus:

Response:

User clicks the go-to-last-record button ( "€►|") to the immediate left of .

The value in the current record indicator changes to n, where n is the total number of records (including deleted records) for the current form. The fields on page 1 are set to the values entered for the last record in the project for the open form. The go-to-last-record ( "€►|") and go-to-next-record ("€►") buttons are grayed out.

7

Stimulus:

Response:

User clicks the go-to-previous-record button ( "◄") to the immediate right of the go-to-first-record button.

The value in the current record indicator changes from n to n-1. The fields on page 1 are set to the values entered for that record. Only if the current record indicator reads "1" (i.e., the first record is displayed) are the go-to-first-record ( "|◄") and go-to-previous-record ("◄") buttons grayed out.

8

Stimulus:

Response:

User clicks the go-to-next-record button ( "") to the immediate left of the go-to-last-record button.

The value in the current record indicator changes from n to n+1. The fields on page 1 are set to the values entered for that record. Only if the value of the current record indicator equals the total number of records (i.e., the current record indicator and total record count, together, read "n of n") are the go-to-last-record and go-to-next-record buttons grayed out.

9

Stimulus:

Response:

User clicks button on button bar.

All fields for the selected record are grayed out. The button is grayed out. The previously-grayed outbutton is rendered green.

Notes:

  1. This table indicates when the commands in specific Check Code blocks would execute relative to other data entry events, assuming those blocks exist.  The code blocks themselves are optional.


Functional Requirements

  1. The system shall enable the user to add data to the current record of the current form in the current project by:
    1. typing text or pasting it using Ctrl-V into Text, Text (Uppercase), and Multiline fields,
    2. typing numbers or pasting them using Ctrl-V into Number, Phone Number, Date, Time, and Date/Time fields,
    3. using a left-mouse-button click or spacebar on Checkbox and Option fields, and
    4. selecting an item from a pull-down menu in Yes/No, Grid, Legal Values, Comment Legal, and Codes fields.
  2. The system shall enable the user to select an item from a pull-down menu by using one or more of the following methods:
    1. typing the initial letters of the item, 
    2. moving up or down the list using the arrow keys, 
    3. using the Enter key, and
    4. clicking with the left-mouse-button.
  3. The system shall enable the user to navigate between fields by:
    1. using Tab to move to the next field in the Tab Order,
    2. using Ctrl-Tab to move to the previous field in the Tab Order, and
    3. using the mouse to select an arbitrary field with a left-mouse-button click.
  4. The system shall enable the user to switch between form pages in the current record by:
    1. using Tab on the last field in the Tab Order on the page, and

    2. selecting the appropriate branch of the form tree in the pages frame.

  5. The system shall save data automatically (provided that all required fields are satisfied) when:
    1. the user clicks on the New Record button,

    2. the user moves to another record by clicking the record navigation buttons,

    3. using Tab on the last field of a form, and

    4. the Check Code engine executes a NewRecord command.
  6. The system shall enable the user to navigate to an arbitrary record by typing its number into the Current Record Number field, located on the button bar between "New Record |◄  ◄" and "of n €► €►|", and pressing the Enter key.
  7. The system shall automatically populate the values for fields with the "repeat last" option set with the values from the last record viewed.
  8. The system shall enable the user to populate an image field by clicking on the field and using the file browser, which opens automatically, to select an image to be save with the record.  
  9. The system shall enable the user to mark records for deletion
    1. and "undelete" the marked records for the life of the project.
  10. The system shall enable the user to modify data from previously entered records in fields on the open form.
  11. The system shall enable the user to save modified data records.
  12. The system shall enable the user to view and print a Data Dictionary consisting of a list of all variables in a form, including:
    1. variables associated with fields, and
    2. Permanent, Standard, and Global variables created by Check Code,
  13. along with the following information about those variables:
    1. Page Position (page number), Page Name, Tab Index (indicating Tab Order), and Prompt (the previous information types not applicable for Permanent, Standard and Global variables),
    2. Field Type (Permanent, Standard, Global or one of the field variable types listed in Description of Form Elements),
    3. (Variable) Name,
    4. Variable Type (Boolean, Date, DateTime, Grid, Image, Number, Text),
    5. Format (e.g., ##.## for Number, ###-###-#### for PhoneNumber, YYYY-MM-DD for Date, optional in most cases) (not applicable for Permanent, Standard, and Global variables),
    6. Special Info (not applicable for Permanent, Standard, and Global variables) such as:
      1. "Read Only" or "Required",
      2. allowed value ranges for numerical variable, or
      3. name(s) of variables from fields aggregated into Groups.
  14. The system shall enable the user to create a "package for data transport" that:
    1. prompts for a package name and path to store the package using Windows Explorer or 
    2. provides a field into which the path can be entered manually with an optional timestamp at the end of the package name,
    3. is optionally password protected,
    4. allows data to be removed from form fields,
    5. allows data to be removed from form grids,
    6. allows records to be selected for inclusion
      1. based on the evaluation of one or more expressions composed of <field_variable> <relational_operator> <value> joined by the logical operator AND;
      2. using one or more fields as "match keys",
    7. allows the data from one or more fields to be removed from all records, and
    8. allows specific columns to be removed from data grids.
  15. The system shall enable the user to copy a shortcut to the clipboard for use in an icon on the desktop to quickly open the form in Enter.
  16. The system shall enable the user to import data from:
    1. a mobile device,
    2. a Web survey,
    3. cloud data capture,
    4. an Epi Info™ 7 project, and
    5. a data package.