The Forms API
The Files That Make Up Your Form
In order to implement a form, you provide a series of files. These files are placed into a subdirectory of the interface/forms/ directory of your OpenEMR install.
Required Files
Forms written to use the Forms API MUST provide the following files:
Name | Function | Called by |
---|---|---|
new.php | Draw a form for users to input data into. | dropdown box on right hand of encounters page |
view.php | Draw a form with data in it, allowing users to edit. | selecting a form in an encounter, (optionally) show.php |
report.php | Draw part of a form displaying a simple 'report' of the form data. | encounters.php and the medical records report function |
table.sql | Perform all of the SQL setup of the form (table creation, list insertion, etc) | Executed by library/registry.inc's installSQL function, called when you hit the 'register' link for a form on the 'forms admin' page. |
Optional Files
Other files can exist in your form's directory to provide additional funcionality, EG, a printing function, or a non-encounter form, or just to contain common code used by multiple files in your forms. the following is a list of common file names, and their functions (by convention).
Forms written to use the encounters form API MAY provide the following files:
Name | Function | Called by |
---|---|---|
info.txt | A more user friendly name for your form. if present, displayed in forms admin page, and used as the name when referring to the form. | library/registry.inc and interface/forms_admin/forms_admin.php |
save.php | Save the submitted form data to the database. | new.php and view.php |
print.php | Print the current form, with the contents pulled from the database. | view.php |
show.php | Show a the most recent (and optionally signed) form of this type(if applicable). | left_nav.php(with modifications) |
PHP Files to Include
Core APIs
For information about including the core APIs and using their functionality, please see The OpenEMR API.
interface/globals.php
Including globals.php (which is required) brings in many variables which are useful for finding components of openemr, or for inheriting the look and feel of other openemr code.
library/api.inc
This is the file defining the OpenEMR core APIs, including access controls, and the third party forms API.
The preferred method of including api.inc from your form is to use require_once. for instance: require_once($GLOBALS['srcdir'].'/api.inc');.
Form Functions
Function | Use | Returns |
---|---|---|
formFetch | retrieve encounter based form contents from the sql engine | results of mysql_fetch_array |
formSubmit | save encounter based form contents to the sql engine | |
formJump | redirect the browser to either the top of the current encounter, or an optional URL. |
library/options.inc.php
This file contains functions for rendering form objects.
Functions
- generate_form_field()
library/patient.inc
library/forms.inc
forms.inc contains the 'addForm' function, for linking a form into an encounter.
library/sql.inc
Function | Use | Returns |
---|---|---|
sqlInsert | perform insert query | the id of the newly inserted row. |
sqlStatement | perform query | result of mysql_query |
sqlQuery | perform query | result of mysql_fetch_array |
Files commonly referenced in HTML output
Referenced | Used For |
---|---|
library/dialog.js | |
library/js/jquery.js | jquery |
library/textformat.js | |
$css_header | the css theme of the site |
../../forms/$form_folder/style.css | the css theme of this form |
library/dynarch_calendar.css | the css theme of calendar objects |
library/dynarch_calendar.js | calendar base code |
library/dynarch_calendar_en.js | english calendar code |
library/dynarch_calendar_setup.js |
Depreciated:
Function | From | Reason | Returns |
---|---|---|---|
formHeader | display a header for the form. | ||
html_header_show | library/translation.inc.php | NO-OP; depreciated | |
formFooter | display a form footer |