LBV Forms

From OpenEMR Project Wiki

Layout Based Visit Forms

LBV-Forms are not like usual type of forms, these LBV's are stored in, and created by the use of these tables (list_options and layout_options tables).

Step by step creation

This page will go through the process of creating a Layout Based Form for an epileptic attack encounter.

Go to: Administration => Forms => Layouts and click the "New Layout" button.

Create a Layout ID. It does not accept special characters or spaces. A visit type of Layout Form must start with LBF. A transaction type of layout form must start with LBT. Give it the title: "Epileptic Attack" and click the "Submit" button.

Once finished and back in your daily workflow, your created form will be accessed via the "Clinical" drop down element in the Encounter view.

Quick Guide to making use of these Forms

You want to include for example: How often, How severe, Any bodily harm encountered, Please give short description, What medication used, When is next visit planned, What provider has your preference, What Pharmacy did provide medication, Skipped some daily advised medications, Reason for skipping the necessary dose, What did observers tell you happened

Put Fields in correct order or leave this for later, you can always change the sort order through Administration => Forms => Layouts "put them in right order" => SAVE

Create an Epileptic Form example

You see the Form was saved as LBFEpileptic_Att in left column and Epileptic Attacks in Layout-Based Visit Forms, via Layouts you find the form back under Epileptic Attacks.

Next goto: Administration => Layouts => Edit Layout: Epileptic Attacks and create a group “Epilesia Intake” and start filling the new Field names with their respective input fields. Give the Label(?) a descriptive name. Let's use “How many attacks”. Add the right options for Label Cols and Data Cols.

Save the GROUP NAME and FIRST FIELD by Save Changes just below the GROUP input line. NOT the one below add extra fields!

Hints for different fields

Hints for help on laying out fields:

1. Keep first object as Label Col 1 and Data Col 6
Keep the rest all in the same row as 0 and 0
This will start the new line.
2. Keep last object on the row as Label Col 0 and Data Col 6
Add a new field with Label as any text or even a period, Data Type as Static Text, Label Col as 1, and Data Col as 6 leaving comment blank.
Save new field. Then delete the Label and save the changes.
This will insert a blank line.

What to use and where for different Rows

The different options in the rows might be a bit confusing, but with the next information you can make a choice of what to use and where:

(For examples of use, go to Demographics page and see how most of the Labels- and Fields- options are used)

Order: The sort order in which the field appears within its group.
ID: The field's internal identifier, used both in the database and in the form.
Label: The label of the field in the form.
UOR: Indicates if the field is Unused, Optional or Required.

Data Types

Data Type: The type of field.
  • List box
  • Textbox
  • Textarea
  • Text-date
  • Providers
  • Providers NPI
  • Pharmacies
  • Squads
  • Organizations
  • Billing codes
  • Checkbox list
  • Textbox list
  • Exam results
  • Patient allergies
  • Checkbox w/text
  • List box w/add
  • Radio buttons
  • Lifestyle status
  • Static Text
  • Smoking Status
  • Race and Ethnicity
  • NationNotes
Size: The meaning of this depends on the field type. For data type Textbox, Textbox list, Exam results and Checkbox w/text it is the field's width ("size") in the form. Similarly for type Textarea it is the "cols" value. For Checkbox list and Radio buttons it is the number of sub-columns that they are arranged into. For other field types, size is unused.
  • Remove the maxlength attribute itself from the line and you can add as much characters you want to a field (set maxlenght attribute = 0 to add as many characters as needed)
List: The ID of the associated list, if applicable.
Backup List: The ID of the associated user-created list, if applicable, for certain field types: listbox, listbox with ..., and multi select data types.
Label Cols: The number of label columns in the form dedicated to the field's label. Usually this is 1, but might be 0 to indicate that the label (if any) is to appear in the previous column. Note the labels and data are currently arranged into a total of 4 columns.
Data Cols: Similar to Label Cols, but for the field's input area. Usually 1, 2 or 3, sometimes 0 (if you want the next data type to be placed in the forms previous line).


Enter any number of letters below for column Options.
  • A = Age
  • B = Gestational Age
  • C = Capitalize first letter of each word (text fields)
  • D = Check for duplicates in New Patient form
  • G = Graph-able (for numeric fields in forms supporting historical data)
  • H = Read-only field copied from static history
  • L = Lab Order ("ord_lab") types only (address book)
  • N = Show in New Patient form
  • O = Procedure Order ("ord_*") types only (address book)
  • P = Paste (copies data from previous encounter)
  • R = Distributor types only (address book)
  • T = Makes the "Description field" a default value for the data (enables static text)
  • U = Capitalize all letters (text fields)
  • V = Vendor types only (address book)
  • X = (NOT DOCUMENTED YET, Unknown can be found in Referral Referrals for referrer_diagnosis fields)
  • 0 = Read only (uneditable)
  • 1 = Write Once (not editable when not empty) (text fields)
  • 2 = Billing codes description
Description: This is assigned to the field's "title" attribute (ie. Tooltip) in the form.

Add more fields

Continue to ADD relevant Fields. Every ID(?) should be unique for this FORM. Make the Fields appear in order of your choice with the field ORDER.

Save every field just below the row of field particulars.

After you made all fields SAVE the Changes below all Fields once more with the button SAVE CHANGES.

Go to your Client and during an encounter, new or old one, choose the "Layout based Form and pick you LBV-form of choice" and start filling particulars as stipulated in your New created Layout-Based Visit Form.

Or you can add another or second GROUP, so in case the patient comes back from a referred situation or you just want to add other particulars not needed in first encounter, this new group should have some extra information input that is only needed when the first part of the form gives rise to extra information input. Remember to give every field in the same FORM a different ID(?) any New Group in the same FORM must also have different ID(?) for every row of information.

The Third group should be created if the first group and Second group give rise to even more information specifics for this kind of client.

Make the necessary fields with the input options and save every field after creation. Just on the line under added field. Than save the form at the end of the made form and next time you open your LBV-Form you have the option to click and add additional info for your patients.

This information helps to get started with your "Layout-Based-Visit Forms" and get your information arranged in a way you always wanted to gather your information. It's not fool proof, but with trial and error you can make use of your own forms.

The results of your input in these Forms can be found back in patient/client => Visits => List.

Graph Feature in LBV Forms

To use the graph feature available in LBV forms, follow the below steps:

1. Create a new LBV form from Administration->Lists->Layout-Based Visit Forms section
2. Select the LBV form from Administration->Layouts section
3. Add a new group if no group is already created
4. Use the Add Field button to create a new input field
5. Specify all the relevant information for the new field with datatype option as Textbox and Options field as 'G'. Also for properly displaying the graph, make sure that the value entered for ID is not a numeric value and is a text value. Then save the field using, Save New Field button
6. Then select the newly created LBV form from Patient/Client->Visit Forms and enter the value for the form fields and save it
7. On selecting any LBV form that contains a field created with 'G' option, Show Graph button will be visible in the LBV form
8. Click on the Show Graph button from the LBV form and then a list of all the available fields of the LBV form will be displayed
9. If the user knows which form field is configured with graph (i.e. with option 'G'), then the user can simply click on the specific field from the displayed list of form fields. Also if the user hovers over the available list of fields, the fields that are configured with the graph option will be highlighted with 'Red' text color
10. On clicking the form field with graph option, the user can view the graph with the date values on the Y-axis and X-axis with numbers based on the values saved in the graph based input field

Note: The graph will be visible only if the LBV form is saved at least twice with values provided for the graph based input field, i.e. there should be a minimum of 2 entries of the LBV form for a patient with values available for the graph based input field. Only then the graph can be generated by comparing the two values.

Make copies of LBV-Forms

If you want to make copies of a LBV-Form try to follow these instructions:

  • There are just the layout_options and layout_group_properties tables to contend with, if you are not building NationNotes.
  1. Take a look at the layout_options table, on page 5 (of the dropdown list in the database) beginning page-dropdown list of pages around number 30 and note the last field.
  2. Do the same for the layout_group_properties table, page 5 (of the dropdown list in the Database) beginning page-dropdown list around of pages around page 5 and note the last field.
  3. You want to know where the existing LBV forms end and your new form begins.
  4. Create the first form in 4.1.1. Exclude the fields from the old forms in the new .sql files and export them from phpMyAdmin.
  5. Import .sql file into a test copy of OpenEMR.
  6. Be certain that the .sql files don't contain information from the other forms; if not, they won't import properly. If you are going to use a production copy, backup first.
  7. Change the name of the new form in Administration/Lists/Layout Based Forms, modify the form and create .sql files for the new form.
  • And another advice:
  1. Find the rows of form 1 that you want to copy in the table Layout_options.
  2. Export those selected rows to csv.
  3. Modify the csv file to make it as form 2.
  4. Import the csv file to table layout_options.
  5. Make any further change necessary to the groups/fields of form 2.

  • Third method

Additional advice

Make backups of your LBV Form tables! If the OpenEMR database is wiped, such as to install OpenEMR from scratch, then self-made LBV Forms will not be carried over and will need to be imported from backup. OpenEMR offers backup of LBV Forms using Administration => System => Backup => Export Configuration => Layouts, and restore of LBV Forms using Administration => System => Backup => Import Configuration => Browse...