Contract to create VistA shepherd goes to newbie

I just learned, (from a modern healthcare article, of course) that the contract has been awarded to Tiag.

At first blush, this news was not concerning. I am only peripherally involved in the VistA community, and there are lots of solid VistA-related contracting companies that I do not know of. It was a little surprising I must admit, I was expecting this to go to Perot Systems (now Dell), or DSS, both of which have deep VistA pedigree. My second guess would have been a big contractor like IBM or CSC.

But I have done a little analysis and now I am pretty concerned about this.

First I used Google to do a site search for the term “VistA” on the Tiag website. The syntax for that is “site: VistA

Results.. nothing..


Ok, but even though there website does not list anything about VistA, maybe the leadership is invested in the VistA community. Its pretty easy to sort participation in VistA community, it all happens across the Hardhats mailing list. So I did a search on the hardhats mailing list for the proper names of each of the people listed under the Leadership Bios on the hardhats mailing list. Here is a sample for Tiag CEO Dalita Harmon. Nothing.


Ok, the Tiag leadership is not participating in the VistA development community, but perhaps they have “underling involvement”. I search on the hardhats mailing list for anything coming from returns nothing. (it might return a thread I started about them now….)


Maybe they prefer to participate in person, attending WorldVistA meetings? Nope.


Maybe the organization is just deeply skilled in health IT. It looks like they have some military health IT experience, which is not at all the same as VA health IT. The resume of the Tiag CEO shows that she is not a computer scientist, or a self-taught developer. This is pretty important, because Tiag is registered as a small business. The CEO will probably be making significant decisions about this project, and she is not a software developer. Moreover her resume speaks to industry-hopping with “leadership experience” as the result. Given that background, there is a very real danger that she might be confident without being competent regarding VistA.


Perhaps, they have experience with Open Source? Nope.


How about experience with MUMPS? Nope.


Are these google searches working at all? Perhaps Google has not indexed Nope, a search for the CEOs name returns lots of pages. Including this one, which details the history and philosophy of the company, from that page:

one of our core differences is going against the industry standard of treating people like commodities.  tiag hires the best talent out there and treats them like talent

This is kind of troubling, because VistA, in my experience is one of the most complex and difficult technical arenas in health IT. The system is amazing, but making VistA go is a dark art, and experience really matters here. From what I can tell, they have no VistA experience to speak of. This, and the generally buzz-word compliant and beautiful tone of the website lead to a dangerous potential conclusion: This is an organization that has expertise in writing beautiful proposals, rather than any kind of industry experience. What if this is yet another “beltway bandit” with a limited, “across the fence” understanding of the VistA community inside the VA and no concept of the VistA community outside the VA.


At this point, I am going to put out the soft feelers to the VistA community, for indications that my research is wrong. But at first blush, it appears that the VA has chosen VistA-outsiders for this role. There a several ways that this analysis could be wrong, for instance, if they had just hired George Timson, or perhaps partnered with someone like Open Health Tools, and they have not yet updated their website. So these concerns could be simply irrelevant.  So first, I hope I am wrong in this analysis. Second, I can only hope that choosing a VistA-outsider was intentional on the part of the VA.

-if- it was intentional, it might not be a bad thing.

It appears, at first blush, that these guys are all going to be VistA newbies. The first thing they need to understand is that they are in fact newbies. I know a lot about Health IT, but knowing VistA… thats something else. Understanding what VistA appears to be, and understanding it at the level of a CAC or VistA programmer… thats something else entirely. It also appears that they are newbies to Open Source generally. I would have loved to see some Linux Foundation/Apache Foundation/Mozilla Foundation type credentials. I do not see that here either.

While I was initially investigating VistA, I wrote the WorldVistA wiki page “What is VistA really?“. Its a chronicle of a health IT outsider becoming a VistA insider (remember I said “insider” not “expert”). Nothing written in that article would come as a surprise to a VistA insider, but if you read it… and you are surprised by anything there, then that is a pretty good indicator that you are a VistA newbie.

Being a VistA newbie is fine, as long as you understand that you are a VistA newbie.

If this “Open Source VistA” thing is going to work, then the people leading that effort are going to have to be deeply aware of what “Open Source” and “VistA” really mean, -or- they are going to have to have a lot of humility.

In Open Source, reputation and leadership are the same thing. If Tiag is as unknown to the rest of the VistA community as they are to me, they have a long way to go. This does not mean they will do a bad job, Harris Corp was pretty inexperienced with Open Source, but they ended up doing a pretty good job on CONNECT. In the end, they earned a good reputation. I was pretty freaked out when that contract went to Open Source novices, but it turned out O.K. in the end.

Of course, Harris had a stellar technical team. They really understood what they were getting into from a technology standpoint. Does Tiag? One of the critical issues around an Open Source VistA process is that normal version control does not work on VistA. This has to do with the quasi-versioning capability of the KIDS system. Updates in VistA often come in the form of KIDS packages that inject code directly into the VistA database. That code, living in the database, and not on the filesystem, makes tracking VistA with traditional version control impossible. Can you imagine trying to create an Open Source governance structure without the presumption of an underlying version control system in place? The governance of most projects translates to “the process by which we decide who gets access to subversion/git/whatever”. This is just one example of how VistA context is going to be critical for any kind of workable governance. My proposals for VistA governance, are some of the oldest and complete writing on the subject. They date from 2008, which is something like 21 years ago in Internet years (which are, as everyone knows, roughly compatible with dog-years). So I am something of an “expert” on the subject of VistA governance.

There are three working definitions of ‘expert’:

  1. The student: Person who understands the problem well, and might recognize the solution.
  2. The amateur in experts clothing: Person who advertises that they know the solution, but in fact does not understand the problem at all.
  3. The real expert: Person who has solves the problem.

I am, at least, solidly in the first category.

If “What is VistA really?” serves as a good introduction to VistA, this post will serve as a good introduction to Open Source values. What matters in Open Source is “being right” and being right comes from evidence. The evidence in this case (a bunch of Google searches) suggests that Tiag is inexperienced and over their heads on this one. The difference between Open Source developers and other developers is that we talk openly about these types of issues, and criticism, when backed by evidence, needs rebutting. Participating in community discussion and responding to community criticism is what “participating” in Open Source community means. We have lots of heated arguments, and its never personal. Its always about what the right thing is for the sake of the project in question. If Tiag thinks this post is critical, they are in for a whirlwind.

At this point I am pretty nervous. The future of VistA depends greatly on Tiag not screwing this up, and I see no evidence that they have any experience in Open Source, licensing, governance or VistA and its unique development process. There are thousand ways to make a train-wreck here and only a few ways to do this right.

I will try an update this article with more information regarding Tiag’s qualifications.

I really hope Tiag has what it takes.


EHR can make the paper problem worse

Once a persons record has gone electronic, it really should never go back.

A paper printout of an Electronic Health Record is often huge and unwieldy. If it is printed out or faxed it creates something so huge that it is pretty impossible to be useful in a paper record.

This is the reason why need electronic interoperability solutions like the Direct Project. Without it, when a patient leaves one doctor, they have to print out an electronic record, take it to the next doctor, and then have that doctor scan the record in.

That doesn’t sound too bad until you realize that a patients printed EHR record often looks like this:

What happens when you print the contents of an EHR record for a single patient

This image was provided to me by Jodi Sperber and Dr. Eliza Shulman, who generously agreed to share the photo under a Creative Commons license. Here is the full description from Flickr, which provides greater context.

An example of why interoperability is as important as the electronic health record itself.

The story behind this photo: This is a printout of a patient’s medical record, sent from one office to another as the patient was changing primary care providers. An EHR was in place in both offices. Additionally, the EHR in both offices was created by the same vendor (a major vendor); each health organization had a customized version. Without base standards the systems are incompatible. Instead, the printouts had to be scanned into the new record, making them less searchable and less useful.

Note that this was not the entirety of the patient’s medical record… Just the first batch received.

Making QR code stencils

I have been on a quest to be a able to spray-paint QR codes, in mass production.  I recently demoed my QR code stencil work at Maker Faire.

The secret, in short, is chicken wire and caulk.

I tried the following methods unsuccessfully:

  • cardboard cutouts (subject to the island problem)
  • suspending wires across a board and using duct tape (suspending wires takes too long, duct tape moves when covered in spray paint)
  • using very large chicken wire and using foam blocks to plug the wholes. (far far far to time consuming, but theoretically should work resulting in a massive QR code about 1 meter x 1 meter)
  • using a very small hole circular whole punch on paper (subject to the island problem, but less so)

The first thing that I got working is using very small chicken wire, and using caulk to bridge the gaps between the parts of the wire required to block the spray. This seems to work. A picture, as they say, is worth a thousand words.

QR code stencil
QR code stencil using chicken wire and caulk

Pretty simple see! Now, once you have created that stencil, you can use black spray paint to create a readable QR code on anything you -own-

Tips for creating the stencil:

  • Create a printout of your QR code that is exactly the same size of the QR code (I did not think of this. Karen Herzog figured out after two seconds of thinking about it)
  • Print the QR code on really thin, flimsy paper if you can.
  • Lay the QR code down, and lay the chicken wire over it.
  • Caulk anywhere there is white (ie. so that the black will spray through)
  • Let dry overnight.
  • In the morning, you will find that the paper is also caulked

Suppose you do not own the thing in question. There is still hope. To create somewhat more legal QR code graffiti, you can create a reverse stencil (i.e.  instead of putting caulk to block black spray paint, you use a negative stencil to block white spray paint). Then you can use white chalk spray paint against a dark surface. Remember that the QR code standard requires a “field of white” around the QR code, so using a reverse stencil you have to be careful to spray generously around the QR code too.

While at Maker Faire, I bought a hoodie and used this method to spray paint chalk on it. You can see the results below.. it still scans!!

A QR code sprayed on a Maker Faire hoodie

For those who prefer to watch the action first hand…

Here is a video of how the reverse chalk spray works on asphalt

Here is a video I made b/c I was losing my voice that basically shows what I was doing with QR codes at Maker Faire.

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.