PatrickMD.net

Thoughts on Medicine and Software

PatrickMD.net Thinkpad with Stethoscope

Google’s Voice Search

November 15th, 2008 by Patrick
Respond

Google has migrated their old Voice Search application to the iPhone as part of their Google Mobile App software. Alex Chitu has a nice screenshot of the original interface from 2002. Google continues to run GOOG-411.

The core voice recognition algorithms used in the industry are mostly the same ideas optimized over the last 20 years, benefiting from the increases in processor power and storage. The big difference is in the volume and nature of data collected for the acoustic and language models. Google is legendary for their insatiable appetite for all kinds of data. The recent debut of a many-to-many translation service shows that they have plenty of data for advanced language models.

It’s not clear that speech recognition is the best tool for undirected tasks (i.e. interpreting responses to “What do you want to search for?”) I recall a few startups that used cheap human transcribers instead of speech recognition, such as Jott.

I plan to poll people with iPhones to see if they find the voice search feature worth using more than once. I don’t think I will get much out of it personally, because A) I type much faster than I speak (even on the iPhone), and B) I often search for proper names and abbreviations which are likely not high up in the language model.

Tags:   · · · No Comments.

Consultant Recommended Orders, Coming to a Hospital Near You?

November 15th, 2008 by Patrick
Respond

Martin Were, the top winner of the AMIA 2008 Student Paper Competition, tackled the problem of improving the implementation of consultant recommendations. As an intern this topic is near and dear to me.

When a consult is called, particularly in a large academic hospital, the consultant will generally leave a note with recommendations. While consultants can input orders directly for the patient, it is considered best for the primary team to enter all orders so that they have a full understanding of what treatments the patient is getting. Exceptions are made for complex orders, such as dialysis instructions and chemotherapy dosing.

According to Dr. Were’s research, only half of all geriatric consultant recommendations are followed. Maybe the primary team doesn’t agree. Or, the team didn’t see all the recommendations. In some cases it’s not clear how to dose a recommended medication.

At the university hospital, Were extended the existing CPOE system to allow a consulting service to enter actual orders. This forced the consultants to be specific with their recommendations. The primary team was prompted to accept or reject the suggestions. The picture above is Figure 4 from his paper showing the primary team interface.

Were piloted the tool with geriatrics consultants and the hospitalist service. Intervention patients had 249 recommendations versus 192 for the controls (p<0.05). 78% of intervention recommendations were implemented versus 59% for controls. Providers indicated in a survey that the system improved quality and saved time.

I would like to see Consultant Recommended Orders (CROs) implemented in more hospitals. I'm curious to see what objections other physicians have to this idea.

Update: The full paper will appear in the next issue of JAMIA. A preprint is available at the JAMIA website for subscribers.

Were MC, Abernathy G, Hui SL, Kempf C, Weiner M. Using Computerized Provider Order Entry and Clinical Decision Support to Improve Referring Physicians’ Implementation of Consultants’ Medical Recommendations. AMIA 2008 Symposium Proceedings. 2008. p. 803. PMID 18952934. [PDF]

Tags:   · · · · · No Comments.

MedLEE commercialized

November 14th, 2008 by Patrick
Respond

I saw on HISTalk this week that Columbia University’s MedLEE system is being commercialized by a new startup with the somewhat dry name of NLP International Corporation. It appears that Columbia’s Science & Technology Ventures office has helped create this startup and granted it an exclusive MedLEE license.

MedLEE has been around for awhile, so I’m surprised that this commercialization is happening now. It’s a great system that I used for my AMIA project. I hope this startup can build some great applications and deliver benefits to the wider industry, with a reward for those who worked so hard to build it over the last decade-plus.

You can try a MedLEE demo here.

Tags:   · · No Comments.

NLP Making Indiana MRSA Reporting Very Accurate

November 14th, 2008 by Patrick
Respond

A paper I really liked in the Student Finalist competition at AMIA 2008 was Jeff Friedlin’s project to use NLP processing to automate the identification of MRSA lab reports for state-level reporting. The Regenstrief Institute runs an electronic lab reporting system at the Indiana Network For Patient Care, which is a regional center that collects HL7 lab messages from hospitals throughout Indiana. The state of Indiana now requires that any positive MRSA result (not just invasive cases) be reported. The existing system had been using LOINC codes to identify positive cases. This was missing many positive reports because of lab systems that communicate in free text, usually with OBX segments in the HL7 message.

Dr. Friedlin sorted through all the types of lab messages received by the regional center and created an NLP system built on Regenstrief’s REX processor to identify those with MRSA positive results. He then tested his system with one year’s worth of data. To calculate accuracy he reviewed 64,554 messages himself to generate a gold standard. The results were fantastic, with a sensitivity of 99.96%, a specificity of 99.71%, and a PPV of 99.81%.

One side effect of this great work is that it led to a huge increase in positive MRSA reports for the state, because so many were being missed by the old system. He showed a slide with this increase during the presentation but I don’t have the numbers available. Reportedly his presentation later in the conference overflowed.

Friedlin J, Grannis S, Overhage JM. Using Natural Language Processing to Improve Accuracy of Automated Notifiable Disease Reporting. AMIA 2008 Symposium Proceedings. 2008. p.207-11. PMID 18999177.

Image Credit: estherase on Flickr

Tags:   · · · No Comments.

Facebook App Shares Your Medline Publications

November 12th, 2008 by Patrick
Respond

I was one of the Student Finalists at AMIA 2008 this year, and I was very impressed by some of the other finalist presentations. One of my favorites was by Steven Bedrick at OHSU. He wrote a Facebook application called Medline Publications. The idea is that each user lists their Medline publications for the app. The app then finds out who among your friends has authored related publications, using MeSH terms from your articles to determine what your interests are.

Admittedly, if you are not a biomedical academic this is of limited utility. (I only have authored one article in Medline.) However, it’s easy to extend the concept to include articles you have read or are interested in. Social applications like this one that highlight previously unseen commonalities help demonstrate the power of a social network.

Bedrick, S., Sittig, D.F. (2008) “A Scientific Collaboration Tool Built on the Facebook Platform” American Medical Informatics Association Annual Symposium Proceedings (In Press)

Tags:   · · No Comments.

Social Networking for AMIA 2008?

October 22nd, 2008 by Patrick
Respond

I am attending AMIA 2008 this year on Sunday November 9, presenting a paper on using a medical language processor to judge a patient’s smoking status. I am also in the student finalist competition Sunday morning, so onlookers have not one but two opportunities to hear me talk.

A recent Clinical Cases post noted that a recent NEJM conference is using Ning to socially network attendees ahead of the event, and another conference is using Facebook.

I’m not aware of anything similar for AMIA’s conference, but if others do please let me know.

Tags:   · · No Comments.

Walking Intensive Care Patients Early

October 15th, 2008 by Patrick
Respond

I thought this was a great picture in JAMA recently. It shows a patient on mechanical ventilation via ET tube and with an arterial line walking in the ICU. Admittedly the patient has a lot of help; there is at least one nurse and one respiratory technician. However, this was not even considered possible in the past for a laundry list of reasons, including large ventilators and non-portable sensor equipment. Despite evidence that bed rest quickly leads to muscle mass depletion even in healthy patients, frequently the plan is bedrest with sedation until the patient is weaned from the ventilator.

The article with the picture reviews the past literature and talks about efforts to mobilize patients early to get them out of the ICU faster. It’s a great read.

Needham DM. Mobilizing patients in the intensive care unit: improving neuromuscular weakness and physical function. JAMA. 2008 Oct 8;300(14):1685-90. PMID 18840842.

Tags:   · · · No Comments.

How to Install WP-SuperCache on Pair

October 12th, 2008 by Patrick
Respond

Recently Matt Cutts discussed difficulties he had with WP-SuperCache on his Pair Networks hosting account. I use PairLite, which is hosting from the same company with less support and no SLA. I love Pair because they provide shell access to FreeBSD and an Apache webserver.

The problem Matt runs into is that WP-SuperCache, like many Wordpress addons, assumes that it has write access to the blog directory. This assumption makes Wordpress very easy to configure for users, but weakens security and has led to various security holes in the past.

I set up my WP install with no group or anyuser write permission (0705 for you Unix types.) This disables the ability for me to edit the configuration, themes, and plugins from a web browser, but I can handle that. Only wp-content/uploads has write permission, for images.

So, how to install WP-SuperCache from a FreeBSD shell? Here’s the step-by-step:

  • Download wp-super-cache.0.8.3.zip and unzip it to wp-content/plugins/wp-super-cache.
  • Change your current directory to “wp-content”.
  • Type: ln -s plugins/wp-super-cache/wp-cache-phase1.php advanced-cache.php
  • Type: cp plugins/wp-super-cache/wp-cache-config-sample.php wp-cache-config.php
  • If you want to allow WP-SuperCache to edit the config for you, type: chmod 777 wp-cache-config.php.
  • Create the cache directory: mkdir cache
  • Set the cache permissions: chmod 777 cache
  • Create cache/.htaccess with these contents:
# BEGIN supercache
<IfModule mod_mime.c>
  AddEncoding gzip .gz
  AddType text/html .gz
</IfModule>
<IfModule mod_deflate.c>
  SetEnvIfNoCase Request_URI \.gz$ no-gzip
</IfModule>
<IfModule mod_headers.c>
  Header set Cache-Control 'max-age=300, must-revalidate'
</IfModule>
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType text/html A300
</IfModule>
# END supercache
  • Update your blog’s .htaccess file with these additional lines (the RewriteRules for fancy post links should already be in place):
# for supercache
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} !.*=.*
RewriteCond %{HTTP_COOKIE} !^.*(comment_author_|wordpress|wp-postpass_).*$
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz -f
RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz [L]

RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} !.*=.*
RewriteCond %{QUERY_STRING} !.*attachment_id=.*
RewriteCond %{HTTP_COOKIE} !^.*(comment_author_|wordpress|wp-postpass_).*$
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html -f
RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html [L]
#end supercache

Once the above steps are done, you should be able to activate the plugin and go to the Options screen to turn on WP-SuperCache. That’s it, it should just work.

If you want to wipe the cache directory, you will find you cannot do so from the shell since the cache files are created by the cache. So, make WP wipe it for you. Go to Options, choose Super Cache Compression Enabled, hit Update, then Super Cache Compression Disabled, hit Update, and the cache will be clean. UPDATE: Just noticed the “Delete Cache” option on the top bar of the admin screens. That should do the job easily.

Let me know if this works for you in the comments.

Tags:   · · No Comments.

Finally! Best Sync Yet for Google Calendar to iPhone

October 12th, 2008 by Patrick
Respond

I keep a network-accessible calendar with Google Calendar. I also carry an iPhone. Here’s what I want:

  • Instant sync of calendar data when I make changes to either the iPhone or Google Calendar. Waiting until I dock with iTunes is too long.
  • Availability of calendar data when the iPhone is out of internet range.

I wrote a few months ago about synchronizing Google Calendar to the iPhone and my method was tortured and ineffective. Updates would only occur when I ran iTunes to sync, which I only do once a month or so.

I just learned about NuevaSync, which cleverly uses the new Exchange functionality in the iPhone 2.0 update to provide instant over-the-air calendar sync. I set up an account in about five minutes. You provide your email address and allow Nuevasync access to your Google Calendars via AuthSub (so they never have your Google password.) Then you set up the iPhone to use NuevaSync as an Exchange server for calendar data, and that’s it. It’s simple and effective.
[Read more →]

Tags:   · · · No Comments.

Switched! (to Google Chrome)

October 12th, 2008 by Patrick
Respond

Matt Cutts recently wrote a nice piece listing the advantages of Google Chrome as a primary web browser. I’ve been using it for the last few weeks and I’m sold. Why?

  • Chrome feels faster. There is less disk thrashing than when I use Firefox, especially when I leave the browser open for long periods. I also am a heavy user of Javascript/XMLHttpRequest applications, which run a lot faster with Chrome’s V8 Javascript engine.
  • Keeping each tab in its own process means that I don’t lose my entire browser state due to a Flash hiccup. Firefox’s solution to restore tab state after crashes never worked well for me, since many of my open tabs are the result of POST and query requests which can’t be easily refetched. I have not yet have Chrome crash due to a core browser problem; it’s only due to Flash, and only twice so far.
  • I don’t use bookmarks. I just type what I want in the URL bar, and whatever page I am looking for shows up quickly either due to URL history search or Google search. David Pogue of the NYT just publicized this “unknown” tip. Chrome has the best URL bar implementation I’ve seen.
  • I like the spare layout. The download manager is less obtrusive than Firefox, with downloads appearing at the bottom of the current window instead of in a separate pane.

To deal with the loss of the AdBlock plugin, I switched to using Privoxy, which is a fast local proxy for stripping out excess images and scripts.

There are some tasks I will continue to use Firefox for, specifically the Web Developer plugin and Firebug. These two utilities combine to make the best web debugging environment I know of.

Tags:   · · No Comments.