Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

My father is a doctor/physician. About 15 years ago he started writing an application to handle his patient's medical records in his clinic at home. The app has the ability to input patient's medical records (obviously), search patients by some criteria, manage medicine stocks, output receipt to printer, and some more CRUDs.

He wrote it in dBase III+. A few years later he migrated to FoxPro 2.6 for DOS and finally in a few more years he rewrote his app in Visual FoxPro 9. And now (actually two years ago) he wants to rewrite it in PHP, but he doesn't know how.

The Visual FoxPro version of this app is still running and has no serious problem except sometimes it performs slowly. Usually there are 1-5 concurrent users. The binary and database files are shared via windows share. He did all the coding as a hobby and for free (it is for his own clinic after all). He also use this app in two other offices he managed.

Some reasons of why he wants to rewrite in PHP-MySQL:

  • He wants to learn
  • Easier to deploy (?)
  • Easier client setup, need only a browser

What should I do to help my father? How should he start?

I explored some options:

  1. I let my father learn PHP and MySQL (and HTML (and JavaScript?)) from scratch.
  2. I create/bundle framework. I'm thinking on bundling CodeIgniter and a web UI framework (any suggestion?) especially to reduce effort on writing presentation codes.

What do you think?


tl;dr

My father (a doctor) wants to rewrite his Visual FoxPro app in PHP-MySQL. He knows very little of PHP and MySQL but he wants to learn. What should I do to help? How should he start?


Some facts:

  • My father is 50 years old.
  • His first encounter with a PC is in early 1980s. It was IBM PC with Intel 8088.
  • He knows BASIC.
  • He taught me how to use DOS and how to program with BASIC.
  • The other language he knows fairly well is dBase/FoxPro.
  • I got my bachelor CS degree last year.
  • I know the internals of my father's app because sometime he wants me to help him writing his app.

Update

After reading early responses, there seem to be better alternatives to PHP for this case. I'm open for other language/technology suggestions.

share|improve this question
6  
If this is a basic CRUD application, perhaps Django (python), or Ruby-on-Rails (ruby) are better fits, with Python edging it out for ease-of-learning. –  Martijn Pieters Aug 30 '12 at 8:44
    
Why start from scratch, sounds like you father could be an asset to one of the Open Source projects en.wikipedia.org/wiki/List_of_open-source_healthcare_software Poking around in a project like this may help him learn not only how to develop in PHP and SQL but probably help him produce better code. –  Jaydee Aug 30 '12 at 12:30
2  
I can't help but wonder why don't you do the porting, working with him. (this app seems profitable - and if it isn't it should) You're fresh out of bachelor and this will count as valuable porting experience from legacy systems, this is $$$ valuable experience, and he'll eventually learn php in the process just by watching the original logic he formerly wrote being translated in the new syntax. He'll be obviously able to maintain it by himself pretty fast. Maybe you've got other plans, but really, set a year apart to focus on that: no university can give you that level of insight. –  ZJR Aug 30 '12 at 12:34
1  
Is C# not an option? I would use it, if I were you. PHP is easy to start with, but also easy to find yourself creating a big mess. Furthermore your father would have to learn HTML and CSS, without it chances are not too god for a web based app. How about a Silverlight solution? It's web based and .NET –  Vain Fellowman Aug 30 '12 at 14:14
1  
@ZJR : I would like to do the porting, together with him. But now I live 600km away from home doing a full-time job. So, that is not a feasible option, at least for now. –  adijiwa Aug 31 '12 at 4:21
show 2 more comments

4 Answers

up vote 3 down vote accepted

Well, since you have a CS degree, and your father is also knowledgeable, you should have no problem.This should be simple to prototype, since you already have the application written.

Server: For simplicity, grab a copy of LAMP(linux), WAMP(windows), or MAMP(macintosh) server and install it on your machine, make sure to install a mysql and php environment. Very simple process. Google is there for you!

HTML / CSS Template: If you want your clients viewing this on browsers with no worries, then you need to worry about cross browser compatability. Luckily, very smart people have done this for us. Check out HTML5 Boilerplate, Initializer, Normalize.css respectively.

You should be able to google your way around using phpmyadmin (a simple GUI for interacting with your database) and get a backend database going. PHP database connectivity should be very easy for you.

For learning PHP, it is very easy to copy and paste from the web. Try to avoid this. Grab an O'Reilly media book, or something from a publisher you trust, and keep it for reference.

I think that covers the basics...

share|improve this answer
    
+1 for "grab a book" –  harald Aug 30 '12 at 13:01
add comment

I'd advise to do some product research and see if there is an "off the shelf" system that will do a better job for a smaller outlay of time and money.

The fundamental problem here is that those medical records are business critical in a couple of respects:

  • If they get lost or corrupted, it is going to affect your Dad's ability to run his medical practice.

  • If there is a security or privacy breach, there is a possibility of your Dad running foul of the relevant law on medical record keeping (IANAL), and/or being sued by patients.

IMO, it would be better to use a system built by some company with experience in addressing those concerns, than "winging it" with a home-made system.

share|improve this answer
    
you are right man. the time to spend learning all these thing batter to utilize to help patient. –  Desert P Apr 9 '13 at 12:46
    
@DesertP - that's a different point to the one I was trying to make. I'd advise against doing this even if his Dad had all the time he needed. It is a matter of skills ... and the risks of getting it horribly wrong. –  Stephen C Apr 9 '13 at 15:56
add comment

Not to be a Java troll (which I am, but I'm trying to cut back), why not use the nice Google App Engine and Google Web Toolkit plugins for Eclipse and make it all in Java? You don't have to touch database configurations, Java is pretty easy to learn, you have a (somewhat) decent UI visual editor for GWT, and test deployements and production deployements are a one click deal. Plus when you tinker with the client code you only need to refresh your browser to see the change (when testing the app locally). And you're abstracted away from Javascript and Ajax.

share|improve this answer
add comment

If you father is willing to spend the money, Visual Studio Lightswitch might be an option to consider. You can program in C# or VB.NET, develop 2 or 3-tier Desktop and Silverlight apps and I think the version coming out with VS 2012 is supposed to support HTML 5 clients.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.