FreeMED Module API Programming

Jeffrey M. Buchbinder

FreeMED programming for modules; expanding FreeMED functionality.


Table of Contents
1. Introduction to programming with FreeMED
What is this manual?
What are FreeMED modules, and why should I be programming them?
What modules do I need to program?
2. FreeMED API and Object Model
Basic API and Namespace
Access Control
Module-related functions
module_function
freemed::module_check
freemed::module_get_value
freemed::module_get_meta
freemed::module_handler
freemed::module_lookup
freemed::module_register
freemed::module_version
sql Object and Database Interaction
User Object
Patient Object
Physician Object
Miscellaneous functions
freemed::config_value
freemed::connect
freemed::get_link_rec
freemed::get_link_field
freemed::itemlist_conditions
freemed::image_filename
freemed::multiple_choice
freemed::patient_box
freemed::patient_widget
freemed::query_to_array
freemed::race_widget
freemed::religion_widget
freemed::secure_filename
freemed::store_image
freemed::support_djvu
freemed::module_check
freemed::config_value
3. phpwebtools
What is phpwebtools?
Functions
Classes
FileSerialize Class
module Class
module_list Class
notebook Class
sql Class
wizard Class
4. Module Programming
Module Concepts
Meta-Information
Associations and Handlers
Hidden Modules
Common Variables
5. EMR Modules
What is an EMR Module?
Reserved Variables
$this->disable_patient_box
$this->display_format
$this->order_fields
$this->patient_field
$this->summary_options
$this->summary_query
$this->summary_vars
$this->table_name
$this->this_patient
$this->this_user
$this->variables
Reserved Methods
$this->add
$this->addform
$this->check_vars
$this->create_table
$this->del
$this->display
$this->display_message
$this->form
$this->form_table
$this->locked
$this->main
$this->mod
$this->modform
$this->lock
$this->picklist
$this->summary
$this->summary_bar
$this->view
$this->xml_generate
$this->xml_export
$this->_setup
$this->_update
Example EMR Module
6. Database Modules
What is a Database Module?
Reserved Variables
$this->display_format
$this->message
$this->order_fields
$this->table_keys
$this->table_name
$this->variables
Reserved Methods
$this->add
$this->addform
$this->check_vars
$this->create_table
$this->del
$this->display
$this->display_message
$this->form
$this->main
$this->mod
$this->modform
$this->picklist
$this->view
$this->_setup
$this->_update
List of Tables
3-1. module_list macro expansion
3-2. Notebook class option flags
3-3. sql class option table
3-4. sql->create_table_query macros
List of Examples
2-1. Example of freemed::itemlist_conditions
5-1. Example of $this->disable_patient_box
5-2. Example of $this->summary_options
5-3. Example of $this->summary_query
5-4. Example of $this->summary_vars
5-5. Example of $this->variables
5-6. EMR Module Example