Case Study: The Coroner's Office of Ontario - form3v2
form3 is a FileMaker-based database system used by every coroner in Ontario to manage the case work related to a death in the province.
The existing system, created in FileMaker Pro 4, had not been updated in several years. It would not run properly on Apple's Mac OS X nor on newer versions of Microsoft Windows. It was time for an update.
The existing application was one long window that users had to scroll through. It was designed for a low screen resolution, making text difficult to read and usability poor.
The requirements of the Government had changed; requiring the addition of new fields and business rules.
HISTORY:The original system had been developed by one of the Chief Regional Coroner's of Ontario as a personal project. This project was eventually rolled out to all of the coroners in Ontario. The system was created in the early 1990's and had minor upgrades, but nothing significant.
Coroner's create records in the database, fill out required information and eventually send the data as an XML file to the Coroner's central office in Toronto on floppy disc.
Due to privacy and security requirements of the Provincial Government, none of this data can be entered online.
THE PROJECT:The goals of the project were to:
- Modernize the application so that it would be compatible with current operating systems
- Add new fields and business logic
- Improve usability
- Modernize the application in general
- Make it easier for Coroner's to use
- Make more modular for future upgrades
When I was brought onto the project, Form 3 was in the following state:
- The original was created in FileMaker Pro 4 - no source files were available
- A partially modified version was created in FileMaker Pro 6 - but was incomplete. Source files did exist, but were corrupted and could not be used for the project
- FileMaker Pro 6 was already several versions behind the current shipping version of FileMaker Pro
- No documentation existed for either version
- A specifications or requirements document for the project did not exist
- The original creator of the system was only partially available to me for consultation
- I was the only person on the project full-time. Anyone else involved was part-time at best
The first step was to learn what the database did, how it worked and to get a handle on the very complex programming that had be completed in the FileMaker Pro 6 version. None of the existing code was brought forward to the new version.
The system was built and put out to a small test group as a pilot project. The majority of the feedback was quite positive and was folded into the next beta version of the application. We discovered several key points during this process:
- The coroner's were very resistant to change
- There was no standardization for computers in the field, many of the coroners used their own computers which ranged from antique to state of the art; both Windows and Macintosh
- Many of the core functions in FileMaker needed to be disabled because the coroner's found them "intrusive" to their workflow. This caused a great deal more work on my end to build code to validate entries
PROBLEMS:Dealing with updates. form3v2 contains a library of over 4600 hospitals, longterm care facilities, municipality data, pathologists, police services and other data.
The Coroner's Office needed to be able to update the library easily, without sending out an entirely new version of the program. Originally we discussed sending out a separate file that would replace the existing one. Then it was decided that the coroner would also be able to save preferences relating to the library. This meant a user's prefs would be deleted. We could not just replace the file, we had to update the data in it.
The solution was to create a utility database that the home office could use to add to and edit the library. With a single click, a new library file is created. This file is distributed to the coroners and with a couple of clicks at their end the library data is updated with no lost data.
We also had to deal with code updates - releasing a new version of the application. To do this we built in full backup and restore functions.