Microsoft Connected Health Conference

I spent all day yesterday at the Microsoft Connected Health Conference in Bellevue, Washington. I had to miss todays’ wrap-up sessions in order to attend a few other meetings, and was generally crippled through the whole event thanks to an airplane-acquired something-or-other, but it was still a very interesting day. One of the great things (if not the only great thing) about a sore throat is that it gives you an excuse to listen to other people.

The conference opened with a very nice panel, featuring Peter Neupert, Microsoft’s Corporate VP for the Health Solutions Group, Uwe Reinhardt of Princeton University, former Secretary of Health and Human Services Michael Leavitt, and David Kibbe of the AAFP. The topic was one that we’ve all rehashed dozens of times – how do we fix the US healthcare system, what role can Information Technology play, and if IT is valuable in the long term, what do we have to do to get it into place?

That’s an important distinction, by the way, that many events miss. Health IT adoption is not a goal in and of itself. The fact that my physician types rather than uses a pen is of no intrinsic value to me. The value comes in faster, more accurate, safer, cheaper and more effective healthcare.  That’s the goal – investments in Health IT are just one of several non-exclusive paths to a more functional healthcare system.

In the end, the panel concluded that it all comes down to Congress. When I was at HHS myself, we had all kinds of things we wanted to try, but we generally couldn’t – not enough money, or not enough Congressional authorization.  A great example of this phenomenon (which Leavitt mentioned in his remarks) was a recent program to require bidding for Medicare Durable Medical Equipment contracts. Congress actually authorized the program, which went into effect on July 1, 2008, and was projected to save the government about a billion dollars (and that from just ten products in ten regions). The DME industry went to Congress, and on July 17th the program was shut down. At CMS and on the AHIC Chronic Care workgroup we looked at trying to do a demonstration program for electronic patient visits, but were blocked because the Medicare telemedicine statutory restrictions are very, very tight.

Another point of (at least apparent) consensus on the panel was that while the Medicare reimbursement system was fundamentally flawed, its status as the 800 pound gorilla of the US healthcare system means that every hospital and small practice has to set themselves up around the Medicare fee for service model.  Fee for service payments are not good at aligning incentives between participants in a market. So what happens if (as some propose) we extend Medicare to the entire population? Will centralized ownership of risk lead to the kinds of preventive medicine programs and support for (appropriate) technology investment that will ultimately take cost out of the system? Or will the system ossify under Congressional supervision?

I offer no answers, of course. I’ll post some other thoughts on the conference later (paticularly around HealthVault and Amalga), but for now, I leave you with a great, if slightly paraphrased,  Leavitt quote from the keynote panel: “The problem isn’t a lack of political will. It’s an overabundance of political will. Whenever we get close to actually making a change people start unholstering their political will on each other.”

Sensible Certification

Sensible Certification is a new web site summarizing some of the key arguments against the rush for CCHIT certification. It’s not clear who runs it, but they make six points that I completely agree with (I’m not sure about Laika in point 4, but only because I’ve never used it). Here’s they are, verbatim:

  1. Slow down the certification definition process. There’s absolutely no hurry – the price of getting it wrong is far higher than any potential benefits of certification.
  2. Do not define certification language until meaningful use is fully defined. Meaningful use must drive certification and not the other way around.
  3. Certify the minimal things possible – focus on data, not software, technology, requirements, or functionality. Data sharing alone is the maximum that certification should go.
  4. Certification of data interoperability is good because information exchange is important. We should rally around NIST’s Laika tool as the maximum certification requirement and could be even less than that. Laika is open source, created by NIST and Mitre, approved by ONCHIT, and is supported by CCHIT.
  5. Certification of application functionality is very dangerous because it stifles innovation and writes into law software requirements that should be decided by the marketplace.
  6. If the full CCHIT certification requirements are written into the federal regulations it will mean the death of innovative healthcare information technology and will mean Physicians will end up paying for unneeded functionality and large, bloated systems.

I wish that – collectively, as an industry – we had the knowledge to say “yes, this is exactly what we need.” But we don’t, and we won’t. Certification has been historically successful  when you’re certifying something that can be effectively automated. Interoperability certification meets this criteria. Functionality and feature sets don’t.

iPhone Barriers to Mobile Health

Just saw a bit of a rant by M.G. Siegler on TechCrunch about Apple’s review process for iPhone applications. Apple has banned a variety of applications from the iPhone Apps Store, sometimes while allowing very similar applications through. Even for applications that don’t trigger arguments over appropriateness of content, the review process itself is lengthy and unpredictable. I can think of few other industries where the final step of the production process – putting the product into the hands of users – is held up for an indefinite period of time by an organization who has final say on the matter, doesn’t post the rules, and provides no guidance during the development process.

Here’s Siegler’s piece:

Let’s Stop Picking On Those iPhone App Reviewers. Actually, Let’s Not..

I mention it on this blog because I had an idea for an iPhone healthcare application that we’ve decided not to pursue because we’d have to go through the App Store approval process. The content wouldn’t have been objectionable, but we would have had to develop quite a few variations on the application for different projects, and the 1-4 week (or more) delay on approvals before we could push the app to real users made the whole thing seem a little less than viable. And I don’t think I’m the only one – a tremendous amount of the value in mobile health tools would come from very customized apps, designed for a particular clinical trial, a particular hospital, a particular quality improvement program, etc. As of today, Apple doesn’t make that possible.

That’s worth re-iterating: the Mobile Health applications that will have a real impact are going to be the little ones customized to particular projects across the whole healthcare value chain. Small contributions individually, but huge in aggregate.

Windows Mobile supports this model a bit more cleanly, but the hardware and software platform just isn’t as good (and I carry a top-of-the-line HTC Windows Mobile Touch Pro from Sprint, which is about as good as it gets if you need a keyboard).  I have things I want to deploy to patients and clinical investigators on iPhones and iPod Touches, and as of right now the logistics are making that impossible.

Maybe version 3.0 of the iPhone software will help out here. Come on, Apple.

Get Microsoft’s PDF add-on now

I use a set of sketchy Visio stencils to create mockups for the web applications we build here, and there have been two practical pitfalls to the sketchy stencil strategy.  First, the sketchy stencils created larger than expected print jobs — I’ve had a few close calls, nervously hovering over the color printer before a client meeting, waiting for my mockups to emerge.  Second, when exporting the mockups to PDF (through Adobe’s PDFMaker add-on), the PDF files tend to be large, and printing from the PDFs takes even longer.

I learned recently that Microsoft provides its own Save as PDF add-on for Office 2007, so I tried it out, and was very pleasantly surprised.  Microsoft’s PDF generator:

  • is free (unlike Acrobat)
  • generates PDFs in the blink of an eye (rather than a minute or so with Acrobat)
  • PDFs are 1/2 to 1/4 the size (based on my casual observations)
  • printing from the Microsoft-made PDFs is incredibly fast

That last printing point is a big one, since it allows me to circumvent Visio’s embarassing inability to perform simple print functions, like collating multiple copies.  (Rather than print in Visio, I can make a PDF and print from Acrobat Reader with ease.)

The Whiteside Rules for Biotech Entrepreneurs

On Thursday Evan and I spent the afternoon at the first session of the Harvard Medical School Dean’s Symposium. The topic was “Challenges to Successful Innovation and Translation” of medical research, and the highlight was a talk by Professor George Whitesides.  Dr. Whitesides is one of those very interesting products of Cambridge, MA – he’s written over 950 papers, and co-founded twelve companies, including Geltex (which was sold a few years ago for $1.3 billion) and a little biotech named Genzyme. So when he talks, it’s worth listening.

After his talk I asked him if it would be all right if I shared “Whitesides’ Rules” on this blog. He agreed, provided that I referred to them as “Uncle George’s Homey Rules for Entrepreneurs.”  So here’s Uncle George’s homespun advice for entrepreneurs. I’ve refrained from adding my own commentary, other than to type up my notes from the talk (and thus take no credit for various homey aphorisms):

  1. There are three strategies for entrepreneurship. You can solve a problem, you can develop a technology, or you can imitate or improve on something that already exists. Solving a problem is best, and keep in mind the difference between wants and needs in mind when you select that problem. A cure for Alzheimer’s is a need. A new car, less so.
  2. Radically new ideas are much harder than a “me too.” And they may or may not be more profitable and important. Genetic engineering was going to change drug development thirty years ago. It’s only now beginning to have a real impact.
  3. Finish the science before you start the company. Ideally, prototype the product and try selling it.  It’s easy to do engineering on a budget and on a schedule. Science is a little trickier.
  4. A customer is someone who will pay you money, and product is what s/he will pay you for. The most intimate, shared human experience is writing a check.
  5. Spend time as an apprentice. Learn from people who know – and have already made many expensive mistakes.
  6. Use Venture Capital as little as possible. Venture advice can sometimes be very helpful, but remember the overvaluation of capital. VCs get most of the money.
  7. Make simplicity an explicit strategy. But don’t go overboard. Start as simple as possible, then make it simpler.
  8. Remember the Money. If research is $1, development is $10-$100 and manufacturing is $100-1000.
  9. Technical development and market development are inseparable. Most scientists aren’t socially acceptable. Take them to the meeting, but use duct tape.
  10. Regulatory agencies are motivated to avoid risk. Nobody ever lost their job for not approving a product.
  11. Cash may rule, but time and risk discounted cash flow decides. Slow and uncertain are both bad.
  12. Cost of capital differentiates. Small companies are creative and have a high cost of capital. Large companies aren’t creative, but have a lot of cheap money. Synergy would be ideal.
  13. Learn elementary accounting. DCF, RONA, ROI, EBIT(DA) and CAPEX. Otherwise the business people will see you as shark food.
  14. Right now, and for 3-5 years or more, IPOs will be difficult or impossible. Plausible exit strategies are eveloping a company that sells stuff, or selling the company.

And that is what Dr. Whitesides thinks bioentrepreneurs should know.  Not all of these apply to Health IT, regular IT, and entrepreneurial activities that don’t have a science component. But most of them do.

This Twitter Thing

Last Tuesday I attended HealthCamp Boston, a really excellent 1-day “unconference” organized by the extremely energetic Mark Scrimshire.  The unconference format is really fantastic, provided that you get the right people in the room at the right time. In this case, we did, and the user-generated agenda included an excellent discussion on the new HHS rules for PHRs lead by David Harlow of HealthBlawg, a deep dive into design by Claudio Luis Vera, a session on consumer and clinician PHR engagement that John Moore and I put together (with John providing most of the good bits) and a discussion of Twitter’s role in social healthcare media led by Jen McCabe Gorman. It was great to finally meet some people I only knew from online, and I definitely made some new friends (including beers and a fascinating discussion after the meeting with Vivek Garg of TrialX). I definitely recommend these events, and at $25 a person it’s a lot cheaper than normal conference. We’ll be organizing one on software design in healthcare at HMS in the very near future.

I didn’t actually make it to Jen’s presentation on Twitter – I was over with the pharma crowd. But last Tuesday was the day I figured out what Twitter was good for. It’s not that I was a Twitterphobe, but I’d signed up because all the cool kids seemed to be doing it. I followed a bunch of people, and set up this blog to advertise posts as tweets, and that was about it.

The eureka moment came during the first session of the day.  Since attendees were encouraged to tweet about the event, I brought up Twitter on my laptop and started writing tweets that summarized the interesting points of the discussion, using the #hcbos hash tag to identify them to the other conference-goers and interested outsiders.  Then I started following the hash tag in another window, and saw a few other people in the room were also tweeting. And here’s the cool bit – we were generally picking up on the same stuff. Not completely, but with at least 80% overlap. And just like that, Twitter was validated as an information source. I just had to see it in action.

For the rest of the conference I watched the hash tag and picked up some of the key sentiments from the sessions I missed. The next two days I followed the tags for the Health 2.0 conference, which I hadn’t attended. While I certainly missed the details, I definitely picked up the flavor of the event.  And in the week since, it’s been a great way to maintain contact with all the new people I met at #hcbos.

So that’s that – I’m not yet a complete Twitter addict, but I think I get it. Of course, now that I’m here, I’m seeing the dark side as well, as it becomes another vector for spreading swine-flu hysteria. As is often the case , xkcd gets to the heart of it.

Jaunty Jackalope for Java: Writing Java Code on Ubuntu

If you’ve been reading the tech news lately, you have probably noticed that Ubuntu is taking the Linux Desktop world by storm. Aren’t you just a little bit curious about why so many people, like myself, have dropped Windows and never want to look back? If you are, did you know that it’s actually very easy to get a PC, even one long past it’s prime, working in Ubuntu?

This article is designed to show you how you can be get a Java development environment up much faster than you could on Windows or OSX. Unfortunately, for a large part of the Java developer community, Linux remains a dark art. I am writing this article with the hope to reveal the lesser known secrets of Linux and persuade you to give it a try.

Poorly-Kept Secret 1:
What Windows Considers 3rd Party, Linux Includes For Free

Windows has recently gotten better with Vista as far as including useful basic applications, but I still have to download various 3rd-party applications:

  • Drivers: Graphics, Chipset, Sound, Network
  • Firefox: …even if you prefer IE or Chrome, how can you write webapps without Selenium?
  • A text editor that doesn’t suck, like TextPad.
  • File Readers: Acrobat, Flash, etc
  • WinZip and WinRar
  • PuTTY
  • An SCM client: TortoiseSVN
  • Java
  • MySQL
  • Maven
  • Eclipse
  • An Office Suite that can edit Office 2007 file formats.

Many of the entries on the list are non-free. While we all know WinRar won’t shut down if you don’t pay them $29 in 30 days, you are violating their license if you don’t.

In Ubuntu, all of these are available from the Debian repositories, allowing you to install them without a single manual download. Most of common tools are actually part of the default install.

Poorly Kept Secret 2:
Nearly every command in *NIX can be executed via GUI or command line.

If you’re a professional programmer or highly technical person, chances are you have experimented with Linux in the past. A decade ago, Desktop Linux was much more difficult than it is today. While I love Linux’s powerful command-line tools, modern Linux distributions, like Ubuntu, are so advanced, that everything can be configured via a GUI. The command line is optional. I’ll even be bolder and say that configuring Ubuntu is even easier than configuring Windows Vista.

Poorly Kept Secret 3: Debian APT

Configuring a Windows machine is a pain. I have a checklist of URLs of websites for the applications listed above in which I have to visit, download an installer, and install dozens of programs…usually with a few reboots thrown in.

Downloading and installing free software is a foreign concept to Ubuntu users. Everyone who uses a Debian-based Linux distribution is accustomed to using the Advanced Package Tool (APT) to install the bulk of their applications.

Simply type:

sudo apt-get install [package name]

…where “package name” refers to the name of the package on the debian repos and the system will download the package, it’s dependencies, and install them for you. In isolation, typing apt-get install eclipse isn’t a great deal easier than the windows procedure of downloading and unzipping eclipse. However, all the commands needed to build a workstation can be written to a single script for batch execution.

APT is similar to Windows Update, except that it is better in every way:

  1. It actually downloads the right drivers for your hardware, whereas Windows/Microsoft Update doesn’t support many devices.
  2. It supports nearly every free application. Just about every application I use is on the Debian repos
  3. Driver and software updates are available much more quickly than Windows Update.
  4. It has a command line (apt-get) and GUI interface (Synaptics).

Creating your own installer script

To jump-start your Ubuntu experience, I have pasted the script I use to setup an Ubuntu box. For bash, anything to the right of # is a comment. Paste the commands below into a text file with a .sh extension (it’s just a convention on *NIX) and execute:

chmod [your script file name] +x

…to make it executable.

My Build Script

#forces APT to search for new packages instead of relying on its cache.
sudo apt-get update
#upgrade existing components.
sudo apt-get upgrade
#MySQL Server + client
sudo apt-get install mysql-server-5.1 mysql-admin mysql-query-browser
#installs compiler and adds to path
sudo apt-get install sun-java6-jdk
#run applets
sudo apt-get install sun-java6-plugin
#our favorite build tool
sudo apt-get install maven2
#my favorite IDE
sudo apt-get install eclipse
#svn client (and server)
sudo apt-get install subversion
 
#flash plugin
sudo apt-get install flashplugin-nonfree
#allows you to view *.chm files
sudo apt-get install gnochm
#supports stronger RAR compression and newer formats.
sudo apt-get install unrar
 
#C compiler which allows you to build from source
sudo apt-get install build-essential
#ssh daemon for remote access
sudo apt-get install ssh
#My other favorite Mozilla application
sudo apt-get install thunderbird

Remove and add packages as needed.

Once you’re ready, execute the command. Be sure to watch the script for the first few minutes as the MySQL installer will prompt you for your root password and the Java install will require you to accept their terms.
After Java has been installed, go to lunch. On my machine, this downloaded over a gigabyte of packages. On my computer, this script completed in less than 30 minutes.

Immediately after Ubuntu was installed, I was checking out code and coding in Java and MySQL in less than an hour. Can you do that in Windows or OSX?

Advanced Topics:

Install everything with one command:

In the example above, I broke the packages into separate commands to allow commenting.
If you want to speed things up, have APT install all the packages with one command:

sudo apt-get install mysql-server-5.1 mysql-admin mysql-query-browser sun-java6-jdk sun-java6-plugin maven2 eclipse subversion flashplugin-nonfree gnochm  unrar build-essential ssh thunderbird

It’ll run a bit faster and only require a single prompt.

Perform the install remotely:

Install SSH before installing the other packages (sudo apt-get install ssh) and then you can perform the entire procedure remotely. If you’re using Windows, you’ll need to install PuTTY to SSH into your machine.

I personally prefer to perform the installs remotely as it allows me to continue working at full speed on a different machine while APT upgrades and configures my machine.

Test everything out

If you don’t see any errors, everything was successful. Because we’re paranoid, we like to test things out ourself. Try running the following commands:

mvn --version
javac --version

You can start eclipse from the shortcut in the programming menu.

Automating Manual Installs of Java Software

The procedure above is a rapid way to get started writing code in Java. Serious Java developers need more precise control over their JDK and tool versions than the Debian repo offers.

I personally manually install eclipse and maven rather than get them off the repos in the script above because I want to use the latest bleeding-edge version. Even downloads are scriptable:

#download binary
wget http://mirror.sourceshare.org/apache/maven/binaries/apache-maven-2.1.0-bin.tar.gz
#extract binary.
tar -C /tools/ -xvzf apache-maven-2.1.0-bin.tar.gz

The command above will download Maven 2.1 and extract it to /tools/.

Setting PATH

When you install software manually, you have to set the path yourself. To make life easier, I create a script named .environment_variables and include it in .bashrc.

My .environment_variables file:

#Commands written to separate file so that source can be imported by .bashrc for shell and .profile for GNOME and startup.sh
 
export JAVA_OPTS="$JAVA_OPTS -Xms128m -Xmx1024m -XX:MaxPermSize=512m"
 
export ANT_HOME=/tools/apache-ant-1.7.1
#Helps Jetty
export MAVEN_OPTS="-Xms64m -Xmx1024m -XX:MaxPermSize=512m"
export JAVA6_HOME=/usr/lib/jvm/java-6-sun-1.6.0.10
export JAVA5_HOME=/usr/lib/jvm/java-1.5.0-sun-1.5.0.16/
export JAVA_HOME=$JAVA6_HOME
#imported by IntelliJ
export M2_HOME=/tools/apache-maven-2.1.0
export ECLIPSE_HOME=/tools/eclipse
 
#IntelliJ
export JDK_HOME=$JAVA6_HOME
export IDEA_HOME=/tools/idea-9732
 
export CATALINA_HOME=/tools/apache-tomcat-6.0.18
export JBOSS4_HOME=/tools/jboss-4.2.3.GA
export JBOSS5_HOME=/tools/jboss-5.0.0.GA
export JBOSS_HOME=$JBOSS4_HOME
 
#BDB
export LIBDIR=/usr/local/BerkeleyDB.4.7/lib
export LD_LIBRARY_PATH=$LIBDIR:$LD_LIBRARY_PATH:/tools/yourKit/bin/linux-x86-32
 
export PATH=$PATH:$ANT_HOME/bin:$M2_HOME/bin:$ECLIPSE_HOME/:$IDEA_HOME/bin

To import .environment_variables, include the following line in .bashrc, .profile, or any other scripts:

...
source ~/.environment_variables

Conclusion

Ubuntu makes configuring a developer’s Linux workstation incredibly easy. Linux is not only a powerful OS for Java development, but it’s even easier to configure than OSX or Windows. Because nearly everything you need is free and everything is scriptable, system setup can be completely automated, allowing the user to build a useful workstation from a base install from a single script.

Additional Resources

Debian APT Reference
Linux.com’s APT primer

Feedback is appreciated. Please feel free to leave comments.

Oracle, Sun and Open Source

The Wall Street Journal ran an article today (registration required) on Oracle’s acquisition of Sun and it’s impact on open source, particularly MySQL. From my perspective, the coolest thing about this article is that I’m quoted in the third to last paragraph. Of course, they took a fifteeen minute conversation and boiled it down to the idea that while many people would likely be willing to pay a small fee for MySQL, if the costs get too high they’ll switch to something free.

I’m not as worked up about this as the general open source community seems to be. The trend towards inexpensive, open-source, commodity databases is here to stay. MySQL happens to be the leader right now, but there are several other options out there, including PostgreSQL (and it’s commercial variant, EnterpriseDB), Apache’s Derby, Oracle own open source BerkleyDB embedded database, and a few others.  Each of these fits very different niches, but it’s not an ecosystem of one. If Oracle was to take extreme measures against MySQL now they might be able to delay the commoditization of the database market by a year or two, but no more than that.

But I don’t think they’ll even do that. Oracle didn’t buy Sun for MySQL – they bought it for Java and, possibly, for the hardware business. They could have had MySQL for a lot less a year ago, and they’ve owned an important MySQL component, InnoDB, for several years with no negative impact on MySQL.  Picking up MySQL was just a bonus, and it could open up some interesting opportunities for Oracle. Not so much at the low end of the market, where they already have products, but as MySQL users find themselves needing some of the very high-end features where Oracle leads the market. One example that’s particularly important in healthcare: Oracle supports a feature called “Transparent Data Encryption”, that allows seamless encryption of database tables on disk. It’s an expensive, enterprise-edition add-on, and MySQL doesn’t have anything like it.  As healthcare organizations gear up to meet the new breach disclosure guidelines from FTC and HHS, that’s going to become an attractive feature.

One small correction to the WSJ article is that I’m not “an IT Director at Children’s Hospital, Boston”. I’m the Director of the Informatics Solutions Group at CHB, which is actually quite different – we’re not part of the IT department at all (we came out of the informatics research world).  We’re still substantial users of both Oracle and MySQL, and the CHB IT department has been very helpful over the years as we’ve juggled various bits of infrastructure for different projects.