Alternatives to Java and C# for Client-Side Imaging?
SkyLeach asks: "I work for a medical company which wants to provide medical imaging solutions to their clients without having to install software on the clients' machines. We had been using Java, but this is becoming more and more difficult as the Microsoft VM becomes more outdated. According to this FAQ from Microsoft, java will receive no more support at all in the future. Without using a Windows-only solution such as ActiveX, what other options are there? Keep in mind that the only absolute requirement I have been given is that the physicians never be required to install anything on their computers: Sun's JVM and Microsoft .NET, included."
Is this a web app? I am assuming so since you are talking about ActiveX.
Looks like your up a creek without a paddle. The only other option is dynamically created images into HTML pages. Possibly using some DHTML or such for some minor interactivity. If this is not acceptable, then you will simply have to be honest and state that it is nearly impossible to do this job without requiring the user to install SOMETHING. One good note however, is that I believe Microsoft is required to distrobute the SUN JVM (at some point, barring their usual delay tactics), instead of their own, but SUN now makes it so easy to install with 1 click, why is it such a pain? Just direct your users here: java.sun.com/getjava
one click, BAM (barring any rights or security issues)
- is client-side
- is platform-independent
- requires nothing to be installed
Usually, you can pick any two. What you might be able to do, though, is instead of having a "platform-independent" solution (in the Java or Flash sense), create solutions (eg, native executables) for multiple systems and have the server send the client the "right" one. I don't see how anything else could work.It's always a long day... 86400 doesn't fit into a short.
www.HearMySoulSpeak.com
"physicians never be required to install anything on their computers"
Unless you have some deal with the manufacturers, presumably you have some IT department or person that sets up these boxes as they come in? How many machines are there? It takes only a few seconds to download and install Sun's Java VM. This can be done during setup, or just have somebody walk around doing it. Better yet, mount a remote share with it.
It's 10 PM. Do you know if you're un-American?
I work for a company in the same industry, and I wrote the lion's share of their current viewer, which is web-based as you describe. Having been down this road before, I can tell you that you have two options: require a client-side installation of a newer VM, or submit to being windows-only. the only other alternative is to do server-side processing and create html montages using jpegs, which is hardly a scaleable solution if you're doing any kind of interaction with the physician.
of your other two options, as much as it galls me to do so, if you're stuck with the requirement of no installation, i have to recommend the activex approach. we've found performance of this approach to be quite good, though you have to watch out for the occasional com bug.
Using X-Windows, you could just install a basic distro and run the app remotely (via an encrypted tunnel) on another machine (on which you could install anything you want). That would work with a bare system (there exists a 2-floppy XFree86 linux distro).
You could burn a CD that does just that, and boot the computer with that CD -- means no installation. The OS and apps on the CD would connect remotely to the X server (client?) and that would be the end of the problem.
Windows has this "innovation" called "Terminal Services" which seems like a pale clone of the X-Windows ability to run apps remotely. I don't know how much you could transpose from X or if clients are available in a base Windows installation.
If by "don't want to install anything" you mean that you don't want your users to install anything, I'd suggest DeployDirector from Sitraka (www.sitraka.com) as an alternative to Web Start. Like Web Start, DeployDirector will install the client-side application (not applet), install correct version of the JRE, and ensure that the application keeps itself updated. However, with DeployDirector you don't have to have the intial step of installing Web Start. Everything is managed centrally, and DeployDirector will allow you to monitor the application, alert you in the event of an error, rollback, etc. Your users can be completely non-technical -- the tool will even work in a lockdown environment.
If, however, you mean that for security reasons nothing can exist on the client machine, you'll need to go with a wholly web-based (i.e., no applets) solution. You will need to dynamically generate images and image maps. This, however, will result in a huge number of server round-trips and will consequently result in some potentially crappy performance. You may have some options with Droplets -- which are remote GUIs -- but I don't know much if they can do this kind of imaging, and you'll still have higher server roundtrips.
If you can allow something to exist on the user's desktop, you should consider using an actual application -- there are tools to manage getting everything installed correctly without any user intervention, and the performance will be much better than running the whole thing in the browser. Because you already use an applet, it will probably be easier for you to port to a Java application.
I can spell. I just can't type.
My Dad is a radiologist and I've helped with 2 Java imaging solutions. I guess there is some chance one of them is yours.
....
1) Doctors are perfectly capable of following complex directions providing the directions are clear. We are talking about people with something like HS + 11 years of education.
1b) Office managers are even better since they are used to following complex and unclear instructions from doctors.
I think you are underestimating your target audience. The reason my Dad had problems was because he got 2 pages of directions that were unclear and poorly written stuff like:
Minimum system requirements:
Pentium 2 300 mhz
32 mb ram
16 mb video ram
without telling him stuff like:
a) would a pentium 3 work?
b) how does he know what he has?
Writing a good manual is probably more important to doctors than writing a good app
2) The people who are succesful in the medical field (especially with hospitals) generally sell overpriced equipment with very high levels of service: GE, Sieman;s, etc... even to hospitals that are financially distressed. I think your management is making a huge mistake in trying to go for a low price, low service model. Remember how much a doctor's time is worth per hour.
3) Depending on how high your price per seat is, if management is really freaked out by support issues you may want to include the hardware with the app. Make the thing an embedded system.
4) Flash's installation is automatic so I assume that fixes the problem. I agree with the other poster regarding Flash. Besides flash is really fast.
______________
BTW this is off topic but my experience with imaging solutions is that they use generic terminology. Doctor's don't like this. Call things what they are called within the speciality.