Migration Blues - Transforming a hospital to free software

[I am re-posting my old blogs. This was originally published on April 7, 2010]


I have been advocating the adoption of free software for over 4 years now. The most often raised question is this:

"I have been using M$ Windows and here in India, we get anything for free. I never paid to get my copy of windows. So what difference does it make to me whether I use Windows or Free Software?"

Genuine question, in spite of my stressing that the Free in Free software means "Freedom" as in Free Speech. I still need to address that particular concern in terms of economics as well, rather than in plain old philosophy and ideology.

In God's own country

Kannur, Malabar, Kerala. If there is one place still not tampered by the destructive creativity and intellect of man, it has got to be this. A place of amazing natural beauty. The rich and thick green cover makes you wonder if James Cameron actually missed the trick in placing Pandora in a far off galaxy rather than right in Kerala. That would have saved a lot in CGI costs. Apart from being God's own country, it is also the land of People's own businesses, I mean, most of the business houses here are co-operative societies, unlike the big corporate houses run as family businesses. One such society runs a hospital, AKG Memorial Co-operative Hospital.

Being a 500-bedded super-speciality hospital offering low-cost treatment to people, this effort deserves commendation.

Seeds of trouble

A few years ago, the management decided to do away with the old-world paper business and decided to shift to the faster, more efficient use of computers. The hospital bought 25 computers and a decent server. The systems were running Windows and the server ran on Windows Server 2003 SBS Premium. Now, we all know M$ has a hell lot of sub-editions and so, for the present purposes, we need to worry about what all that SBS thing means. But DO REMEMBER IT, we shall return to it.

We also know that just having an OS does not in any way speed up things. So they installed M$ Office ( just in case you were wondering, MS Office is NOT a part of Windows) and they bought a software application to manage the running of the hospital. The software was aptly titled "Hospital Management System". Very creative. And, the most creative decision was to write the application in VB6 (Microsoft Visual Basic 6 - a developer's dream). All the data was being stored on the main server and Microsoft SQL Server, which came along with Windows Server 2003 was being used to manage the data. Hey, Oracle is not the only dbms software, you see.

Microsoft's Love Mail

Of the 25 systems, one was connected to internet. All the setup was running fine for more than 5 years, although computer operators started complaining about sluggish performance. People thought the old server was the main reason and were contemplating on purchasing a new server, after some expert apparently suggested the change. While this was going on, one fine day, there was a mail from M$ saying politely:

"Dear Sir, We are glad to notice that you are using our products in your organisation (how the hell did you notice??).  We are sorry to inform you that the software that you are using is unlicensed and we will be compelled to take appropriate legal actions if the license issues are not sorted out (why did you take 5 years to wake up?? )."

Well, those were not the exact words, but the gist is pretty much the same.

Cost of Love

Money can't buy love. We all heard this before. But still, the hospital gave a thought to buying Microsoft's love. The cost turned out to be more than 4 hundred thousand rupees (for a detailed report, please find the file attached.) Most systems in the organisation use Windows 98 and Windows XP, both of which are discontinued. So a shift to a higher version is mandatory, and that means addition hardware upgrade cost to the tune of hundreds of thousands. For an organisation that charges Rs.35/- for complete treatment, that's a pretty huge sum.

Migration Blues

Thanks to the free software movement, we now have alternatives to the monopoly giant. That GNU/Linux is the solution to the above problem is a no-brainer. And, it is best known for its non-reliance on high-end hardware. That would save the cost of hardware upgrades as well. So, why the blues?

Software Engineering, anyone?

This was the most boring and the most useless course we ever took. Right? Horribly wrong. One of the basic tenets of software engineering is that a right design means a quality end product. No, I am not talking about the design of Windows. I am referring to the use of VB6 application. VB is notorious for being extremely platform-dependent. Now we experience first hand the issues of portability and platform-independence. Had the application been a Java based one, we could have simply replaced the entire setup with an Ubuntu based one. The server was a genuine, licensed one. So, we can leave it alone. Not that it is giving good performance. All the data for the past 5 years is stuck in the SQL Server running on it. Now, this VB6 application refuses to run on the linux platform no matter what we do. And, we don't have the time to re-write the entire application in a platform-independent design. After all, we have no love lost with Microsoft, who sent a mail demanding speedy rectification of the license issue. And, we can't risk losing the functionality of the hospital for too long. We need to have a solution and fast. We thought of a solution:

The server uses a genuine version. So we run the VB6 application on it. The clients can be converted to Ubuntu and then the server can be accessed using any remote desktop client. The server has something called a Terminal Services thing to allow this.

Here come the finance gurus

Now comes the critical aspect. Nobody ever reads the EULA license agreement. We blindly click on the "I Accept" button. We actually "accept that we be imprisoned by M$". The license that was bought for Windows Server 2003 SBS Premium is a 5-CAL one. CAL stands for Client Access License. That means, a maximum of 5 clients can use the Terminal Services thing concurrently. If one wants more clients to access the server concurrently, one needs to buy more CALs. Fine. We call up Microsoft and inquire about those CALs. They call us back in 5 minutes and inform us that: "Sorry sir, We no longer support and/or sell the SBS version. You can consider buying Windows Server 2003 Enterprise Edition or Windows Server 2008 R2 and then buy the CALs for that version." This amounts to more than 175 thousands . Brilliant minds at work.

Finally, the solution

We say, thank you. And off to find another solution. This time, we chose Windows XP in combination with another application called XPUnlimited which gives concurrent access to users. However, legal issues bind the maximum number of users in XP to 10. And XP does not natively support concurrent logins. That's where XPUnlimited meets Samba server. Let me not go into technical details but, finally, we managed to save more than 3 hundred thousand. I am attaching the report as well.
Even after deciding to shift away from the proprietary systems, over-reliance on it for the past 5 years caused us to still stick with some of those proprietary applications, notably, VB6 and SQL Server. And we still had to pay Micro$oft.


We also plan to port the entire app into a LAMP based application during the summer with the help of students. That will ensure a future-proof solution.

The point that I tried to make was this: Put a frog in burning water and it jumps out. Put a frog in normal water and heat it, it boils to death. Microsoft aims at making us dependent on it and then strikes the blow.

Comments and queries are welcome.

P.S. The example of the frog in boiling water is a common myth. I used it only for illustration purposes.

And I did not find a way to upload the report. Please find the report here: www.cse.iitm.ac.in/~chandrah/