Announcing Open Glaze


I am here at the first ever Quantified Self Conference and I am announcing a new Open Source Game Layer project called Open Glaze.

Here are the basics of my Game Layer philosophy that are influencing my work on Open Glaze.

  • This is not one monolithic system. Its a Unix software development philosophy. It is a series of tools that do one thing really really well, and you can chain them together to do interesting stuff.
  • This is not intended to be a platform play. Platforms are intended to be profit sources which is why they are so popular in start-ups, but I am not convinced that this model works in this area.
  • I suppose you could make a platform play out of Open Glaze if that is what interested you.
  • I am substantially non-committal on the Open Glaze software sub-projects. I will probably be open sourcing almost everything (unless there is a very good reason not to) and if the projects are not popular or useful, and cannot attract other maintainers, I intended to abandon them.
  • Everything here, is part of the huge experiment that I call Programmable Self experiments that do not work will be taken out back and shot.

What -is- Open Glaze? It is a series of tools:

  • TokenGeo. This is a website that lets you create reverse geo tokens. Take a look at the reverse geo caching box, for a reference. The basic workflow is, create token stickers that use QR code-based URLs that  to lead you to a place using your GPS enabled smart phone, and then, once you get to that spot, open up some new spot on the Internet (open a secret URL).
  • 1 to 11. (because this one… goes to eleven) is a place to create your own Quantting web forms, that log the results to Twitter in the Graffiter syntax.
  • LinkedLast is a method for using your Twitter feed as a controller for the destination of a QR code.
  • StatusPresent is a method for using your Twitter feed as presentation software, and to crowd source tweets for Q/A sessions. (not sure how this relates to healthcare frankly… but it was an experiment)
  • WalkOrGive is a website that uses the fitbit API and the Twitter API to create “giving performance gambling”. If you meet your step goals for the week, walkorgive will tweet your success to your stream and ask your followers to make donations to your favorite charity (using a PayPal link) in your honor.
  • Of course, more to come

Programmable Self Reading List


I am preparing for my talk at Quantified Self about my work on Programmable Self. I was asked to make a “reading list” for the people who were interested in this subject so I wanted to create that here. Please add links in my comments section for titles that I have omitted!! Requirements for inclusion are simple. Anything that applies to using technology to change your own behavior. I would also suggest that you get a kindle from Amazon. Kindle will run as software on the iphone, ipad, and android, as well as OS X and Windows. So you do not need to buy a new device if you do not want to, but buying the kindle edition of the following books will probably save you more than $100.

My goal here is to have something relevant no matter what your background. If you are a behavioral economist, then there is some cool gamification stuff here. If you are all about gamification, then there is some cool behavioral economics stuff here… Please help me make this list even better with comments!! (thanks to Lesath for pointing out a broken link!!)

While there are some “gamification” books here, most of this has to do with recent research into human motivation.

I would also take a moment to check out BJ Fogg’s work from the Persuasive Technology lab at Stanford. What I like about BJ’s work is that he seems very focused on making simple models for clear communication. BJ did a good job convincing me that most people have something different in their head when you say “behavior” or “engage” or “change”. Given that, you need a kind of simple vocabulary for talking about what behavior intervention your are discussing. So you should understand the following basic concepts.

I have decided that this is a good place to keep links to important videos after watching Jane McGonigal (Super Better above) give an awesome TED Talk.

If you feel like learning about programmable self from a conference, then I suggest a couple of options:

I will add more links as time goes on. What did I miss? Leave me a comment with your favorite resources for behavior change.


Medsphere OpenVistA meaningful use certified

I am happy to mention that Medsphere has received certification for their OpenVistA EHR system.

As far as I know, this is the only meaningful use certification for Open Source software, for the in-patient setting. All of the other certifications that I have mentioned so far have been ambulatory.

Congratulations to the Medsphere team. This is an important accomplishment, and a milestone for the Open Source health software community.


Health Foo Camp

I am happy to announce that I have been invited to the first ever Health Foo Camp. There is not even a web-page for this yet, but it has been previously announced on the RWJF blog

FOO stands for Friends of O’Reilly. It is an invitation event that puts some of the top geeks and thinkers in the same room. This is the first health-focused FOO camp.

This is a pretty big deal for me. The moment I first heard of Foo Camp, I realized that going to one was on my bucket list.

This was similar to the first time I realized that Regina Holliday sometimes auctions off her art. I realized that being wealthy enough to win an auction of one of her art work was my new definition of being rich… I also secretly covet one of her custom jackets.

Anyways, when something like this happens I begin to realize that maybe I am making the difference I want to with my life. It looks like people are finally taking this whole Open Source Health Software thing as seriously as I do. Its a pretty awesome feeling and after sharing a celebratory dinner with my wife, and soaking up the good news for a few days, I thought my readers might like to share in my sense of satisfaction. At least I think I have readers….


OpenMRS rocks Google Summer of Code 2011

With the following worthy projects:

Very impressive lineup. If this is all OpenMRS did this year, this would be an impressive list, but this is just the student projects sponsored by Google.


Hacking data: showing patterns in kids health

Here is my submission for the Local Children’s Data Health 2.0 developer challenge. The challenge was to make data available through come alive.

Generally, the red circles correspond to the percentage of child allergy suffers who had -seen- a doctor, but had no specific plan to address their condition. The red tags, are healthcare providers from the NPI database that are listed as experts in kids allergies… the top of the field for asthma treatment. We are using these “super experts” as a proxy for the availability of specialist care for allergies generally. Notice the under-served areas… The specialist are clustering in the high-population areas. Hopefully this map will inspire an expert to move to Eureka, or Santa Maria..

Here was my process for this for my hack:

  • I would only use Open Source software or Open APIs. The idea here is to show just how powerful FOSS tools can be in health data analysis.
  • I have just created the best API to the National Provider Identifier database at, so I have this rich datasource that previously has not been available as an API.
  • I wanted to target something from that was directly related to the availability of healthcare, something that you can measure geographically using the API.
  • I chose Asthma, because this is something that clearly responds to treatment.
  • I wanted to document my process to show how easy this kind of analysis is with the right tools.

Ok here’s what I did…

  1. First, I browsed for asthma information. That leads you straight to this analysis of asthma hospitalizations for young children over the last few years.
  2. Then I started digging for source data. It looks like the California Health Interview Survey was a substantial source of the data.
  3. They offer Public Use Files of the original survey data. I signed in, and the terms of use for the data were reasonable, and not contrary to my purposes or Open Source. So I signed up and went to download the data.
  4. Sadly, the data was only available in three proprietary data formats, Strata, SPSS and SAS. This was obviously designed for academics that think using proprietary software is ethical and normal. Thankfully there are other options. The R project is where I usually turn first for stats help, but I actually found that there was an Open Source SPSS alternative called PSPP. Using PSPP I was able to open the SPSS data file. Victory for Open Source! It would be nice if organizations like CHIS would release in simple XML or CSV, which is much friendlier to hackers and people who believe in software freedom.
  5. My feeling of elation was short lived. The data had no geo-coded information. Which makes sense, that would make re-identification much easier. There had to be another way to get geo-coded data.
  6. And there was. AskCHIS is a powerful data reporting tool that allowed for xls data download. Again, I am amazed that CHIS would chose to run with a proprietary format without an open alternative. They used alot of advanced xls layout options that meant that an export to CSV would never work. An API would be even better, but at least CSV would allow me to actually parse a file instead of cutting and pasting which is what I ended up doing.
  7. But I had access to lots of data. I could see several different measures of asthma that I could have used in my mashup. This included lots of stuff like missed school days, emergency room visits, diagnosis of asthma, symptoms in the last twelve months… etc etc. If CHIS had given this data up using an API, I would have been able to merge the various asthma measures into an overall asthma status score… but it would have take a week of cutting and pasting to do that manually.
  8. So I had to choose one data point and run with it. I chose “Health professional ever provided asthma management plan“. This was asked to parents whose kids already had a doctor who was “treating” the asthma. I thought this was an interesting question because it seemed to correlate strongly with doctor-availability, something that I had good geo-coded data on.
  9. Now what provider data should I compare it to? Using I can easily grab a list of all/most of the doctors in California who specialize in treating allergies in children I decided to use that as a proxy for “available allergy specialists”. Of course, I had a serious advantage here, because I had already done the work of changing the NPI database into something I could access using an API (that is the idea behind This easily saved me 30 hours of work on this project alone.
  10. So now I have the data I want… but what now? I had addresses for the doctors and clinics from the NPI database, but the asthma data was coded by county. No problem, I just needed to geocode the counties into longitude and latitude. If I had a rich data source from CHIS, it would have been worth writing a script to do this, but since I was using cut-and-paste data, with about 75 rows, it was much simpler to just manually geocode everything. Which is what I did. More cut-and-paste.
  11. But now I have geo-coded data for both data sources.
  12. I needed a method to graphically display geo-coded scoring. This is pretty easy to do using proprietary GIS tools, even costless tools like Google Earth. But I wanted to keep things simple and Open Source at the same time. Enter the EInsert extension to Google Maps API v2. This allowed me to overlay png circle graphics on a Google Map, and size them in accordance with their percentage (bigger is worse, it means more of the kids did not have asthma plans).
  13. Then something tickled my brain. Using circles to represent scaled data is problematic. There is solid research indicating that humans have trouble estimating the area of circles in relation to each other… So I used the ratio suggested by James Flannery to counter this effect. Now the circles are sized in a way that indicates their relative meanings in a somewhat more appropriate way.
  14. Now I had a Google Map that displayed data regarding the frequency of plans as meaningfully sized circles over the California state. This data shows some predictable effects. First, the worst areas are either very urban or very rural. Exactly the places that have trouble attracting medical talent. That means that on this map, Ureka and Los Angeles urban counties have similarly sized circles.
  15. Now all I needed to do was overlay the doctor data on this map. This turned out to be pretty simple. I already have a link to provide a Google Map display of any small search on For instance, here is the link for the map for the search on allergists in California. All I needed to do was copy the html and javascript for the doctor map and integrate the map with the Asthma data map I had already made.
  16. So far, that maps looks pretty good. However, there is no easy way to tell which county, specifically, a given circle represents. I decided that the simplest way to address this was to dynamically rewrite the png using the gd library of php. I would pass the php script a label, and it would generate a circle with a label on it. This would allow me to label all of the circles on the map. As usual, stackoverflow provided a quick and dirty solution. (update 4-20) I realized that the label should show both the name of the county, and the percentage without a plan… now it does.

Take a look at the final result.

Notice that the shapes scale automatically as you zoom in. Try zooming in to Los Angeles or San Francisco to compare the compacted counties more closely. Also note that you can actually get the name of particular doctor that specializes in the treatment of asthma directly from the map. If you click the link you can get all of the contact information from

Which brings us to the point of this exercise.  A better view of the data can prompt change.

If you are a parent of a child with Asthma in one of the “big circles” you need to know that the long term treatment of Asthma requires a plan. If you do not have a plan, the reason might be that there are not enough doctors around you to provide the help you need. This map can put you in touch with the nearest expert.

If you are a doctor, who specializes in childhood allergy treatment, this is an opportunity map for you. Eureka is much smaller than LA or San Francisco, but you would have a near monopoly on a population that needs help with asthma. These people do not have the same access to specialized care and that might be a business opportunity for you. Moreover, a doctor who chose to focus on the urban areas in the larger cities might also be able to gain patients and profit. The data here shows that while there are lots of experts -around- the densely urban areas they are not meeting the demand for care. If a doctor could find a way to make money on a Medicare/Medicaid population in these urban areas, this might also be an opportunity.

Seeing the health data in a new way can provoke change. I hope you think my application is cool and sexy, but frankly I do not give a damn about that. I want to make a difference, not toys.

People remember Florence Nightengale as the mother of modern nursing. But she once made a diagram that changed the way people thought about war. It was that diagram that gave her much of the political clout she needed to create the field of professional nursing that we know today.

I have made the NPI data more liquid with Organizations like CHIS need to a much better job of making their data accessible. If I had been able to access the data from AskCHIS in a normalized and open format using an API, I would have been able to make mapping system that would allow the overlay of -any- type of doctor with -any- health data measure that they survey.

So that leaves me with a call to action for three groups: Patients -> find better care near you. Doctors -> go where the patients need you. Researchers -> expose your data in open formats using APIs and open file formats.

Of course, I publish my source code under an Open Source license. Enjoy.


RPMS is certified

RPMS, the VistA cousin run by the Indian Health Services has received ambulatory and inpatient meaningful use certification.

RPMS is substantially available under FOIA, (there are some proprietary components required to emulate the certified stack, I believe) and is the first Open Source stack that I know of to be certified as both inpatient and ambulatory.

More as it develops.


Correcting Information Asymmetry for patients

Consumer reports is invaluable tool for the purchase of almost anything.

Anytime I am considering a major purchase like a car, or perhaps expensive electronics, I always by temporary access to While the Consumer Reports magazine can be interesting to browse, the website is even more valuable. You can access any recent product review done for the magazine in an instant.

The problem that consumer reports addresses is “information asymmetry“.

Consider going to the car lot to buy a car and then comparing two similar car models. Both of the new cars cost about the same amount of money. Both of the cars have the same essential features. Which brand of car should I buy?

The problem here is that there is an asymmetry of information. The car sales man knows much more about the performance of these brands of cars than I do. So there is a danger that he will recommend the worse of the two cars, which he will have over-priced. If I trust the car salesman, I might be doing what is best for him, not best for me. Even if the salesman is honest, he might be making his recommendation based on what the needs of the average car buyer. To the degree that I am different from the average car buyer, my needs might be different.

Consumer reports helps to reduce this asymmetry. I can learn about how the cars perform from an objective source. I might end up taking the car salesman’s recommendation… I might not. My decision will be based on -my priorities- which can be very divergent from both a typical customers and from the salesman’s interests.

This kind of information asymmetry is even more pronounced in healthcare. I could learn what a car salesman knows about cars in about a month of diligent study. But to understand what a doctor does I would have to study for years. If I am trying to make a decision like “Should I have this surgery” I am at the mercy of the doctors much-greater information position. The Surgeon might be recommending surgery because that would generate income. He also might be recommending surgery because he is assuming that my priorities are the same as the “typical patient”.

Rectifying this information deficient for as a patient is much more difficult, because the resources available to patients are often problematic.

The information on WebMD is probably accurate as far as it goes, but it is dumbed-down. You can always spot information that might not go deep enough on the web, because it always ends with “ask your doctor about…”. That is the least helpful thing to say here. It means “This is actually a much more complicated issue, but we are not going to give you any more information, instead go ask the car salesman (the doctor)!”. It is the doctor that I am trying to evaluate here!

Wikipedia has much more accurate information that goes much deeper, but its articles are of sporadic quality (usually very high, sometimes very low… which one are you reading now?) and it may not be updated with the latest information on its more esoteric articles. It was not never intended to be relied upon for medical information that changes very very rapidly.

My boss and collaborator at the Cautious Patient Foundation Dr. Cari Oliver has just written a detailed blog post where she details how patients can use at service called to get around this problem. This service is intended for doctors, but they have recently allowed temporary access rates so that patients can access a topic or two and not pay the expensive yearly access fee. Of course, this service is aimed at doctors. It might be a little over your head. But it is better to have access to accurate, recent information about the risks and benefits of different procedures, from a disinterested third party authority that is too complex than not to have it all!

This type of recommendation excites me as a technologist passionate about social change! This is a classic example of using information to make patients more powerful!!


Two other Open Source EHRs Meaningful Use certified (partially)

I just found out that at least two other Open Source projects have been meaningful use certified.

OpenEMR has been partially certified.

Medspheres OpenVistA CareVue has been certified.

I hope to get more information about exactly what the partial certification means and what the meaningful use strategies of these organizations mean, but this means that the ClearHealth is no longer alone in certification. (Although from what I can tell, ClearHealth remains the only fully certified Open Source EHR)

I will write more when I know more…