Wednesday, January 10, 2007

OpenEMR v2.8.1 vs proprietary clinic management software?

Now that I have successfully installed OpenEMR on its own server, I just need somebody from the other part of the world to try it out. It's just to make sure that it can do the job properly, before I really share the site with fellow GPs in Malaysia.

I am looking for an adventurous Malaysian doctors, who have their own practice, know how to operate a browser based application to try out the demo site that I have set up. As I installed the application in my own web server, please don't do anything heroic. Just login, add some new patient and test around the application. I just need a feedback from you after trying.

Here is the demo site:

Username: demo
Password: demo

The user manual:

You may ask me why not I just buy a proprietary clinic management software that are available, especially in Malaysia, where they have a good number of vendors/provider? There are few reasons;
  1. They a waaaaaay expensive! I received a quotation from one of the vendors of the software, for a clinic with 4 users, the software, installation, training and after-sales services are RM12,000!
  2. And, the software can only be installed in a computer with Windows XP.
  3. Cannot be used in a network. Means, there will be no synchronizing data between my counter staff nurse outside and my laptop inside my room.
  4. Oh, when I did try their trial software, its buggy. It means that the software package gives you an error message while installing into my Windows XP. I don't even bother to continue to install it. (I ditch it out from my hard drive STAT!)
You might want to know why I choose a browser based application for the clinic software? These are some of them:
  1. First and foremost, the application is free. It's an open source software, means that if you know how to write computer programming language (in this case PHP), you can edit it, do anything you like to the software package and even sell it to others.
  2. You can run the software in any platform - Windows, Linux or Mac. You just need a standard web browser to run it smoothly. I choose and recommend Firefox. It's really fast and good.
  3. Because the software is installed in a remote and dedicated server, the application can be run at the same time from a different computer and a different user. So, if you have 2 doctors, 2 staff nurses and an administrator in a clinic, you don't have to install it in every computer in the clinic. Just installed it in the server and its done.
However, there are some downside of it:
  1. It's a browser based application. So you need to connect to the internet to run the application if you installed it in a remote server. But, this can be overcome if you installed it in a local server, like what I did with XAMPP in Windows XP. The application can be run without internet connection.
  2. The stable release of OpenEMR software package has dated back in Feb 2006, with the version 2.8.1. Since then, there are a lot of changes made by the developer, but they did not have an official release. The subversion release (v2.8.2) needs a good knowledgeable administrator to update the application. So, there are still bugs that comes with v2.8.1.
  3. You need somebody who know how to manage a server, or at least know how to run and install the application in the remote or the local server. You need a server which runs Linux, Apache, MySQL, and PHP4 to do the job properly.
  4. The application was written by a group of international programmer, which means there are some differences of variables for the patient's data collection, such as a 'social security number' vs 'mykad'. The changes of the variables can be done, provided you know how to read, write and edit PHP code. Otherwise, you can still use it, but the clinic have to know which variables that they 'borrow'.
  5. The database still use ICD-9 for the disease coding.
Despite the pro's and contra of having OpenEMR as your patient management / clinic management software / application, I have decided to move on using it as the standard software which manages my clinic. Yes, there are a lot of new non-medical, computer and some technology knowledge that I have to learn, but I don't mind doing it. I love to learn something new and something different from the mainstream medicine.

If you are like me, and like to join the boat, you can just contact me. I can try to help you set up your own browser based clinic management software.

Friday, January 05, 2007

OpenEMR on complete

At last, I found the solution for the problem that I faced couple days back. After did some Googling about this "Smarty" problem, it seems that it was not "Smarty" problem at all. It's the problem with file attributes.

It seems that the webserver user does not have a permission to write to the /compiled/default^views^day^default.html. directory, or unable to create the /compiled/ directory. (Maybe that is why it wrote there 'Smarty error: problem writing')

So, what I did was chmod all this directory to 777. (modules/PostCalendar/pntemplates/compiled/)

Oh, by the way, do not forget to chmod the 'Documents' directory to read-write (666) also. Otherwise, you will not be able to upload "Patient's ID" file from your computer to the server.

So, up to now, the experiment is complete. I will give another couple of weeks to get use to this server thing, before I get someone to do some demo run of the website.

Thursday, January 04, 2007

How I installed OpenEMR in a webhosting server

3 months after successful installation of OpenEMR in XAMPP and WindowsXP, I decided to install the package in a web hosting server. As this will also be an experiment, I decided to install it on one of my existing website, Hearing Although it's an informative website, it is also a kind of "sandbox website", where I did some experiment on installing php base program on it. One of it is this one.

Well, it is not as easy as extracting the installation package in the public_html of the web server. Few things I have to do before the things gets running. First, my web hosting services, runs PHP5 for the web server. As you know, OpenEMR will not run on a machine with PHP5 on board. I need to switch it to PHP4 to make sure OpenEMR run smoothly.

However, when I contact my web hosting company to request for the switch, it seems that the website is currently hosted on a new server, which only have PHP5 on board. So, I have to write them an email for the request to migrate back to my website to the old server, which have PHP4. The process went smoothly, as I requested that the migration process to be done at midnight. On the next morning, when I log in to the internet and my cPanel, I notice that the migration is successful. An email from the Exabytes technical department also confirm this.

This morning, I reinstall OpenEMR in the old server, (which runs PHP4) hoping that it will run smoothly. I extracted the package, and navigate the folder so that the Hearing website is not interrupted. So, the URL looks like this:

After the installation, I get the login page. I was delighted. However, when I enter to the first page, the calendar did not show up! No problem with the navigation bar and the lower frame of the page but only at the center, where a calendar should be.

The error message showed this:
Warning: Smarty error: problem writing 'modules/PostCalendar/pntemplates/compiled/default^views^day^default.html.' in /home/hearingg/public_html/openemr/interface/main/calendar/
on line 589
I did post the problems in the official OpenEMR forum today, hopefully dr Bowen could help me out...

I will post my progress back in this blog.

Friday, October 13, 2006

How to install OpenEMR with XAMPP in WindowsXP

Disclaimer: This 'howto' manual is written based on my personal experience while trying to implement OpenEMR in my clinic. I use Windows XP as a platform of trial and transform my Windows XP to become a local server using XAMPP.

Okay, before we go through the details on the 'how to', I just would like to recap on what is OpenEMR and XAMPP.

OpenEMR is a modular, HIPAA compliant, Open Source, cross-platform Electronic Medical Records system (EMRS). It facilitates efficient office management through automated patient record journaling and billing integration, and has been successfully integrated with third-party technologies including speech recognition, secure wireless access, touch screen portables, and biometric authentication. Interface screens are customizable and optimized for consistency, simplicity, speed of access to patient information, and minimum eye strain. OpenEMR is based upon widely-used public standards to achieve maximum compatibility with evolving technologies. Adherence to these standards diversifies implementation possibilities through minimum hardware compatibility requirements.

In short, it is an application to run your clinic management and patients database with a lot of room to expand.

XAMPP is an easy to install Apache distribution containing MySQL, PHP and Perl. XAMPP is really very easy to install and to use - just download, extract and start. Many people know from their own experience that it's not easy to install an Apache web server and it gets harder if you want to add MySQL, PHP and Perl.

In short, XAMPP will make your Windows XP as a server for you to host your OpenEMR.

Few thing we need to consider before we go through:

  1. To run OpenEMR in your Windows XP is not as straightforward as installing another applications with an .exe extension in Windows.

  2. It will take some your time and effort to get the whole thing running.

  3. OpenEMR is a browser based application, means you need to install OpenEMR in a server and run the application using your web browser. I personally recommend Firefox with Google toolbar.

  4. I have not try this on a Linux and Mac. If you want to try to install it on those platform, check out from

  5. OpenEMR is developed in the US. Some of the medical variables and parameters on the applications may not be compatible with your local and country settings. The good news is, OpenEMR is an open source project, which means if you know how to write PHP code, you can change and modify the source code to tailor to your local clinic and country settings.

  6. I consider my attempt still in a very early stage. I appreciate any feedback from you.

  7. Discussion on implementing OpenEMR will be discuss in OpenEMR forum.

Installation of XAMPP.

Choose which distribution to install. I choose a stable production release. Because OpenEMR use PHP4 and mySQL4 to run, I use XAMPP 1.4.16 version. Newer version of XAMPP will not do the job properly.

Download the distribution you want to install. I downloaded the XAMPP 1.4.16 installer, xampp-win32-1.4.16-installer.exe, from the Apache Friends organization's Web site. Look for 'Older versions of XAMPP (even the "old" WAMPP) can downloaded directly from SourceForge' and download the package from there. Make sure you download the installer file.

Install the distribution. Installation of XAMPP is very easy. Just unpack and run the .exe package on the partition of your choice. I chose the default, creating the main directory in C:\Program files\xampp.

During the set up, you will be informed about installing Apache, mySQL and Filezilla services into your computer. Just agree with all the default settings.

Perform post-installation setup.
  1. By default, XAMPP services will start with PHP5 after you finished the installation. You need to switch PHP5 to PHP4 (because OpenEMR cannot run properly with PHP5).

  2. You need to stop Apache services first before the changes takes place. To do this, open XAMPP Control Panel Application (start menu > apachefriends > xampp > control xampp server panel)

  3. Select 'stop' apache services under 'modules'.

  4. Switch your PHP5 version to PHP4. To do this, select 'php switch' from the start menu. (start menu > apachefriends > xampp > php switch).

  5. A window with command prompt will pop out. Change your PHP to PHP4.

  6. Restart Apache services.

To make sure that you install XAMPP properly, open 'CONTROL XAMPP SERVER PANEL' from Start Menu > All Programs > apachefriends > xampp. Click 'Admin...' from the Apache service modules. It should open your browser and show this:

The URL address should be http://localhost/xampp/.

Installation of OpenEMR

Choose which distribution to install. I use the latest stable production release. For our project with Windows, it was the openemr-2.8.1.tar.gz version from

Download the distribution you want to install.

Install the distribution. For installation, follow the steps below:

  1. Extract the downloaded file using WinZip. When you unzip, the package will become a folder. Rename the folder as 'openemr' and move the folder to 'htdocs' folder in C:\Program files\xampp\htdocs.

  2. You then need to do some script editing. Use WordPad or any text editor to open globals.php file, which is in C:\apachefriends\xampp\htdocs\openemr\interface.

  3. At about line 10, look for this line $webserver_root = "/var/www/html/openemr";

  4. Change $webserver_root ="/var/www/openemr"; to $webserver_root = "C:\\Program Files\\xampp\\htdocs\\openemr";

  5. At line 17, change the $web_root to $web_root = "/openemr";

  6. Next, OpenEMR expects Magic_quotes to be turned off. Again, edit C:\Program Files\xampp\apache\bin\php.ini with your Wordpad or any text editor.
    About ½ way down I located and changed
    Magic_quotes_gpc = On
    Magic_quotes_gpc = Off

  7. Start Web browser and type in http: //localhost/openemr/setup.php.

  8. Click "Continue" button.

  9. For the first step, choose "Have setup create the databases" and click "Continue."

  10. For the next step, choose the following entries:

  • mysql root password – by default, XAMPP did not set any password for your mySQL,

  • openemr password – use something simple like "openemr1";

  • database name – for example, use "openemr";

  • change default clinic name to the name of your clinic – for example, use “clinic”
Click “Continue” and soon you will be seeing the message, "Congratulations..."

Perform post-installation setup.

You should get this page:

The URL address should be http://localhost/openemr/interface/login/login_frame.php. The default login name for OpenEMR is 'admin' and password would be 'pass'.

After successful installation, you need to read the user manual to get use to the application. Get the use manual here.

A matter of security (A MUST READ!)

As mentioned before, XAMPP is not meant for production use but only for developers in a development environment. The way XAMPP is configured is to be open as possible and allowing the developer anything he/she wants. For development environments this is great but in a production environment it could be fatal. Here a list of missing security in XAMPP:

  • The MySQL administrator (root) has no password.
  • The MySQL daemon is accessible via network.
  • phpMyAdmin is accessible via network.
  • Examples are accessible via network.
To get your XAMPP secured, just click on 'Security' on the sidebar when you are in the http://localhost/xampp/ page. Just follow the instructions.

That's it for now. If your trial is not successful, OR would like to participate in the discussion, OR queries OR giving any suggestion, I appreciate that you can register and voice you heart out in OpenEMR forum.