The HL7 External Code Translation Filter takes input of one HL7 message and attempts to translate the contents of multiple, pre-configured coded fields to another coding system. Code Translation is an extension on Code Validation and is setup in a similar way.
The Code Translation filter performs validation in the same way as the Code Validation filter and once a field has been validated it is translated.
Configuration Properties
Property |
Description |
---|---|
Definition |
The definition file for input messages, click the ... Browse button to locate this. |
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 with which to connect to the database. 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. |
Translation |
The same columns as the Table setup except it describes which values the CE fields should be translated to. The Row in Translation are matched with the Rows in Tables by taking the first match between the 'Table Names'. Refer to Examples 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:
|
Translation Behavior |
Determines what should happen to the new values:
|
Error Generation Type |
Defines how error messages are formatted:
|
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 |
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 allows for case insensitivity as the filter has no way of knowing how the database handles case-insensitive comparisons or indexes.
|
Cache Size |
Specify the number of coded fields from the database that are stored in memory. The larger the size of the cache, the less database access is required which will increase performance but requires more memory. This must have a value of 1 or greater. The default value is |
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 Coded fields are not purged from the cache; they are only marked for update. Therefore having a low value does not decrease memory use in low activity periods. |
Connection Pool Size |
The number of connections the filter can have to the database. A value of 2 - 5 is generally appropriate. A small cache size (relative to the database) generally indicates a large pool size is required for best performance. |
Invalid Path Action |
The action to perform when a path is not valid for a message:
|
Examples
The following examples show two simple ways that translation can be performed. There are many possible ways for the translation to be performed. The only restrictions are: Both the Table and Translation have a Table Name that matches. Both the Table and Translation have an Identifier Column and either a Coding System, Coding System Column or both. Everything else is optional.
Example 1 shows a database table, the values set in the Tables and Translation and an example CE before and after it is translated.
Simple Translation
This example shows a simple translation using a database table that contains the Identifier and the Identifier to translate to. The coding system is specified as a parameter in the configuration.
Database Table CodingSystemA
Value |
NewValue |
---|---|
A |
Z |
B |
X |
C |
Y |
D |
W |
Tables
Property |
Value |
---|---|
Table Name |
CodingSystemA |
Identifier Column |
Value |
Description Column |
|
Coding System |
TestCodingSystem1 |
Version |
|
Coding System Column |
|
Version Column |
|
Translation
Property |
Value |
---|---|
Table Name |
CodingSystemA |
Identifier Column |
NewValue |
Description Column |
|
Coding System |
NewCodingSystem |
Version |
|
Coding System Column |
|
Version Column |
|
Example Message (OK)*
Coding System Name |
TestCodingSystem1 |
Identifier |
D |
Result
Coding System Name |
NewCodingSystem |
Identifier |
W |
Translation Using a Database Table
This example shows a translation using a database table that contains both the coding System and Identifier to translate from and to.
Database Table MultipleA
System |
Identifier |
NewSystem |
NewIdentifier |
---|---|---|---|
CS 1 |
A |
CS A |
1 |
CS 2 |
A |
CS A |
2 |
Table
Property |
Value |
---|---|
Table Name |
MultipleA |
Identifier Column |
Identifier |
Description Column |
|
Coding System |
|
Version |
|
Coding System Column |
System |
Version Column |
|
Translation
Property |
Value |
---|---|
Table Name |
MultipleA |
Identifier Column |
NewValue |
Description Column |
|
Coding System |
NewIdentifier |
Version |
|
Coding System Column |
NewSystem |
Version Column |
|
Example Message (OK)
Coding System Name |
CS 1 |
Identifier |
A |
Result
Coding System Name |
CS A |
Identifier |
1 |
Example Message (OK)
Coding System Name |
CS 2 |
Identifier |
A |
Result
Coding System Name |
CS A |
Identifier |
2 |