Developer(s) | FreeMED Software Foundation |
---|---|
Initial release | 1999 |
Repository | github |
Written in | PHP |
Operating system | Cross-platform |
Available in | Multilingual[1] |
Type | Medical Software |
License | GNU General Public License |
Website | www |
FreeMED is an open source electronic medical record system based on Linux, Apache, MySQL and PHP (commonly referred to as LAMP).
The FreeMED project was officially started in 1999 by Jeffrey Buchbinder of Willimantic, Connecticut, United States.
FreeMED is a direct descendant of AMOS, a Pascal/DBase program which was created in 1983 before the widespread use of relational databases and object oriented programming.
FreeMED is currently hosted by the FreeMED Software Foundation, with downloads hosted by Sourceforge.
It uses Subversion as a Concurrent versioning system, which it has used since it was migrated from CVS in 2005.
FreeMED is mainly written in PHP, and makes heavy use of SQL, favoring the MySQL database engine. It also uses some bash, Perl, and small pieces written in other languages. Its interface is primarily web-based, but web services interfaces, such as XML-RPC, are also available.
FreeMED stores and represents its medical data as a group of "modules", which consist of a database model and a user interfaces. Each of the disparate modules is then virtually connected together by means of relational database table fields referencing other modules and basic patient demographics. This allows FreeMED to add and remove core database functionality by adding and removing modules without having to reprogram its interface.
FreeMED uses an external billing program called REMITT (REMITT Electronic Medical Record Information Translation and Transmission). The name "REMITT" is a Recursive acronym.[2] It communicates with REMITT via an authenticated XML-RPC connection. This connection, once established, allows the transmission of medical billing data as a monolithic chunk of XML. This is then processed into a meta-format via XSLT, and finally processed into its final format and transmitted to its ultimate destination.
This methodology allows for multiple formats of output to be generated from the same base data.