Introduction to PEMSoft
PEMSoft (Pediatric Emergency Medicine Software) is a Revolution-based decision support system used in pediatric emergency clinics. Released to the US and Australian markets in 2006, this product is sold on a subscription basis with releases at least annually. Each update reflects current pediatric practices, and expands the scope of the program's content and features.
Fourth World was contracted to develop this program based in part on an earlier version in limited distribution in Australia, revising and expanding its feature set while making it cross-platform. We remain committed to providing support and enhancements for the product going forward, and are currently working with PEMSoft Pty. Ltd. to deliver version 2.0 this summer.
PEMSoft has more than 3000 clinical topics supported by more than 2700 graphics and dozens of procedural video clips, created with editorial contributions from more than two dozen leading pediatric specialists in the US and Australia.
With so much information designed for use in a time-sensitive clinical setting, a thorough and efficient search tool is essential. PEMSoft's search tool rapidly searches across all of its content using a keyword index we designed for the task. The tool supports Boolean searches for single or multiple terms, can optionally include related synonyms in its search, and ranks results according to potential relevance.
Such a complex search routine took significant testing and revision to refine for version 1.0, but the end result was well worth the effort: with Revolution's lightning-fast chunk expressions for parsing text, even complex searches are usually completed in under a second.
The search index is created during development, and the tool we wrote to create it really demonstrates Revolution's speed. In the earlier product on which PEMSoft was based, it used a simpler index but it still took the index tool, which was written in HyperCard, more than two hours to complete. The indexer we wrote for PEMSoft using Revolution generates a far more complex index and finishes in under two minutes.
In addition to its rich-media reference database, PEMSoft also includes three additional modules:
- Phoenix - a tool for quickly calculating drug dosages and equipment sizes, with additional reference information for protocol
- DocWriter - a document management system for organizing and retrieving policy and procedure guidelines
- ConsentView - a library of video procedures illustrating common procedures to obtain informed consent
Phoenix includes procedural flowcharts of more than two dozen of the most common treatment protocols. Using Revolution's built-in vector graphics tools we were able to create these flowcharts right in the program, with interactive elements to provide additional information and hyper-linking for the user.
DocWriter not only organizes and displays documents, but also allows the user to create new documents and edit them. The modest functionality of its integrated word processor provides basic text editing and styling tools, and allows images to be added to documents thanks to Revolution's excellent support for inline images and drag-and-drop.
ConsentView is a relatively simple video player, and Revolution's media player object allowed us to complete that module in less than a day.
In addition to the software's features, the product's subscription model required us to build a registration and activation system into the program. When nearing the end of the subscription period, PEMSoft notifies the user of the number of days remaining, with a link to purchase a renewal. With Revolution's revGoURL command, providing a button to launch the user's web browser to PEMSoft's online store was a simple one-liner. And with Revolution's built-in support for the MD5 algorithm, writing the handlers for generating and verifying unique registration keys was a snap.
Content means Content Management
The PEMSoft team is continually updating and enhancing content throughout the program, which is made available to end users in regular updates.
With so many team members spread over two continents, we realized early on that in addition to building the software itself we'd also need to leverage Revolution's strong Internet support to build a content management system (CMS) to support a distributed workflow for managing each development cycle.
As a decision support system used in a fast-paced emergency clinic environment, one of the design mandates for PEMSoft is that we avoid the use of scrolling fields so critical information is displayed immediately on screen. For the editorial contributors this means tailoring their content to the space available, so we designed the CMS to work right in the product itself rather than an external editor so they can see their work in place.
The editing functionality of PEMSoft's CMS is provided as a single Revolution stack file, which is included in the version shipped to editors during development, and removed from the product version. PEMSoft checks for this on launch, and if present opens it to appear as a slender palette above the main content window.
The editing palette provides access to the tools needed for authoring content, including importing and exporting text, setting labels for subtopics, applying styles to text, and more.
Each team member is assigned a specific set of topics, and the CMS requires them to sign in with a password to enable editing for their topics. Contributor accounts are managed by the team's administrators, and stored on a web server. All server-side functionality is provided by a Revolution-based CGI, and most calls to the server are one-liners thanks to Revolution's built-in Internet library.
When the user signs into the system, the editing tool verifies the log in and password by sending them to the server's CGI. Once the server verifies them and sends back authorization, the local tool presents an Overview window which shows all topics, which contributor they're assigned to, and their current status.
The status of each topic is maintained by the CMS automatically. Whenever the contributors use the Save button in the CMS tool to save their work, the CGI is notified of the change and the status record for that file is updated to reflect the change in real time. The Save feature also posts a copy of the saved topic data to the server, which provides an automatic remote backup and lets the team administrator retrieve them to review the latest changes.
In addition to providing a convenient way to review the status of their work, the Overview window also includes a News button which checks the server for any notices the team's administrators may have posted for them, such as changes to deadlines or authoring procedures.
Given the scope of this CMS and the complex nature of editing this sort of content, we anticipated that our team members would have suggestions for new features to support their work even better. So we needed a way to provide updates to the CMS tool palette whenever new features are added, but since the contributors are mostly busy doctors we knew that any update mechanism had to be as simple as possible to make the most of the time they contribute to the project. That ruled out anything involving going to a web site to download and install files, and even asking them to deal with email attachments would be too distracting.
Fortunately, Revolution made it easy for us to design a completely automated process for updating the tools. When the contributor begins an editing session, the program makes a call to the server to check for updates, comparing the version running locally with the latest version available on the server. When a newer version is available it's automatically downloaded and installed, so any work session always uses the latest tools. With Revolution's gzip compression, the editing tool stack file comes over the wire in about a second, so most team members never even notice the update process.
When the contributors have completed editing all of their topics, the last stage in development is a review of that content by the team's administrators. So in addition to the CMS tool palette, the project's administrators have an additional stack file in their installation to support their work in managing contributor accounts and assisting the review process.
This administration tool can scan all topics in the system to present a summary list of those which have changed, and provides instant one-click navigation to those topics to review the content.
This tool maintains a database of all topic content prior to release to the contributors, and provides controls for quickly toggling the display to show the current edited text, the original text prior to editing, and a markup view.
The markup view uses an algorithm that compares the original text to the edited text, and shows both together with special styling to make edits visible at a glance: deleted text is shown with strikeouts, and new text is shown in blue.
Version 2.0 and Beyond
Work on PEMSoft 2.0 is on track, scheduled for release in July. The contributors have been using the CMS for the last several months and the content revision phase for this version is nearly complete.
The new version will include a module for pre-hospital care, tools for end-users to create their own hyperlinks between topics, expanded editing and search capabilities for DocWriter, and more.
This project is ambitious, and I'll admit it sometimes leads to some late nights. But when I read the feedback from doctors around the world using PEMSoft, it makes it all worthwhile. This one from a hospital in Australia was particularly rewarding:
We all feel it is an excellent product and covers the breadth of emergency paediatric problems, resuscitation and includes an up to date formulary. Navigation through the software and it's ease of use - including the interactive resuscitation guides - are excellent.