By continuing to use our website and services, you acknowledge that you have read, understood and agreed to our privacy policy.

close

TSNRP

This DoD program had its sights set on something more robust, stable and secure.

Get Answers
illustration of arrows pointing to computer screen

THE PROBLEM

Formally established as part of the Department of Defense (DoD) Health Care Program by way of the 1996 U.S. Department of Defense Authorization Act, the TriService Nursing Research Program (TSNRP) is the only military research program dedicated to nursing research.

With a $5 million appropriation and an extremely rigorous three-step review process, TSNRP awards research grants to only the most innovative and collaborative of studies that also promise to have a significant impact on the lives of military personnel and their families.

Being entrusted with so much responsibility means that you need technology that’s as reliable as you’re expected to be. So when TSNRP’s Microsoft Access database started losing records and outputting corrupted reports, the program directors knew they had to act quickly and decisively.

THE CHALLENGES

Beyond the standard hurdles that any data application faces, this project also offered some unique challenges:

Data Normalization
Based on the lack of data constraints and consistency across the input fields alone, we knew that one of the most difficult parts of this project was going to be making sense of and cleaning up what was being stored in Access.

Technical Constraints
While we were given free rein to implement whatever solution we wanted, the technology stack we had to work with and the specs we had to adhere to were predetermined and non-negotiable.

High Availability
Being a truly mission-critical application, we needed to create something that was always on and always accessible.

High Security
Going into this project we were well aware that anything attached to the DoD was automatically going to be a high profile target, and we weren’t wrong.

quotation mark illustration

By applying well-established design patterns and test-driven development techniques, we produced an application that has proven to be rock solid.

THE SOLUTION

We knew that before we could even think about trying to tackle the database, we had to learn TSNRP’s workflow inside and out. So, through a combination of interviews, sample data entry and manual report writing, we got to learn not only what TSNRP was doing but, more importantly, why they were doing it. This gave us the knowledge we needed to write a collection of tools to extract information from Access, remove duplicate entries, fix broken records and piece everything back together in a meaningful way.

Once we were confident that we had the data under control, it was time to start building out the new application. This project required that we use PostgreSQL to store the data and Perl to program the logic. Although Perl is sometimes criticized for being cryptic and difficult to maintain, we found it to be a good test of our belief in best practices. By applying well-established design patterns and test-driven development techniques, we produced an application that has proven to be rock solid.

While cloud-based infrastructure might seem like an obvious choice for delivering a high availability service, this project’s technical requirements didn’t initially allow for that.

Instead, we colocated servers with different service providers in multiple geographic regions for redundancy, we used Git to roll out code changes to all production servers at once and we used PostgreSQL’s own mirroring capabilities to achieve near real-time duplication of data writes across multiple servers at once.

Finally, for heightened security, we hardened all of the servers with Bastille Linux, and we secured the filesystems with Tripwire. We continually monitor server logs for anomalies, and we regularly perform penetration tests and vulnerability scans to keep holes plugged.

Illustration of Computer Screen

TLDR


Client
TSNRP, a Department of Defense (DoD) Health Care Program

Project Summary
Migrate data and functionality from a legacy application to a more robust and secure solution.

Biggest Difficulty
Balance ease-of-use with the strictest security standards.

Main Technologies
C, Perl, PostgreSQL

See All Case Studies