This project has moved. For the latest updates, please go here.

hipaa x12 837p

Apr 13, 2015 at 2:01 PM
I'm trying to validate some 837p in order to get ready to generate new ones for the same provider. I ran into an issue where the parser is quitting on SBR. The same invoices pass other parsers/validators, and are valid according to our payer. Luckily I have a sample invoice that throws the same issues.

here's a link
https://app.box.com/s/54w5crmc95nzejny4f67alfpl88diaip
Coordinator
Apr 22, 2015 at 3:14 PM
Hi,

I played with the file you attached and to me it looks incorrect per the definition. What happens is that the second SBR is searched after the HL, which was found in G_TS837_2000C instead of G_TS837_2000B. This is the expected behavior IMHO, because it would always skip G_TS837_2000C.

In case you won't be using G_TS837_2000C at all, a quick solution would be to open the class file 837_P.cs and comment out the reference to G_TS837_2000C on line 21639 and the public property, e.g.

[System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.4.0.35042")]
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="www.edifabric.com/x12")]
[System.Xml.Serialization.XmlRootAttribute(Namespace="www.edifabric.com/x12", IsNullable=false)]
public partial class G_TS837_2000B {
private S_HL_SubscriberHierarchicalLevel s_HL_SubscriberHierarchicalLevelField;

private S_SBR_SubscriberInformation s_SBR_SubscriberInformationField;

private S_PAT_PatientInformation s_PAT_PatientInformationField;

private A_NM1_3 a_NM1_3Field;

private List<G_TS837_2300> g_TS837_2300Field;

//private List<G_TS837_2000C> g_TS837_2000CField;

[System.Xml.Serialization.XmlElementAttribute(Order=0)]
public S_HL_SubscriberHierarchicalLevel S_HL_SubscriberHierarchicalLevel {
    get {
        return this.s_HL_SubscriberHierarchicalLevelField;
    }
    set {
        this.s_HL_SubscriberHierarchicalLevelField = value;
    }
}

[System.Xml.Serialization.XmlElementAttribute(Order=1)]
public S_SBR_SubscriberInformation S_SBR_SubscriberInformation {
    get {
        return this.s_SBR_SubscriberInformationField;
    }
    set {
        this.s_SBR_SubscriberInformationField = value;
    }
}

[System.Xml.Serialization.XmlElementAttribute(Order=2)]
public S_PAT_PatientInformation S_PAT_PatientInformation {
    get {
        return this.s_PAT_PatientInformationField;
    }
    set {
        this.s_PAT_PatientInformationField = value;
    }
}

[System.Xml.Serialization.XmlElementAttribute(Order=3)]
public A_NM1_3 A_NM1_3 {
    get {
        return this.a_NM1_3Field;
    }
    set {
        this.a_NM1_3Field = value;
    }
}

[System.Xml.Serialization.XmlElementAttribute("G_TS837_2300", Order=4)]
public List<G_TS837_2300> G_TS837_2300 {
    get {
        return this.g_TS837_2300Field;
    }
    set {
        this.g_TS837_2300Field = value;
    }
}

//[System.Xml.Serialization.XmlElementAttribute("G_TS837_2000C", Order=5)]
//public List<G_TS837_2000C> G_TS837_2000C {
//    get {
//        return this.g_TS837_2000CField;
//    }
//    set {
//        this.g_TS837_2000CField = value;
//    }
//}
}
This way it properly found the correct HL and then the SBR. Hope it helps.

Cheers,
Kamen