The HL7 External Code Validation filter processes incoming HL7 messages to:

  • Examine the contents of multiple pre-configured fields.
  • Verify each field for validity against the defined code set.

Messages entering this filter must be syntactically valid and of a type contained in the definition file. Syntactic validation and the filtering of syntactically invalid messages are achieved separately through the use of a validation filter and conditional connectors.

If a message is found to contain one or more codes that are invalid for the specified code-set, a property is set to store these validation errors. This property can then be used by the ACK filter to generate a negative acknowledgment. The original message is sent intact from the Code Validation filter, regardless of the validity or otherwise of the codes which it contains.

If the database becomes unavailable after the filter started, messages will be directed through the error connector with a message property stating this.

Configuration Properties

Property

Description

Definition

The definition file for input messages.

Coded Fields

The coded fields to validate. These should be HL7 CE datatypes or CE compatible types. Refer to Configuration of Coded Fields for details.

Database - url

The JDBC URL with which to connect to the database containing the coding systems. Refer to Database Drivers and URLs for details.

Database - username

The username with which to connect to the database.

Database - password

The password with which to connect to the database.

Database - driver

The driver to connect to the database with. Refer to Database Drivers and URLs for details.

Socket Timeout

Specifies how long, in seconds, the underlying connection should remain open before timing out. The socket timeout prevents Rhapsody from waiting indefinitely for results from a database in the event Rhapsody loses its connection to the database.

A value of zero indicates the timeout is not configured.

Tables

The code-set with which the coded fields are validated. Refer to Configuration of the Code Set for details.

Fail Action

Determines if messages that fail code validation are sent to the error node (the default) or the normal connector to continue processing.

  • Continue Processing
  • Send to Error Node

Error Generation Type

If validation errors are found, what format should the error list be reported in?

  • HL7 - generates an ERR segment.
  • None - do not report the error list.

Output Property

The message property to which a validation error list should be stored in when validation errors are detected. Defaults to CodeValidationErrors. A leading $ in front of this property name is ignored.

Change Identifier and Coding System Case

Determines whether the identifier's/coding system's case should be changed before testing if it is present. This option is to allow for case insensitivity as the filter has no way of knowing how the database handles case-insensitive comparisons or indexes.

  • No Change
  • Uppercase
  • Lowercase

Cache Size

The number of coded fields from the database that are stored in memory. The larger the size of the cache, the less database access will be required which will increase performance but requires more memory. This must have a value of 1 or greater.

Cache Age Limit (minutes)

The age limit specifies how long a coded field will be retained for use by the filter. This allows updates in the database to propagate to the cache. The default value of 1440 (24 hours) means a database update can take a maximum of 24 hours to effect the filter.

Coded fields are not purged from the cache, but only marked for update. Therefore having a low value will not decrease memory use in low activity periods.

Connection Pool Size

Sets a limit on the number of connections the filter can hold to the database. Once a connection is opened it is not released until the filter is stopped.

Invalid Path Action

The action to perform when a path is not valid for a message:

  • Ignore
  • Log
  • Throw invalid path selection

Published Properties

Published properties for the HL7 External Code Validation filter are:

Property Name

Description

Output Property (from configuration)

The list of validation errors this filter detected. This can be used as the input for an ACK filter to generate an acknowledgment.

HasCodeValidationErrors

Specifies whether this message has code validation errors.

CodeValidationDatabase Unavailable

Specifies whether this message could not complete validation because the database is uncontactable.

CodeValidationParseFailed

Specifies whether this message could not be validated because the filter is unable to parse the message with the definition provided in the configuration.

CodeValidationInternal Error

Specifies whether this message could not complete validation because of an internal error (other than database failure) in the filter.