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?"
are here. Read for yourself and draw your own conclusions
http://www.ramp.com
Why write your own when it's cheaper to use an established product?
Ramp corp's software is more feature packed then your 11 person team could do in a couple years of work, it's supported, and you don't need to write code in either of those two crappy standards you suggested.
Unless you have a large body of code already written, scripting languages are a much better alternative. Your development effort will be much simpler, will proceed a lot faster, and should also cost less in software licenses, etc.
.NET applications should then have little trouble communicating with your system.
My favorite scripting language is Python, which has a very clean syntax -- no problem for any Java or C# programmer to utilize fully in under a week. There are other choices, however, such as Perl and Ruby.
If you need to create third party interfaces, use an open standard such as Web Services. J2EE and
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.
If the application is to be 100% client code forever, both will work and you should go with what the staff is most familiar. If your staff is equally familiar / ignorant go with J2EE to gain portability.
If you ever want to put some of the code on servers and scale up the system to large numbers of users then J2EE is the best / only choice.
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
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.
Hmmm... let me think about this comment.... BuHAHAHAHAHA!!!! Microsoft secure AHHHAHAHAHA!!!
/. advice so don't take it too seriously ;) ), look at your target market, pick the best tool for the job, always have a backup plan if that tool doesn't work.
But seriously, I respect the fact you made some of these comments. But I think some of the reasoning is flawed. Windows is simply not a secure platform from both a quality and archectecture standpoint. I know this from experience (heavy amounts of development for many, many different operating systems... not just Windows/Linux)
I do agree with your comment on researching the target market and that is often what is forgotten when using the latest wiz bang technology. Pick the best tool for the job. Just because it's today's buzzword does not mean it's the best tool.
I simply do not think that Windows can hold up to HIPAA. Would you trust Windows to cover your legal butt? I am not saying this as a Linux/BSD/Solaris/MacOS/VXWorks/PSOS/etc zealot but simply from experience. Security wise, Windows still has a ways to go (i.e. allowing arbitrary code execution from a web page, email, etc). When it gets there then I will trumpet Windows as a secure OS.
My advice (and it's
I've gotta say this... with J2EE, you just need java installed. .net, you usually end up needing all kinds of extra MS stuff installed, and it becomes a freakin nightmare if you have lazy coders who require IIS and god knows what else to be installed in order to use their .net objects.
With
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
.net is a framework, not everything you need. .net program uses the objects from it (obviously). Beyond that, you have to have the correct versions installed too.
.net (1.1 just got approved), Visio, IIS, and several of our own products to be installed just to work. When it works, it works great. When it doesn't, you get to find a needle in a haystack to find out what's missing.
If you want to use objects to make your coding time quicker, you can use parts of VisualBasic, IIS, Windows native stuff, Visio, Office stuff, etc. Problem is, you have to have it installed if your
Some of our stuff uses
Oh ya, I forgot about Office and SQL Server. Also, SQL Server and IIS have to be actually running (or so I was told) as well for our stuff to work. I'm sure i'm looking over some stuff too. So lets see... that's 2 servers and 5 software packages just to run one .net program?
.net is GREAT when it's uses responsibly, but can be horrible if it's not. Just make sure your coders can also code in non-MS languages and you should be fine. If all they know is VisualBasic and .net, you are in for a ride.
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
webapp, webapp, webapp.. if you need a "rich" UI 99% of the time you're probably putting bells and whistles on a rat. Users want functionality not some snotty NY designer's wet dream.
.Net crap to deal with, thank god. BTW the system is *FAST*, Hibernate is a godsend. No client prereqs, just a browser, firefox please, and the users love it. .Net?? I thought the big boys gave up on that ASP/VB mangled garbage years ago... who knew?
.Net failures, it makes me smile. tnx Bill!
Java using Struts, Hibernate, Xdoclet, Spring.. all open source treasures.
We developed a large inventory, client, and server management system in a matter of weeks not months. Pick a Java app server & a database, drop your WAR file and you're done. No
Actually.. please disregard this post, I love presenting clients with apps that run circles around the piss-poor
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.
Sounds like the question submitter's company doesn't have much of a clue. They should go and do some research. Actually try out the technologies you are planning to use and see what is most comfortable and appropriate.
.Net that consume the web services. If you did something like that, you can assign the Java supporters to the server-side and .Net supporters to the client-side. You won't necessarilly be tied to .Net, you can use anything that consumes web services.
And you don't necessarilly have to pick one or the other. We use J2EE (with lightweight technologies like Spring, Hibernate, iBatis. no EJB's) for our server-side technology. We create web services and also right our browser-apps on that platform. We write GUI apps in