Developing for Healthcare - .NET vs J2EE?
An anonymous reader asks: "Our small southern shop (an eleven man team) is about to commence development on some medical software geared for physician's offices and hospitals. Since we have never developed in this area before (our primary source of income comes from developing software for regional transportation offices of the government) we are at loss for the reigning technologies. The two technologies we are considering are J2EE and .NET. What are the opinions of the Slashdot crowd? Surely others have developed for the monstrous healthcare industry. Thanks!"
"My senior manager recommended using .NET. His argument is that most desktops he has seen in hospitals already run Windows, the development time will be cut down for this small to mid-size project, rich desktop clients are possible and there will be no application server costs involved. He also contends that .NET has more templates and abilities than J2EE (which is simply 'web targeted' in his opinion.
Half of my coworkers are with him and the other half have suggested using J2EE due to portability--we do not want to cut off any potential sources of income with an already dwindling future. Has GNU/Linux become widespread in the healthcare industry that we should consider developing for it too? What about Mac OS X server?
The last problem we have is winning over the IT staff hearts. They are the ones who ultimately give the go ahead to purchase the software. Java gets a bad rap for being slow, while Microsoft (and by extension) .NET has the shadow of being insecure. How can you possibly win?"
Half of my coworkers are with him and the other half have suggested using J2EE due to portability--we do not want to cut off any potential sources of income with an already dwindling future. Has GNU/Linux become widespread in the healthcare industry that we should consider developing for it too? What about Mac OS X server?
The last problem we have is winning over the IT staff hearts. They are the ones who ultimately give the go ahead to purchase the software. Java gets a bad rap for being slow, while Microsoft (and by extension) .NET has the shadow of being insecure. How can you possibly win?"
Any program written for the medical industry that involves capturing patient data is required to be secure. Read up on HIPPA (http://cms.gov/regulations/hipaa/cms0003-5/0049f- econ-ofr-2-12-03.pdf) before making a decision. The company I work for creates software for the medical industry and we chose J2EE for the security and relatively low barrier to entry using open source application servers and tools.
We've been using XUL for stuff like this for a while
= desktop like interface,
= lightweight desktop install (eg. firefox)
= backend choice of components - eg. prototype in PHP, then decide if you really need to go that extra mile with C for any of the slow bits.
= Users think it's great
= It's responsive, even on old win98 pentium II's
= Alot cheaper to add/change develop. etc.
Last summer we developed a case management system from scratch for hospital admissions pre-qualifications and tracking. Our client serves the medical insurance industry, therefore HIPPA was a factor. We used LAMP all the way, finished the project in three weeks (no brag, just focus and swinging elbows), and they have fifteen nurses banging away 24/7, client access via https, and 100% uptime. All of their money went to us instead of software licensing, they paid less anyhow, and they are smiling ear to ear.
If the PHP is not elegant enough, for the love of sanity please use Java. If we don't feed the monster that is choking, screwing, and robbing us, it may weaken and we can get on with an unshackled future. We do the entire world a favor whenever we choose sane engineering.
"If no one tilts at windmills, the damn things will take over the world!"- Christian Simpleman
"If no one tilts at windmills, the damn things will take over the world!"- christian simpleman
I'd second that. I've been using Python exclusively for the past year or more in commercial projects, and quite a bit on and off prior to that personally.
.NET or Java runtimes. If deployment is a major issue, then it's simple enough to create and ship a single executable.
Combined with a good GUI toolkit (wxWidgets or for certain applications GTK+ and the wonderful Glade) and with a good database back-end (MySQL on the server and possibly SQLite for local data) you really can do pretty much anything very quickly and effectively. There are even some great free development tools (like DrPython) which are a joy to use.
You get to target GNU/Linux, Windows and Mac OSX with essentially the same source, and installing the Python and related runtimes is no more hassle than installing the
I've used it for developing everything from Point-of-Sale systems to document imaging and retrieval to accounting systems. There are quick applications for feeding data from legacy systems into new systems, batch processing of large amounts of data, as well as some pretty major fully bespoke applications. It really has proven to be a one toolset fits all solution for me.
Looked at and used Perl, Ruby and Lua for a while before decideding on Python. It just had that little something extra for me, and I've absolutely no regrets, but all four would bring you most of the same benefits, though you may find that Lua is lacking somewhat in add-on libraries at the moment.
Take a look at the Technology Assisted Practice Application Suite, which is based on Zope/Plone (written in Python), the jSyncManager (a pure Java (J2SE) synchronization protocol stack and toolkit for PalmOS-based handhelds), and some custom applications.
This project is geared towards two areas: online access for medical offices, hospitals, retirements homes, etc., and handheld access using Palm Tungsten C handhelds. It uses open tools and open standards, and is released completely as Open Source. Phase One, currently under development, is implementing handheld management systems, security (both validation and encryption) calendaring, and messaging. Phase Two, starting Spring 2005, will be implementing patient data.
Being open and using languages like Python and Java, the suite runs virtually anywhere. The prototype systems are running Debian, however I often do development and testing against a similar setup on Mac OS X (as I develop all of the handheld synchronization and management routines).
Before you go out there and start writing soething similar from scratch, you might want to see if there are Open Source tools you can build upon and extend for your purposes first.
TAPAS is, BTW, being developed in conjunction with a major university, a major hospital, a group of doctors, and a provincial Ministry of Health here in Canada. You might want to take a look at what we're doing before jumping in and starting from scratch yourselves.
If you'd like more information, please feel free to drop me a line. In particular, if your company hasn't even considered the handheld side of your system, let me know as I have a lot of expertise in this area.
Brad BARCLAY
Lead Developer & Project Administrator,
The jSyncManager Project.
I work for a very, very large insurance company with tens of thousands of employees, and several dozen million policy holders. At least 25% of the nation has auto insurance with us.
.NET in the enterprise for a while, until Humpty Dumpty (.NET) fell off the wall and all of Microsoft's Men and Women couldn't put it together again. For two and a half weeks customers were without quotes, or access to their policies online, and agents couldn't sell new policies or make changes to current policies. Customers were furious, agents were foaming at the mouth in anger.
.NET team flown in they couldn't get it working again for two and a half weeks. Eventually they had to rebuild the entire server room with new Windows installations on every server because they couldn't find out the problem. That might seem bad, but let me make note that the whole system was provisioned, installed, and maintained by Microsoft personnel. They broke it and they couldn't fix it for, say it with me, two and a half weeks. That should make it seem worse, but it still sounds better than it actually was.
.NET. We don't even get Visual Studio.NET installed on our development machines anymore. We have a very strong bad taste in our mouth from the whole .NET craze, which Microsoft is going very far out of their way to remove, without result.
We used
Two and a half weeks. With all of "the Shining Stars" of Microsoft's
A decision was promptly made to drop
We use J2EE and are very happy with where its going. Sun has spent a great deal of effort working with us to transition, and their support has been great. Our J2EE stuff Just Works. It works wonderfully. We are very, very happy with it. I'm using short sentences here to get the point across that we are very happy with J2EE. We've been using it for our web services and as our main development platform. We train on IBM's WebSphere Studio Application Developer, and it also is a great (but expensive!) tool.
I, as a developer, recommend J2EE. I do not represent my company in this recommendation, in case you work out who it is I work for. I am speaking totally on behalf of myself.
The company I work for is in the process of porting all of it's VB (.Net predecessor) software over to Java. The reasons are pretty interesting.
.Net, forcing a rewrite that will cost millions. Microsoft is infamous for churning its technology base, so they could easily do it again. Fool us once, we aren't going there again.
.Net (Mono is not even close to be considered - one patent infringement lawsuit from MS and it is gome). Java gives us access to just about any platform we are likely to need to deploy to.
.Net is famous for crappy performance on more than 2 cpus. Java runs great on big iron.
.Net's use cases are not.
- Microsoft essentially obsoleted our entire company's code base when they introduced
- Java has been around for 10 years, with many fewer technology upheavals.
- Java is multiplatform, much more so than
- Scalability.
- App servers - With MS there is one choice. With Java there are many vendors, with a vast range of product capabilities.
- Development tools - Just as good, wider variety and often far less expensive per seat.
- Maturity - best practices are fully understood, while
I have just finished a project for small group physician practices all built OSS and 2005 I will be working on another project for the same market with .NET.
.NET is a very good environment to get large, complex applications built in with limited resources. I had never programmed in it myself until two months ago and I must say it is not difficult at all to pick up as long as you understand OO programming (which any programmer does).
As much as IO enjoy OSS and dislike the evil that is blah blah blah, I have to say
So my take as far as the market itself is that the best thing to do is develop web services that can be consumed by the customer. That way, the platform you develop in does not matter. If you have to pick, then know that Microsoft is making huge strides in healthcare with transcriptions, digital medical records, iPaqs and Tablet PCs. I don't see a lot of OSS in the market.
Best of luck.
I only came here to do two things; kick some ass, and drink some beer...looks like we're almost out of beer.
Umm...not necessarily. Sounds like a small shop, and the feds have special programs to award them contracts. We're in the same business and often serve as the prime on the contracts. Often times they are agile enough to pull off the job and turn over a good product.
- If we aren't supposed to eat animals, then why are they made out of meat? - Steven Wright
I hope you seriously aren't suggesting PHP over J2EE...
The security holes in php compared to j2ee app servers... Ever heard of Weblogic?
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
Hmmm..
.NET, and by-and-large, this seems to have been a successful gamble, though not a smooth road. The Eclipsys flagship product, Sunrise XA, is written almost entirely in .NET. This product is a major player in the healthcare arena.
This is an interesting question. I'm actually in this industry, and have been for the last half-decade. For an industry that seems to lag remarkably behind the times, I'd like to note the following:
1. The major player in this field, McKesson (previously HBOC) seems enamored with Java. This, however, is only because the Healthcare IT field seems to be 5-15 years behind the current technology.
2. Major players in this field (Particularly Eclipsys) have bet the farm on
3. Many hospitals have strict rules on what IT software is allowed. I will tell you that the following is ALWAYS allowed: Windows NT, Windows 2000, Windows 2003, SQL Server, Oracle.
The following is SOMETIMES allowed: Sybase, Any "other" RDBMS, Windows XP, Linux, *nix, etc.
With the combination of Windows and SQL Server, you can't go wrong. Don't believe me? Do your market research. Want more info? jerry@dennany.org.