Frequently Asked Questions

Features and Capabilities

Doctor holding X-ray

What's the purpose of TL7?

Our overall goal is to provide the most useful HL7 resource available on the web. To that end, we're keen to provide a number of features:

  • Interesting documentation features -- we fear that a lot of the information about HL7 is confusing and broken up into a number of different places, and we're trying to help average developers make sense of the inforamtion. Try looking at some of these links:
  • Interesting message help features like our validation tool
  • We also operate like an almost-fully functioning message test environment. We're hoping to support all functionality that you'd expect from a HIAL and the back-end systems including Client Registry, Provider Registry, Location Registry, DIS and iEHR system. We give users the ability to set up sample data, including creating people, prescriptions, and other health data, and we receive and process HL7 messages sent via a number of message transports. Want something simple? You can paste a message into our message processing page. Need something more sophisticated? Try sending a message through one of our REST or SOAP interfaces.

What does TL7 Validation do over and above standard XML schema validation?

Our validation tool does the following:

  1. it attempts to validate the HL7 message against several different versions of the schema, looking for the best match
  2. if the XML matches a fully-supported versions of the message, we attempt to parse the message, and look for HL7-specific errors such as code value errors.

TL7 also has other capabilities over and above message validation

What other capabilities does TL7 support?

TL7 can be used for the following:

Free capabilities

  1. TL7 can validate messages
  2. TL7 provides some reference capabilities, including information about vocabulary codes or OIDs

Subscriber capabilities

Subscribers can also do the following:

  1. Review additional reference data, such as drugs.
  2. Create sample data: persons, prescriptions, dispenses, and other data.
  3. Collect the sample data into manageable "data sets"
  4. Share data sets with other registered users.
  5. Send messages to TL7 via REST, SOAP or a web interface, for processing against the user's data.
  6. Review messages -- including SOAP envelopes -- to help debug messages.
  7. Configure data to emulate special handling. In particular:
    • emulate drug interactions or other dispense issues
    • emulate special handling situations, like transmission timeout or SOAP-level errors.

These features exist to test the full capabilities of an HL7 implementation.

Message Processing

How can my application send messages to TL7?

TL7 can receive messages in a variety of different ways.

One of the easiest ways to send messages to TL7 is via our REST interface. Include your HL7 messages in the body of an HTTP POST request, and send it to our REST endpoint.

We also support a generic SOAP interface, which uses standard web services and WS-Security to process messages.

Because we strive to provide support for jurisdictional testing, we have also implemented our own implementation of certain jurisdicational SOAP APIs. Often, the Jurisdictional APIs provide idiosyncratic behaviours that we've tried to replicate.

To use a simple example, the Newfoundland implementation of WS-Security with userid/password chooses to not use a "nonce". This isn't "wrong", per se, but it is a little unsual. We've done our best to emulate these idiosyncracies. See our Newfoundland SOAP API page for more details.

How do I indicate which specification version I'm using when I send messages?

The usual way to indicate the specification version (e.g. "V02R02" or "MR 2007") is to use a "profileId" element in the message.

A first few lines of a typical message will look something like this:

<?xml version="1.0" encoding="UTF-8"?>
<PRPA_IN101103CA xmlns:xsi="" xmlns="urn:hl7-org:v3" ITSVersion="XML_1.0">
  <id root="1ee83ff1-08ab-4fe7-b573-ea777e9bad51"/>
  <creationTime value="20080625141610" />
  <responseModeCode code="I" />
  <versionCode code="V3-2005-05" />
  <interactionId extension="PRPA_IN101103CA" root="2.16.840.1.113883.1.6" displayable="true"/>
  <profileId root="" extension="R02.04.02" />

This profile id indicates that the version of the specification is R02.04.02 (also known as MR 2009).

See the page about profile ids for more information.

DIS Capabilities

How well does TL7 handle prescriptions?

We currently attempt to model the full lifecycle of a prescription, including all messages to suspend, resume, retract and abort a prescription.

Other Questions

What are the prices for subscriptions?

See our pricing page.

What is TEAL?

TEAL is an Intelliware component that can be used to format and parse HL7 messages in Java. The HL7 message specifications are sufficiently complicated that traditional XML to Java binding tools like JAXB or XMLBeans don't produce easy-to-use Java classes, so TEAL is a smarter, more HL7-specific marshalling technology.

2.0-SNAPSHOT build 44073 (2013-10-21 14:54:29)