FileMaker Pro at the Alabama Eye Bank

Alabama Eye Bank

Alabama Eye Bank

I’ve been an advocate of FileMaker Pro as a rapid-application software development system. FileMaker allows a developer or savvy end-user to get database applications up and running in a relatively short amount of time. Much of my development involves automating workflows based on paper or Excel spreadsheets. These tend to be smaller systems with a limited amount of data. So I’m intrigued to find a FileMaker system that tackles a complex and critical workflow.  Alabama Eye Bank  has an application which tracks the progress of donated corneas. The program was described on FileMaker’s customer stories page. That description goes back some years, and I was interested to hear about the current state of the application. Tom Cattell, Vice President for Information Systems provided some additional information. As of this writing, FileMaker is now at version 13. Solutions written in FileMaker Pro 12 and 13 can be deployed on Windows, Macintoshes, or iPads and iPhones.

1. Which version are you running of FileMaker 12 or 13?
While FileMaker 13 is the most current version of FileMaker, we currently use FileMaker 12, only because our audit log (FMDataGuard) that tracks changes to records and fields is 32 bit and doesn’t work with FM13. I use FM13 for development and for the iPad/iPhone apps. I am working right now on updating to a new audit log so we can get to FM13 ASAP.

2. Are you hosting with FileMaker server?
We host FileMaker server on a Windows 2008 virtualized server.

3. Mac or Windows?
All our clients are Mac and all our servers are virtualized Windows servers and are all on our local network.

4. What was the reaction of IT to a FileMaker application?
We have used FileMaker since 1998 and used Macs even longer, so it wasn’t a big leap to move to FileMaker Go and start using iPads and iPhones.

5. Did you develop in-house or use an outside developer?
I did 90% of the development of our current solution in-house. We had a smaller database created in FileMaker 6 when I got to the eye bank in 2007. My first job was to upgrade us to FM9 which took 3 months. After that, we have more then doubled the databases and use them in nearly all areas of our business. Our supply module which was created about a year ago was mostly developed with local consultants, one of whom created the interface for our current databases.

6. What is a typical workflow?
The whole process begins when a hospital calls in a death to our Donor Service Center (DSC). The DSC enters the data in the Referrals tab of our database. If we get consent by a next of kin and they pass our medical social questions, we flag the referral as a donor and pass it to a Recovery Coordinator. They take an iPad, download the donor data into it and head to the hospital. At the hospital they enter several pages of chart information and perform the procedure. Upon return they sync the data from the iPad to our FileMaker server and then label the vials that hold corneas (the clear part of the eye) with labels that print as soon as the data is uploaded.

From there, our technical staff continues the process of making sure the corneas are safe and good quality for transplant. We then prepare them for surgeries that are entered on our FileMaker hosted webpage by surgery schedulers throughout Alabama, the nation and the world. We send out electronic invoices through FileMaker and import that data to QuickBooks for our accounting.

Honestly this is a complicated process. We also track all account info, contact info, hospital development and employee benefits with FileMaker databases. FileMaker gives us one place to interact and organize our workflow and provides redundancy and checks and balances throughout the whole process.

7. Does it interface with another electronic medical record system, like EPIC?
No, not yet. We are currently looking at how to handle EMR, but at this point there isn ’t much of a need.

8. Just curious, why can a cornea that was rejected as suitable for transplant by the U.S. be sent abroad?
The US has a surplus of cornea tissue that results in higher selectivity. Abroad there is still a great need for corneal tissue and therefore some countries tend to be less selective. Now glaucoma surgeons in the US use these lower quality corneas for shunt coverage. They look much better then the alternatives that were being used. It is honestly amazing all the ways corneas are being used now.

Many thanks, Tom!

So, the FileMaker database has evolved to manage all of the referrals, donors, tissues, accounts, contacts, distribution and online surgery scheduling. 

But wait, there’s more!

FileMaker is also used in the AEB’s human resources area. It handles employee benefits, including time off, vacation and sick leave. And, through FileMaker, Cattell has created multiple reports to assist management to better keep a pulse on the eye bank’s daily operations. And, on the accounting end, the Eye Bank application interfaces with QuickBooks to create invoices.  

Looking at the following two screenshots, you wouldn’t immediately see that these are FileMaker screens. But the crisp design and spacious layout is typical of what can be developed in short order using native FileMaker tools.  What’s more, these screens are rendered almost identically on Macs and Windows when using the desktop versions of FileMaker Pro, or as web pages using FileMaker Web Direct. Note that patient data shown on both screens is fictitious.


Alabama Eye Bank – Individual Referral Information


Alabama Eye Bank – Referral Listing

The Alabama Eye Bank Information System will continue to evolve. Tom Cantell posted some additional photos on Flickr that include a screen shots from related FileMaker applications that run on the iPhone and iPad, as well as some additional detail about the FileMaker applications.

Tagged with: ,
Posted in Electronic Health Record, FileMaker, Finance, Healthcare Reform, Technology

GroveStreams: Basic Data Upload


Click the image to see it in all its glory.

Having used the sample GroveStreams Arduino code to simulate a temperature sensor, my next step has been to verify how data can be sent to the GroveStreams chart generator for a new data stream; a simulated heart-rate.

The GroveStreams API accepts data as an http request. Here is an example:

PUT http:/

Two things about the above string:

1. The org is a series of hexadecimal numbers unique to your company
2. The api_key is a series of hexadecimal numbers which unique to the user account.
3. I’ve placed bogus numbers in the two entries.

Breaking this down by parameter, it looks like this:

PUT http:/

where the first line is the GroveStreams url, followed by

compTmplId  – the “component template ID”
compId – the “component ID”
compName- the “component name”, in this case “HeartRate”
org – Organization ID (used to identify the organization)
api_key – used to identify your user account
s1 = in this case, the “stream identifier”…. an arbitrary name for the data stream.

The s1 at the end actually contains the data… in this case a heart-rate of 78 beats per minute.

Sending this requires data to be sent using an HTTP PUT.  This is different than the a conventional GET or  POST that would be sent from a normal web page in a browser, so you can’t just paste this into the address box of a web browser and expect it to work.  So, to allow this, I downloaded a FireFox plug-in called HTTP_Requestor. This allows you to place the string in a box, and send the request to GroveStreams using PUT.

Using he HTTP_Requestor,  you can manually add a single data point at a time to a GroveStream chart.  On the back-end, you need to create the component which accepts the data and prepares it for display.

The GroveStreams API will accept data once every ten seconds.  If you attempt to send data more often than that, it won’t be accepted, and the GroveStreams server will generate an error message to that effect:

{"message":"Feed PUT call limit has been exceeded for address 
One call every 10 seconds is allowed.

The ten-second rule is enforced by your public IP address. If I understand this correctly then, a set of devices behind a firewall cannot independently send data points to the GroveStream server. These need to be aggregated and packaged to be sent together.  The server will accept multiple data points, (possibly paired with time stamps), so that you can display data at shorter intervals than ten seconds. In other words, you could package ten (or a hundred) values in a single call to the server… but you just can’t send more than one call to the server every ten seconds.  This might have implications, then for our heart-rate monitor…if we had originally expected to be able to monitor multiple patients’  heart-rate in near real time; we would have an current copy of the heart-rate only every ten seconds, even though we were displaying a reading taken roughly every second.

Despite the above limitation, it looks as if it may be possible to simultaneously display, say ten heart-rates on a single web page.

Tagged with: , , , , , ,
Posted in Personal Technology, Sensors, Technology, Technology-Enabled Home, Telemedicine

GroveStreams + Arduino = Cloud Display for Sensor Data

A relatively new web service called GroveStreams allows you to upload sensor data (or any other data) to the web for display and analysis. The have a sample tutorial for the Arduino which simulates a periodic temperature reading. This displays as a graph and or as a dashboard with a variety of beautifully rendered sample gauges.


I found the site when looking for Pachube, a frequently-mentioned similar service which appears to have morphed into a service called Xively offered by the LogMeIn folks. While Xively offers a free developer’s account, if you begin to use it commercially, the cost is $999/year plus transactions costs based on volume of data and number of streams.  GroveStream also has paid accounts but the threshold for payment comes somewhat higher, allowing us small guys to experiment.

The GroveStream Arduino tutorial requires an Arduino with network connectivity. A Uno works fine, and I don’t think there would a problem with the predecessor Duemilanove.  I had a Seeedstudio Ethernet shield lying around which worked well, and I was able to send data to the GroveStream about 30 minutes after starting the project.

Comments in the Arduino sketch reference a web site by David Thompson, which has a enormous trove of examples, code, and experience for Arduino-based  home automation as well as a newer revised version of his home automation controller based on the Raspberry Pi.

Posted in Sensors, Technology, Telemedicine, Wireless

Fund Long-Term Care via Life Insurance

Interesting article over at The New Old Age blog on the NY Times site which describes a process of cashing out of an existing life-insurance policy to fund long-term care. This process seems to be a bit like a reverse mortgage. For those of us without life insurance and without additional assets, the whole long-term care financing thing is a pipedream anyway.

Earlier this week, I went to visit my only living relatives of my parents’ generation, an aunt and uncle who are are both 98 years old. They live at Pennswood Village, a continuing-care retirement community located in Bucks County, Pennsylvania.

The place is beautiful. The common area includes an art gallery, a gift shop, and a cafe. The lobby has enough couches and chairs to remind of an upscale hotel. Pennswood is also a real community with extensive facilities, including a pool, gym, therapy rooms, woodshop (with lots of machines!) and a painting studio among other amenities. Gardens and walking paths grace the 160 acres of grounds, and the place is next to two private schools, George School and Newtown Friends School.

Monthly fees start at around $3500 per person, with a substantial entry fee. So, you run the numbers; after selling your house and paying the entry fees, will you have enough for the monthly fees, plus supplemental medicare insurance, plus personal expenses other than your living expenses? According to the web site for Wake Robin, a CCRC here in Vermont, you should have a gross income of two times the amount of the monthly fee. (See Wake Robin’s fee schedule here.)

On the plus side, Most CCRC plans includes long-term care; the whole point of a continuing care retirement community is that you move in as an independent person to an apartment or condo, with the expectation that you may need to move to the assisted living or skilled nursing wings during the course of your residency. Indeed, the “progression” from independent living to assisted living to skilled nursing is part of the business model; the assumption is that your condo or apartment becomes available for a new resident (and a new entry fee) once you permanently move out to assisted living.

At Pennswood they also have a “scholarship” plan to ensure that those who outlive their assets don’t get kicked out.

My 98 year old aunt and uncle now each occupy adjacent single rooms (each room is called a “studio”) in the assisted living wing at Pennswood. They take at least one meal per day in the common dining room; with meals served restaurant-style, with and food choices picked from an extensive daily menu. Both of them receive several hours a day of help with ADLS, (activities of daily living), getting up and dressing in the morning, preparing for bed, and helping them get to meals and appointments, and to meet visitors. There is no question that this is a wonderful facility, and they and the family are fortunate that they are able to be there.

Tagged with: , , , ,
Posted in Finance, Healthcare Reform, Patient Engagement

microMedic Contest – We have a winner!

Well, I got a sixth place win in the Parallax microMedic contest with the Heartduino, an Arduino-based heart-rate monitor which displays the HR on a video screen.

Below are the pages announcing the microMedic winners for which I submitted my heart-rate monitor which projects on to the TV.

All the winners: (there are several pages… at the bottom, there are links to additional pages.

My page: This contains links to the project report and a video.

Tagged with: , , , , ,
Posted in Electronic Assembly, Maker Related, Personal Technology, Sensors, Technology, Technology-Enabled Home, Telemedicine

Champlain Mini-Maker Faire: Photos

The Champlain Mini-Maker Faire took place this past weekend at A glance at the full program shows that there was something for almost everybody. Click on the photo to see it full-size.

View across the harbor the Shelburne Inn.

View across the harbor to the Shelburne Inn.

Jef Raskin's Bloxes. Corrugated cardboard building blocks

Jef Raskin’s Bloxes. Corrugated cardboard building blocks

Homemade Quadcopter. There were several at the Faire, and they were flown around the site.

Homemade Quadcopter. There were several at the Faire, and they were flown around the site.

Roving robot.

Roving robot.

3d printers.

3d printers.

...and the objects made with 3d printers.

…and the objects made with 3d printers.

The sky yurt. A tensegrity construction, inspired by Buckminster Fuller

The sky yurt. A tensegrity construction, inspired by Buckminster Fuller

More about the sky yurt here.
The Fire Organ. Played with by holding a flamethrower under each pipe, which sets up a moving column of air which creates a tone.

The Fire Organ. Played by holding a flamethrower under each pipe, which sets up a moving column of air which creates a tone.

Apart from the lack of Cupcake Cars, the Faire was pretty spectacular.

Posted in Maker Related, Personal Technology, Sensors, Technology

Why Obamacare? Biological Realism

“Naturally enough, we humans like to think of ourselves as if we were immortal. A conservative who opposes universal health care might argue that people should only have to pay for health care when they want it, since it’s a consumer choice. It’s as if we were talking about aliens with the super-power to choose when to get sick, and how much it will cost when that happens. 

Similarly, the Pirate Party/Linux/openness crowd suggest that instead of making money from recordings, musicians should play live gigs. This is a topic I addressed in my previous book, but to summarize: This strategy only works reliably for those who always be healthy and childless. In fact it works best if the person’s parents are still healthy and generous. 

Any society that is composed of real biological people has to succeed at providing a balance to the frustrations of biological reality. There must be economic dignity, defined here as knowing you won’t fall off a cliff into abject poverty if you get sick, become a parent grow old. “

Jaron Lanier — Who owns the future? 

Tagged with: , ,
Posted in Healthcare Reform