What is Reverse-Engineering?

Why consider reverse-engineering? Lack of accurate specs


If you’ve worked on an interfacing team or for HIE, one of the issues you’ll hear about is a lack of accurate interface specifications. For instance, the vendor spec might be missing. Or the source or destination spec on hand might no longer match the production version.

So what do you do?

Lack of specs: what’s the impact on your ability to deliver?

Well, you might be facing weeks of digging and research. You’re missing a lot of information about the source and/or destination system you’re interfacing. You and your team will have to spend time getting that information, either in a series of kickoff and liaison meetings with the customer, or going back and forth with whichever application team is responsible for the system. And in a worst-case scenario, you’ll get piece-meal information that will allow you to get rough-draft style interface in place, and spend weeks testing and tweaking until it works.

If you’ve been through this process, you know that weeks can drag into months.

What if you could skip all that?

This is where reverse-engineering comes in.  So just what is reverse-engineering?

Reverse-engineering: create your own specs

Reverse-engineering is a technique and technology that we developed and incorporated into the Caristix platform. In a nutshell, reverse-engineering allows you to take sample messages from a source or destination system, and create a spec in a matter of minutes.

Reverse-engineering gives you a full list of application-specific elements and attributes:

  • Message types
  • Segments, including z-segments
  • Fields
  • Data types, including custom types
  • Code sets, including custom elements
  • Message-specific code sets (ability to differentiate field content A01 vs A08 messages, for instance)

What this means for your work

We’ve listed the data elements you obtain via reverse-engineering. Having them at your fingertips can transform how you and your team work.

Take code sets, for instance.

If you’re creating a lab interface, you’re probably working with a set a set of customized code sets. And these may change from time to time. Without reverse-engineering, you’d have to ask the lab system application manager to pull these codes manually. With reverse-engineering, you’d pull these codes automatically from the data itself – and the list would be complete.

That’s the advantage of reverse-engineering. A complete list of the structure and content elements. A lot less trial and error. And faster time to implementation.

Further resources

If you’d like to do a deep dive on Caristix reverse-engineering capabilities, check out the product help documentation:


To see how reverse-engineering works, check out the video below.

See the whole Caristix platform in action in our 16-minute on-demand demo.