The X12 Validator filter is used to check the validity of HIPAA X12 messages. The validator will perform validation of the Envelope, Functional Group or both and output a TA1 or 999 acknowledgment depending on the configuration of the filter and the validity of the input message. The filter can be configured to output the original message, acknowledgments and reports, always or never, or when valid or invalid.

The report that is generated is an XML document, with a detailed validation breakdown, that when used in conjunction with an XSLT stylesheet can produce a stylized HTML file. Refer to Validation Report for a sample validation report.

Configuration Properties

Property

Description

X12 Project

The X12 project to use for validation. By default, the Rhapsody Default X12 Project is selected.

To select an X12 project:

  1. Select the browse button to open the Select X12 Project dialog.
  2. Select one of the X12 projects available in the same locker as your filter.

To manage X12 projects, use the X12 Projects Manager.

Transaction Sets

The transaction sets to accept and validate. If no selection is made, then all known transaction sets are validated.

Validate

Whether you want to validate only the envelope, only the functional groups, or both:

  • Envelope.
  • Functional Groups (default).
  • Envelope and Functional Groups.

Output Original

When to output the original message.

  • Always (default).
  • Never.
  • When Valid.
  • When Invalid.

Output Acknowledgment

When to output a TA1 or 999 acknowledgment:

  • Always (default).
  • Never.
  • When Valid.
  • When Invalid.

Output Report

When to output a report:

  • Always (default).
  • Never.
  • When Valid.
  • When Invalid.

Invalid Destination

Whether the acknowledgments and originals for an invalid message should be sent through the normal connector or error connector:

  • Error Connector (default).
  • Normal Connector.

Output for valid messages always goes through the normal connector.

Generate Invalid 999

Whether an invalid 999 should be generated when the GS06 is invalid:

  • Never (default).
  • When GS06 is invalid.

If the original GS06 is invalid, then it is not possible to generate a useful and valid 999. This option allows creating a slightly invalid 999 that contains the bad GS06 value.

Invalid Control Fields

Whether ISA05, ISA06, ISA07, ISA08, GS02 or GS03 are all copied from the original message into the acknowledgment:

  • Copy the fields including illegal characters (default).
  • Leave the fields that illegal characters empty.
  • Copy the fields excluding illegal characters.

When they contain characters not included in the basic and extended character set, this property determines how the values are copied across to these six fields in the acknowledgment.

ISA Control Number Counter

The name of the JavaScript counter to use to generate unique Interchange Control Numbers (ISA13). Interchange Control Numbers are required to be unique for long periods of time.

The default value is ISA13.

GS Control Number Counter

The name of the JavaScript counter to use to generate unique Group Control Numbers (GS06). Group Control Numbers are required to be unique for long periods of time.

The default value is GS06.

ST Control Number Counter

The name of the JavaScript counter to use to generate unique Transaction Set Control Numbers (ST02). Leave blank to number the transaction sets from 0001 within each functional group. Transaction Set Control Numbers only have to be unique within the functional group. Only set a counter if the Transaction Set Control Numbers are to be unique for long periods of time across all functional groups and interchanges.

Output Type Property

The name of the property to write the output type into. The property will contain ORIGINAL, ACKNOWLEDGMENT or REPORT.

Valid Property

The name of the property to write whether the message is valid or invalid. The property will contain either VALID or INVALID.

Acknowledged Property

The name of the property to write whether the message has been acknowledged. The property will contain either ACKED or UNACKED.

Validation Report Version

The version of the XML validation report to be generated:

  • Version 1.
  • Version 2 (default) - enables the XML report.

The settings for Filtered Report XML Nodes are removed when Validation Report Version is set to Version 1.

Filtered Report XML Nodes

Which XML nodes should not be printed in the report. Refer to XML Report Filtering for details on filtering the XML report.

The Filtered Report XML Nodes property is only available when Validation Report Version is set to Version 2.

Validation Options

Enables you to configure validation options through the Validation Options dialog:

  • Ignore addendum when matching transaction set types - when matching the transaction set, the Addendum is omitted from the Guide Id (GS08/ST03). For example, when this option is enabled both 005010X224A2 and 005010X224A3 would be recognized and validated as an 837D transaction set. Enabling this option does not change any validation rules or syntax checks, meaning a 005010X224A2 would be validated against the supported version of 005010X224A3. This has the potential for false triggers and can potentially break HIPAA compliance.

  • Ignore HIPAA version when matching transaction set types - when matching the transaction set, the HIPAA version is omitted from the Guide Id (GS08/ST03). For example, when this option is enabled both 005010X224 and 004010X224 would be recognized and validated as a v5010 837D transaction set. Enabling this option does not change any validation rules or syntax checks, meaning a 004010X224 would be validated against the rules for v5010 only. This has the potential for false triggers and can potentially break HIPAA compliance.

  • Match transaction set types using only the Guide Id - the transaction set is identified exclusively by the value found in GS08 of the interchange. If this value is missing, it will be validated against the value in ST03. This option enables a message to be identified when the Functional Identifier (GS01) and/or the Purpose Codes (BHT02) are missing from the interchange.
  • Set AK901 to R for any rejected transaction sets - typically for any submitted interchange, if some of the transactions sets are rejected and some are accepted, then the AK901 of the outputted 999 should be set to P. If specified, validation property should be set to VALID. When enabled, this option overrules that convention and sets the AK901 to R if there is an error with any of the submitted transactions sets and, if applicable, the validation property is set to INVALID.

XML Report Filtering

The XML validation report generated by the filter can be filtered so selected XML elements are not generated.

To enable filtering:

  1. Ensure Validation Report Version is set to Version 2. Reports generated using version 2 and have the formatVersion attribute set to 2 in the report element: <report formatVersion="2">. Reports generated using version 1 do not contain the formatVersion attribute in the report element: <report>.
  2. Set the Filtered Report XML Nodes configuration property with the values you want filtered. There are three types of values that you can enter:
    • Element names - prevent any elements with the entered names from being written to the report. For example, to remove all instances of the element <raw>, enter the value raw.
    • Relative paths - prevent any elements that match the entered partial paths from being written to the report. For example, to remove all instances of the element <raw> that are a child of the element <segment>, enter <segment>/raw.
    • Absolute paths - prevent elements that match the entered exact paths from being written to the report. For example, entering /report/raw. removes all instances of the element <raw> that is the child of the top-level element <report>.

HIPAA X12 005010 Transactions

The following table lists the implementation standards used by the filter for HIPAA X12 005010 transactions:

Transaction  Implementation  Syntactic  Semantic 
270  x279A1  (tick) (tick)
271  x279A1  (tick) (tick)
276  x212  (tick) (error)
277  x212  (tick) (error)
277 x214

(tick)

(tick)

278_REQ  x217  (tick) (error)
278_RES  x217  (tick) (error)
820  x218  (tick) (error)
834  x220A1  (tick) (error)
835  x221A1  (tick) (tick)
837P  x222A1  (tick) (tick)
837I  x223A2  (tick) (tick)
837D  x224A2  (tick) (tick)
997  x230  (tick) (error)
999  x231A1  (tick) (tick)