How to implement EDI X12 HIPAA SNIP levels validation
HIPAA 5010 expands HIPAA regulation to include electronic transmission of healthcare transactions, including eligibility, claim status, referrals, claims, and remittances. ASC X12 Version 5010 is the adopted standard format for transactions, except those with retail pharmacies.
HIPAA standard is used by physicians, clearinghouses, hospitals, pharmacies, payers, and dentists. Some of the most popular messages are 837P, 270, 271, 278, 276, 834, etc.
View all supported HIPAA templates for 5010 and 4010:
EDI Tools for .NET has helped customers to acquire CAQH Certifications and our products are used to boost claims, remittance, eligibility, and claims status processing by several major HIPAA clearinghouses.
EDI Tools for .NET supports all HIPAA validation level types and additional, partner-specific logic, or product type requirements can be achieved by either amending the EDI C# templates or extending the validation logic.
To validate HIPAA SNIP levels 2-6 for an EDI transaction, call the IsValid() method of its EdiMessage. All existing and custom validation logic will be executed as part of this method.
HIPAA SNIP Level | Supported | Validated when | Configured by |
---|---|---|---|
SNIP Level 1 | Yes | EDI document is translated using EdiReader | ValidationSettings and the structure of the EDI templates. To stop the validation at this level, set ValidationSettings.ValidationLevel = SyntaxOnly_SNIP1 |
SNIP Level 2 | Yes | IsValid() is called | The validation attributes and custom validation. To stop the validation at this level, set ValidationSettings.ValidationLevel = LimitsAndCodes_SNIP2 |
SNIP Level 3 | Yes | IsValid() is called | Balancing validation is available for HIPAA 5010 820, 835, 837D, 837I, and 837P, and is implemented in the templates. To stop the validation at this level, set ValidationSettings.ValidationLevel = Balancing_SNIP3 |
SNIP Level 4 | Yes | IsValid() is called | This validation is a combination of intra-segment validation using conditional attributes and situational validation. To stop the validation at this level, set ValidationSettings.ValidationLevel = InterSegment_SNIP4 |
SNIP Level 5 | Yes | IsValid() is called | The external codes can be dynamically added using DataElementMaps or by creating a modyfied version of the template. |
SNIP Level 6 | Yes | This requires customizations of the template and extending the validation using attributes or implementing IEdiValidator. | |
SNIP Level 7 | Yes | This requires customizations of the template to match the external partner requirements. |
EDI Tools for .NET also supports the processing of very large 834 and 835 EDI files by using a unique transaction splitting technology that can be safely used in accordance with EDI document validation and to generate automatic acknowledgments, regardless of the original file size.
HIPAA SNIP Type 1
What is HIPAA SNIP level 1?
EDI Standard Integrity Testing: Validate the basic syntactical integrity of the EDI submission.
How to validate HIPAA SNIP level 1?
EDI Templates define the structure of EDI documents and syntactical integrity is inherently interwoven into the notion of EDI templates. All EDI templates derive from EdiMessage.
EDI Tools for .NET checks the integrity of EDI documents whilst translating them from EDI files, hence, HIPAA SNIP level 1 is automatically validated when EDI files are being translated. You don't need to do anything to enable this level of validation.
EDI Tools for .NET supports partial parsing by default, which means that even faulty EDI documents can be translated. To ensure that an EDI transaction is syntactically correct, check that the HasErrors property of EdiMessage is false.
To stop the validation at this level, set ValidationSettings.ValidationLevel = SyntaxOnly_SNIP1
Parsing EDI transactions does not validate if the header and trailer control numbers match or if the count of segments matches that in the trailer. To validate this, set the DiscardValidationAttributes property in ValidationSettings to true, and call IsValid() of EdiMessage.
Additional information:
HIPAA SNIP Type 2
What is HIPAA SNIP level 2?
Type 2 HIPAA Implementation Guide Requirement Testing: Validate HIPAA requirement-guide-specific syntax requirement by checking limits on repeat counts, used or not used qualifiers, code, elements, and segments.
How to validate HIPAA SNIP level 2?
EDI Templates define not only the structure of EDI documents but also how the represented EDI transaction will be validated, using validation attributes. All EDI templates derive from EdiMessage.
EDI Tools for .NET provides attributes to validate:
- Usage (mandatory or optional)
- Position (segments and loops are in the correct sequence)
- Repeat count
- Length of data elements
- Type of data elements (alphanumeric, numeric, code set, etc.)
- Code sets defined on data elements
- Sequence counts on LX and ENT segments
-
Correct HL (hierarchy levels) segments. This includes parent-child relationships, sequential segments, and correct parent references.
To stop the validation at this level, set ValidationSettings.ValidationLevel = LimitsAndCodes_SNIP2
To validate an EDI document for HIPAA SNIP level 2, execute the IsValid() method of its EdiMessage. Head on to the How to validate EDI with templates article to learn how to interpret the validation results.
By default, IsValid() does not validate alpha and alphanumeric data elements for allowed symbols. This type of validation needs to be explicitly enabled, see the additional information below.
Additional information:
- How to validate EDI with templates
- How to configure EDI validation
- How to validate X12 data elements
- How to validate EDIFACT data elements
HIPAA SNIP Type 3
What is HIPAA SNIP level 3?
Type 3 HIPAA Balance Testing: Validate that claim line item amounts are equal to the total claim amount.
How to validate HIPAA SNIP level 3?
Balancing validation is available as custom implemetation of IEdiValidator in the templates for the following transactions and rules:
Transaction Set | Balancing Formula |
820 | BPR02 = SUM of 2300A_RMR04 + SUM of 2300B_RMR04 |
820 | RMR04 = RMR05 + ADX01 |
835 | SVC02 - Sum 2110 CAS (CAS03 + CAS06 + CAS09 + CAS12 + CAS15 + CAS18) = SVC03 |
835 | CLP03 - (Sum 2100 CAS (CAS03 + CAS06 + CAS09 + CAS12 + CAS15 + CAS18) + Sum 2110 CAS (CAS03 + CAS06 + CAS09 + CAS12 + CAS15 + CAS18)) = CLP04 |
835 | Sum 2100 CLP04 - Sum PLB (PLB04 + PLB06 + PLB08 + PLB10 + PLB12 + PLB14) = BPR02 |
837D | 2300_CLM02 = SUM of 2400_SV302 |
837I | 2300_CLM02 = SUM of 2400_SV202 |
837P | 2300_CLM02 = SUM of 2400_SV102 |
To stop the validation at this level, set ValidationSettings.ValidationLevel = Balancing_SNIP3
Additional information:
HIPAA SNIP Type 4
What is HIPAA SNIP level 4?
Type 4 HIPAA Inter-Segment Situation Testing: Validate inter-segment relationship. For example, if element A exists, then element B must be populated.
How to validate HIPAA SNIP level 4?
EDI Templates define not only the structure of EDI documents but also how the represented EDI transaction will be validated, using validation attributes and conditional validation attributes. All EDI templates derive from EdiMessage.
The conditional validation attributes cover all HIPAA syntax notes rules.
EDI Tools for .NET provides attributes to conditionally validate:
- Conditional - if the annotated EDI data element is not null then all elements at the specified positions must also be not null.
- ConditionalAny - If the annotated EDI data element is not null then at least one of the EDI data elements at the specified positions must also be not null. The attribute is applied to only one of the EDI data elements included in the condition.
- Exclusion - Only one of the EDI data elements at the specified positions and the annotated data element altogether must be not null.
- Paired - If any of the elements at the specified positions or the annotated element is not null, then all the elements at the specified positions and the annotated element must be not null. It is applied to only one of all the paired items.
- RequiredAny - At least one of the elements at the specified positions or the annotated element must be not null.
To stop the validation at this level, set ValidationSettings.ValidationLevel = InterSegment_SNIP4
To validate an EDI document for HIPAA SNIP level 4, execute the IsValid() method of its EdiMessage. Head on to the How to validate EDI with templates article to learn how to interpret the validation results.
By default, EDI Tools for .NET validates syntax notes only and does not validate situational rules. Go to How to validate HIPAA situational rules article for more information.
Additional information:
- How to validate EDI with templates
- How to configure EDI validation
- How to validate HIPAA situational rules
HIPAA SNIP Type 5
What is HIPAA SNIP level 5?
Type 5 HIPAA External Code Set Testing: Validate specific code set values for HIPAA standards.
How to validate HIPAA SNIP level 5?
There are three ways to validate partner-specific EDI codes:
- By creating a separate EDI template for each partner, and configure the EDI codes according to the partner's requirements - static
- By mapping code set types - static
- By importing external EDI codes as strings - dynamic
The first option is to create a dedicated copy of the full EDI template for each partner, which includes the EDI codes, at design time. The second option is to only create a dedicated copy of the EDI codes for each partner, also at design time. The last option is to dynamically load the EDI codes and can be used to read them from configuration or file at runtime.
To validate an EDI document for HIPAA SNIP level 5, execute the IsValid() method of its EdiMessage. Head on to the How to validate EDI with templates article to learn how to interpret the validation results.
Failed EDI codes are reported as "Invalid code value" with error code 7.
Additional information:
- How to create an EDI template for a partner
- How to validate EDI codes by a code set map
- How to validate EDI codes with an external list
- X12 997 error codes
- X12 999 error codes
HIPAA SNIP Type 6
What is HIPAA SNIP level 6?
Type 6 Product Type/Type of Service Testing: Validate that segments that differ based on certain Health-care services are properly created and processed.
How to validate HIPAA SNIP level 6?
EDI Templates define the structure of EDI documents, therefore, to configure this type of validation, the appropriate segments must be positioned correctly in the hierarchy of the EDI template. All EDI templates derive from EdiMessage.
Should any additional validation take place, either conditionally or not, the available validation attributes and validation extension (see validating SNIP levels 2 and 3) can be utilized to cover every SNIP level 6 requirement.
Additional information:
HIPAA SNIP Type 7
What is HIPAA SNIP level 7?
Type 7 Trading Partner-Specific Testing: Compliance with the payer-specific requirement.
How to validate HIPAA SNIP level 7?
EDI Templates define the structure of EDI documents, therefore, to configure this type of validation, a custom EDI template can be created for each partner. All EDI templates derive from EdiMessage.
Our EDI templates allow you to quickly configure every EDI transaction to conform to your trading partner requirements. ISA and GS headers can also be customized to match any custom requirement.
Additional information:
Comments
0 comments
Please sign in to leave a comment.