Importing HL7 Messages

To import HL7 data into your database schemas you create an "Inbound" processor for each schema definition. An Inbound processor will:


1) Poll the HL7 Data Folder for files named *.<Data File Extension>.

2) IF any files ARE detected it will then:

Take a "snapshot" of the HL7 Data Folder contents at that moment capturing the file names, modified dates and sizes.

Sort that "snapshot" by the last modified date (primary) in DESCENDING order, and the filename (secondary sort) in ASCENDING.

Process that sorted "snapshot", opening each HL7 data file, extracting from it every HL7 message and loading those HL7 messages into your UltraPort SQL Schema data tables. **Once every HL7 message in a data file is consumed that file is destroyed, see the Global Settings for file system archive settings.

(New in V3.2) If configured, it will execute a SQL Stored Procedure (created by you) AFTER it has successfully committed each HL7 message into your data tables. See Inbound Stored Procedures for more information.

Once the "snapshot" has been completely processed it is destroyed and the processor will IMMEDIATELY return to step 1 and poll the HL7 Data Folder again WITHOUT waiting <Data Folder Polling Interval> seconds.

3) IF NO files are detected the processor will wait <Data Folder Polling Interval> seconds and then return to step 1.


Inbound Processor Window

Inbound Processor Window



New in version 5.2.2! You can now double-click on the HL7 Data Folder text box to allow you to type (or paste) a valid folder path.


Next to each field is an immediate help button() click it to receive an immediate summary of what each field is and it's requirements.


Once an inbound processor has imported an HL7 message into the SQL Schema your job is then (typically) to extract the HL7 message data you care about and insert it into YOUR OWN database tables. Clients typically do this in one of three ways.


1.(Recommended Process 1) You create your own external scheduled or timed process which runs side-by-side with the Schema Engine and will periodically Poll the schema's main table (<prefix>_HL7Data) for new HL7 messages and (if detected) "process" those records by extracting the HL7 data from the Schema data tables and importing it into YOUR database tables and then flagging each HL7 message as "Processed". This external process can be created in ANY environment that you like be it a MS Windows service application written in any 4GL language (like MS Visual C#,VB, etc) or as a SQL Server scheduled job, etc etc.

2.(Recommended Process 2) New in version 3.2. If you are a SQL programmer you might want to use a SQL stored procedure to do this job. For this we recommend that you use the integrated features in the Inbound Processor to configure it to execute your SQL Procedure after each message is imported into the Schema Tables. See Inbound Stored Procedures for more information.

3.(Not Recommended) Using MS SQL Database Triggers which you design and add to the UltraPort SQL Schema data table(s). HermeTech highly recommends that you use the newer option 2 instead (see the discussion below).

Click to ExpandWhat's wrong with using SQL database Triggers? (Click to Expand)



Click to ExpandInbound Processor Exception Handling (Click to Expand)



See Navigating Your HL7 Schema for more information.