private void cmdTranslate_Click(object sender, System.EventArgs e)
{
// This is just an example to show how to translate an EDI X12 837 4010 X098 HIPAA file in C#
// with the Framework EDI component
ediDocument oEdiDoc = null;
ediSchemas oSchemas = null;
ediDataSegment oSegment = null;
ediDataElements oElements = null;
ediDataElement oElement = null;
ediDataElement oCompositeElement = null;
ediDataElements oSubElements = null;
string sSegmentID;
string sLoopSection;
int nArea;
string sValue;
string sPath;
string sHlEntity = "";
string sNm1Entity = "";
string sQlfr;
//application path
sPath = AppDomain.CurrentDomain.BaseDirectory;
//CREATES EDIDOC OBJECT
ediDocument.Set(ref oEdiDoc, new ediDocument());
//THIS MAKES CERTAIN THAT FREDI ONLY USES THE SEF FILE PROVIDED, AND THAT IT DOES
//NOT USE ITS BUILT-IN STANDARD REFERENCE TABLE TO TRANSLATE THE EDI FILE.
ediSchemas.Set(ref oSchemas,(ediSchemas) oEdiDoc.GetSchemas()); //oSchemas = (ediSchemas) oEdiDoc.GetSchemas();
oSchemas.EnableStandardReference = false;
//THIS OPTIONS STOPS FREDI FROM KEEPING ALL THE SEGMENTS IN MEMORY
oEdiDoc.CursorType = DocumentCursorTypeConstants.Cursor_ForwardOnly;
//LOADS THE SEF FILE
oEdiDoc.ImportSchema(sPath + "837_X098.SEF", 0);
//LOADS THE EDI FILE
oEdiDoc.LoadEdi(sPath + txtEdifile.Text );
//GETS THE FIRST DATA SEGMENT
ediDataSegment.Set(ref oSegment, (ediDataSegment) oEdiDoc.FirstDataSegment); //oSegment = (ediDataSegment) oEdiDoc.FirstDataSegment
//LOOP THAT WILL TRAVERSE THRU EDI FILE FROM TOP TO BOTTOM
while ( oSegment != null )
{
//DATA SEGMENTS WILL BE IDENTIFIED BY THEIR ID, THE LOOP SECTION AND AREA
//(OR TABLE) NUMBER THAT THEY ARE IN.
sSegmentID = oSegment.ID;
sLoopSection = oSegment.LoopSection;
nArea = oSegment.Area;
if (nArea == 0)
{
if (sLoopSection == "")
{
if (sSegmentID == "ISA")
{
sValue = oSegment.get_DataElementValue(1,0); //Authorization Information Qualifier
sValue = oSegment.get_DataElementValue(2,0); //Authorization Information
sValue = oSegment.get_DataElementValue(3,0); //Security Information Qualifier
sValue = oSegment.get_DataElementValue(4,0); //Security Information
sValue = oSegment.get_DataElementValue(5,0); //Interchange ID Qualifier
sValue = oSegment.get_DataElementValue(6,0); //Interchange Sender ID
listBox1.Items.Add(oSegment.get_DataElement(6).Description + " = " + sValue);
sValue = oSegment.get_DataElementValue(7,0); //Interchange ID Qualifier
sValue = oSegment.get_DataElementValue(8,0); //Interchange Receiver ID
listBox1.Items.Add(oSegment.get_DataElement(8).Description + " = " + sValue);
sValue = oSegment.get_DataElementValue(9,0); //Interchange Date
sValue = oSegment.get_DataElementValue(10,0); //Interchange Time
sValue = oSegment.get_DataElementValue(11,0); //Interchange Control Standards Identifier
sValue = oSegment.get_DataElementValue(12,0); //Interchange Control Version Number
sValue = oSegment.get_DataElementValue(13,0); //Interchange Control Number
listBox1.Items.Add(oSegment.get_DataElement(13).Description + " = " + sValue);
sValue = oSegment.get_DataElementValue(14,0); //Acknowledgment Requested
sValue = oSegment.get_DataElementValue(15,0); //Usage Indicator
sValue = oSegment.get_DataElementValue(16,0); //Component Element Separator
}
else if (sSegmentID == "GS")
{
sValue = oSegment.get_DataElementValue(1,0); //Functional Identifier Code
sValue = oSegment.get_DataElementValue(2,0); //Application Sender's Code
sValue = oSegment.get_DataElementValue(3,0); //Application Receiver's Code
sValue = oSegment.get_DataElementValue(4,0); //Date
sValue = oSegment.get_DataElementValue(5,0); //Time
sValue = oSegment.get_DataElementValue(6,0); //Group Control Number
listBox1.Items.Add(oSegment.get_DataElement(6).Description + " = " + sValue);
sValue = oSegment.get_DataElementValue(7,0); //Responsible Agency Code
sValue = oSegment.get_DataElementValue(8,0); //Version / Release / Industry Identifier Code
} //sSegmentID
} //sLoopSection
}
else if (nArea == 1)
{
if (sLoopSection == "")
{
if (sSegmentID == "ST")
{
sValue = oSegment.get_DataElementValue(1,0); //Transaction Set Identifier Code
sValue = oSegment.get_DataElementValue(2,0); //Transaction Set Control Number
}
else if (sSegmentID == "BHT")
{
sValue = oSegment.get_DataElementValue(1,0); //Hierarchical Structure Code
sValue = oSegment.get_DataElementValue(2,0); //Transaction Set Purpose Code
sValue = oSegment.get_DataElementValue(3,0); //Reference Identification
listBox1.Items.Add(oSegment.get_DataElement(3).Description + " = " + sValue);
sValue = oSegment.get_DataElementValue(4,0); //Date
listBox1.Items.Add(oSegment.get_DataElement(4).Description + " = " + sValue);
sValue = oSegment.get_DataElementValue(5,0); //Time
sValue = oSegment.get_DataElementValue(6,0); //Transaction Type Code
}
else if (sSegmentID == "REF")
{
sValue = oSegment.get_DataElementValue(1,0); //Reference Identification Qualifier
sValue = oSegment.get_DataElementValue(2,0); //Reference Identification
} //Segment ID
}
else if (sLoopSection == "NM1")
{
if (sSegmentID == "NM1")
{
sNm1Entity = oSegment.get_DataElementValue(1,0);
}
if (sNm1Entity == "41") //SUBMITTER
{
if (sSegmentID == "NM1")
{
sValue = oSegment.get_DataElementValue(1,0); //Entity Identifier Code
sValue = oSegment.get_DataElementValue(2,0); //Entity Type Qualifier
sValue = oSegment.get_DataElementValue(3,0); //Name Last or Organization Name
listBox1.Items.Add(oSegment.get_DataElement(3).Description + " (Submitter) = " + sValue);
sValue = oSegment.get_DataElementValue(4,0); //Name First
sValue = oSegment.get_DataElementValue(5,0); //Name Middle
sValue = oSegment.get_DataElementValue(6,0); //Name Prefix
sValue = oSegment.get_DataElementValue(7,0); //Name Suffix
sValue = oSegment.get_DataElementValue(8,0); //Identification Code Qualifier
sValue = oSegment.get_DataElementValue(9,0); //Identification Code
}
else if (sSegmentID == "PER")
{
sValue = oSegment.get_DataElementValue(1,0); //Contact Function Code
sValue = oSegment.get_DataElementValue(2,0); //Name
sValue = oSegment.get_DataElementValue(3,0); //Communication Number Qualifier
sValue = oSegment.get_DataElementValue(4,0); //Communication Number
sValue = oSegment.get_DataElementValue(5,0); //Communication Number Qualifier
sValue = oSegment.get_DataElementValue(6,0); //Communication Number
} //sSegmentID
}
else if (sNm1Entity == "40") //RECEIVER
{
if (sSegmentID == "NM1")
{
sValue = oSegment.get_DataElementValue(1,0); //Entity Identifier Code
sValue = oSegment.get_DataElementValue(2,0); //Entity Type Qualifier
sValue = oSegment.get_DataElementValue(3,0); //Name Last or Organization Name
listBox1.Items.Add(oSegment.get_DataElement(3).Description + " (Receiver) = " + sValue);
sValue = oSegment.get_DataElementValue(4,0); //Name First
sValue = oSegment.get_DataElementValue(5,0); //Name Middle
sValue = oSegment.get_DataElementValue(6,0); //Name Prefix
sValue = oSegment.get_DataElementValue(7,0); //Name Suffix
sValue = oSegment.get_DataElementValue(8,0); //Identification Code Qualifier
sValue = oSegment.get_DataElementValue(9,0); //Identification Code
}
}
} //sLoopSection
}
else if (nArea == 2)
{
if (sLoopSection == "")
{
}
else if (sLoopSection == "HL" & sSegmentID == "HL")
{
sHlEntity = oSegment.get_DataElementValue(3,0);
} //sLoopSection
if (sHlEntity == "20") //BILLING PROVIDER
{
if (sLoopSection == "HL")
{
}
else if (sLoopSection == "HL;NM1")
{
if (sSegmentID == "NM1")
{
sNm1Entity = oSegment.get_DataElementValue(1,0);
}
if (sNm1Entity == "85") //BILLING PROVIDER NAME
{
if (sSegmentID == "NM1")
{
sValue = oSegment.get_DataElementValue(1,0); //Entity Identifier Code
sValue = oSegment.get_DataElementValue(2,0); //Entity Type Qualifier
sValue = oSegment.get_DataElementValue(3,0); //Name Last or Organization Name
listBox1.Items.Add(oSegment.get_DataElement(3).Description + " (Billing Provider) = " + sValue);
sValue = oSegment.get_DataElementValue(4,0); //Name First
sValue = oSegment.get_DataElementValue(5,0); //Name Middle
sValue = oSegment.get_DataElementValue(6,0); //Name Prefix
sValue = oSegment.get_DataElementValue(7,0); //Name Suffix
sValue = oSegment.get_DataElementValue(8,0); //Identification Code Qualifier
sValue = oSegment.get_DataElementValue(9,0); //Identification Code
}
else if (sSegmentID == "N3")
{
sValue = oSegment.get_DataElementValue(1,0); //Address Information
}
else if (sSegmentID == "N4")
{
sValue = oSegment.get_DataElementValue(1,0); //City Name
sValue = oSegment.get_DataElementValue(2,0); //State or Province Code
sValue = oSegment.get_DataElementValue(3,0); //Postal Code
}
}
}
}
// **** SUBSCRIBER HIERARCHICAL LEVEL ****
else if (sHlEntity == "22") //SUBSCRIBER
{
if (sLoopSection == "HL")
{
if (sSegmentID == "HL")
{
sValue = oSegment.get_DataElementValue(1,0); //Hierarchical ID Number
sValue = oSegment.get_DataElementValue(2,0); //Hierarchical Parent ID Number
sValue = oSegment.get_DataElementValue(3,0); //Hierarchical Level Code
sValue = oSegment.get_DataElementValue(4,0); //Hierarchical Child Code
} //Segment ID
}
else if (sLoopSection == "HL;NM1")
{
if (sSegmentID == "NM1")
{
sNm1Entity = oSegment.get_DataElementValue(1,0);
}
if (sNm1Entity == "IL") //SUBSCRIBER NAME
{
if (sSegmentID == "NM1")
{
sValue = oSegment.get_DataElementValue(1,0); //Entity Identifier Code
sValue = oSegment.get_DataElementValue(2,0); //Entity Type Qualifier
sValue = oSegment.get_DataElementValue(3,0); //Name Last or Organization Name
listBox1.Items.Add(oSegment.get_DataElement(3).Description + " (Subscriber) = " + sValue);
sValue = oSegment.get_DataElementValue(4,0); //Name First
sValue = oSegment.get_DataElementValue(5,0); //Name Middle
sValue = oSegment.get_DataElementValue(6,0); //Name Prefix
sValue = oSegment.get_DataElementValue(7,0); //Name Suffix
sValue = oSegment.get_DataElementValue(8,0); //Identification Code Qualifier
sValue = oSegment.get_DataElementValue(9,0); //Identification Code
}
else if (sSegmentID == "N3")
{
sValue = oSegment.get_DataElementValue(1,0); //Address Information
}
else if (sSegmentID == "N4")
{
sValue = oSegment.get_DataElementValue(1,0); //City Name
sValue = oSegment.get_DataElementValue(2,0); //State or Province Code
sValue = oSegment.get_DataElementValue(3,0); //Postal Code
}
else if (sSegmentID == "DMG")
{
sValue = oSegment.get_DataElementValue(1,0); //Date Time Period Format Qualifier
sValue = oSegment.get_DataElementValue(2,0); //Date Time Period
sValue = oSegment.get_DataElementValue(3,0); //Gender Code
} //Segment ID
}
else if (sNm1Entity == "PR") //PAYER NAME
{
if (sSegmentID == "NM1")
{
sValue = oSegment.get_DataElementValue(1,0); //Entity Identifier Code
sValue = oSegment.get_DataElementValue(2,0); //Entity Type Qualifier
sValue = oSegment.get_DataElementValue(3,0); //Name Last or Organization Name
listBox1.Items.Add(oSegment.get_DataElement(3).Description + " (Payer) = " + sValue);
sValue = oSegment.get_DataElementValue(4,0); //Name First
sValue = oSegment.get_DataElementValue(5,0); //Name Middle
sValue = oSegment.get_DataElementValue(6,0); //Name Prefix
sValue = oSegment.get_DataElementValue(7,0); //Name Suffix
sValue = oSegment.get_DataElementValue(8,0); //Identification Code Qualifier
sValue = oSegment.get_DataElementValue(9,0); //Identification Code
}
else if (sSegmentID == "N3")
{
sValue = oSegment.get_DataElementValue(1,0); //Address Information
}
} //sNm1Entity
}
else if (sLoopSection == "HL;CLM")
{
if (sSegmentID == "CLM")
{
sValue = oSegment.get_DataElementValue(1,0); //Claim Submitter's Identifier
sValue = oSegment.get_DataElementValue(2,0); //Monetary Amount
listBox1.Items.Add(oSegment.get_DataElement(2).Description + " (Subscriber Claim) = " + sValue);
sValue = oSegment.get_DataElementValue(3,0); //Claim Filing Indicator Code
sValue = oSegment.get_DataElementValue(4,0); //Non-Institutional Claim Type Code
sValue = oSegment.get_DataElementValue(5,1); //Facility Code Value
sValue = oSegment.get_DataElementValue(5,2); //Facility Code Qualifier
sValue = oSegment.get_DataElementValue(5,3); //Claim Frequency Type Code
sValue = oSegment.get_DataElementValue(6,0); //Yes/No Condition or Response Code
sValue = oSegment.get_DataElementValue(7,0); //Provider Accept Assignment Code
sValue = oSegment.get_DataElementValue(8,0); //Yes/No Condition or Response Code
sValue = oSegment.get_DataElementValue(9,0); //Release of Information Code
sValue = oSegment.get_DataElementValue(10,0); //Patient Signature Source Code
}
else if (sSegmentID == "DTP")
{
sQlfr = oSegment.get_DataElementValue(1,0);
if (sQlfr == "938") //ORDER
{
sValue = oSegment.get_DataElementValue(1,0); //Date/Time Qualifier
sValue = oSegment.get_DataElementValue(2,0); //Date Time Period Format Qualifier
sValue = oSegment.get_DataElementValue(3,0); //Date Time Period
}
else if (sQlfr == "454") //INITIAL TREATMENT
{
sValue = oSegment.get_DataElementValue(1,0); //Date/Time Qualifier
sValue = oSegment.get_DataElementValue(2,0); //Date Time Period Format Qualifier
sValue = oSegment.get_DataElementValue(3,0); //Date Time Period
}
else if (sQlfr == "431") //Onset of Current Symptoms or Illness
{
sValue = oSegment.get_DataElementValue(1,0); //Date/Time Qualifier
sValue = oSegment.get_DataElementValue(2,0); //Date Time Period Format Qualifier
sValue = oSegment.get_DataElementValue(3,0); //Date Time Period
listBox1.Items.Add(oSegment.get_DataElement(3).Description + " (Subscriber's Onset of Current Symptoms Date) = " + sValue);
}
}
else if (sSegmentID == "REF")
{
sValue = oSegment.get_DataElementValue(1,0); //Reference Identification Qualifier
sValue = oSegment.get_DataElementValue(2,0); //Reference Identification
}
else if (sSegmentID == "HI")
{
sValue = oSegment.get_DataElementValue(1,1); //Code List Qualifier Code
sValue = oSegment.get_DataElementValue(1,2); //Industry Code
sValue = oSegment.get_DataElementValue(1,3); //Date Time Period Format Qualifier
sValue = oSegment.get_DataElementValue(1,4); //Date Time Period
sValue = oSegment.get_DataElementValue(1,5); //Monetary Amount
sValue = oSegment.get_DataElementValue(1,6); //Quantity
sValue = oSegment.get_DataElementValue(1,7); //Version Identifier
sValue = oSegment.get_DataElementValue(2,1); //Code List Qualifier Code
sValue = oSegment.get_DataElementValue(2,2); //Industry Code
sValue = oSegment.get_DataElementValue(2,3); //Date Time Period Format Qualifier
sValue = oSegment.get_DataElementValue(2,4); //Date Time Period
sValue = oSegment.get_DataElementValue(2,5); //Monetary Amount
sValue = oSegment.get_DataElementValue(2,6); //Quantity
sValue = oSegment.get_DataElementValue(2,7); //Version Identifier
} //Segment ID
}
else if (sLoopSection == "HL;CLM;NM1")
{
if (sSegmentID == "NM1")
{
sNm1Entity = oSegment.get_DataElementValue(1,0);
}
if (sNm1Entity == "82") //RENDERING PROVIDER NAME
{
if (sSegmentID == "NM1")
{
sValue = oSegment.get_DataElementValue(1,0); //Entity Identifier Code
sValue = oSegment.get_DataElementValue(2,0); //Entity Type Qualifier
sValue = oSegment.get_DataElementValue(3,0); //Name Last or Organization Name
listBox1.Items.Add(oSegment.get_DataElement(3).Description + " (Subscriber's Rendering Provider)= " + sValue);
sValue = oSegment.get_DataElementValue(4,0); //Name First
sValue = oSegment.get_DataElementValue(5,0); //Name Middle
sValue = oSegment.get_DataElementValue(6,0); //Name Prefix
sValue = oSegment.get_DataElementValue(7,0); //Name Suffix
sValue = oSegment.get_DataElementValue(8,0); //Identification Code Qualifier
sValue = oSegment.get_DataElementValue(9,0); //Identification Code
}
else if (sSegmentID == "PRV")
{
sValue = oSegment.get_DataElementValue(1,0); //Provider Code
sValue = oSegment.get_DataElementValue(2,0); //Reference Identification Qualifier
sValue = oSegment.get_DataElementValue(3,0); //Reference Identification
}
else if (sSegmentID == "N3")
{
sValue = oSegment.get_DataElementValue(1,0); //Address Information
}
else if (sSegmentID == "N4")
{
sValue = oSegment.get_DataElementValue(1,0); //City Name
sValue = oSegment.get_DataElementValue(2,0); //State or Province Code
sValue = oSegment.get_DataElementValue(3,0); //Postal Code
} //Segment ID
}
else if (sNm1Entity == "77") //SERVICE LOCATION
{
if (sSegmentID == "NM1")
{
sValue = oSegment.get_DataElementValue(1,0); //Entity Identifier Code
sValue = oSegment.get_DataElementValue(2,0); //Entity Type Qualifier
sValue = oSegment.get_DataElementValue(3,0); //Name Last or Organization Name
listBox1.Items.Add(oSegment.get_DataElement(3).Description + " (Subscriber's Service Location) = " + sValue);
sValue = oSegment.get_DataElementValue(4,0); //Name First
sValue = oSegment.get_DataElementValue(5,0); //Name Middle
sValue = oSegment.get_DataElementValue(6,0); //Name Prefix
sValue = oSegment.get_DataElementValue(7,0); //Name Suffix
sValue = oSegment.get_DataElementValue(8,0); //Identification Code Qualifier
sValue = oSegment.get_DataElementValue(9,0); //Identification Code
}
else if (sSegmentID == "N3")
{
sValue = oSegment.get_DataElementValue(1,0); //Address Information
}
else if (sSegmentID == "N4")
{
sValue = oSegment.get_DataElementValue(1,0); //City Name
sValue = oSegment.get_DataElementValue(2,0); //State or Province Code
sValue = oSegment.get_DataElementValue(3,0); //Postal Code
} //Segment ID
}
}
else if (sLoopSection == "HL;CLM;LX")
{
if (sSegmentID == "LX")
{
sValue = oSegment.get_DataElementValue(1,0); //Assigned Number
}
else if (sSegmentID == "SV1")
{
oElements = oSegment.DataElements;
sValue = oSegment.get_DataElementValue(1,1); //Product/Service ID Qualifier
sValue = oSegment.get_DataElementValue(1,2); //Product/Service ID
oCompositeElement = oElements.get_DataElement(1);
oSubElements = oCompositeElement.DataElements;
oElement = oSubElements.get_DataElement(2);
listBox1.Items.Add(oElement.Description + " (Subscriber's Service Line) = " + sValue );
sValue = oSegment.get_DataElementValue(1,3); //Procedure Modifier
sValue = oSegment.get_DataElementValue(1,4); //Procedure Modifier
sValue = oSegment.get_DataElementValue(1,5); //Procedure Modifier
sValue = oSegment.get_DataElementValue(1,6); //Procedure Modifier
sValue = oSegment.get_DataElementValue(1,7); //Description
oElement = oSubElements.get_DataElement(7);
listBox1.Items.Add(oElement.Description + " (Subscriber's Service Line) = " + sValue );
sValue = oSegment.get_DataElementValue(2,0); //Monetary Amount
listBox1.Items.Add(oElements.get_DataElement(2).Description + " (Subscriber's Service Line) = " + sValue );
sValue = oSegment.get_DataElementValue(3,0); //Unit or Basis for Measurement Code
sValue = oSegment.get_DataElementValue(4,0); //Quantity
sValue = oSegment.get_DataElementValue(5,0); //Facility Code Value
sValue = oSegment.get_DataElementValue(6,0); //Service Type Code
sValue = oSegment.get_DataElementValue(7,1); //Diagnosis Code Pointer
sValue = oSegment.get_DataElementValue(7,2); //Diagnosis Code Pointer
sValue = oSegment.get_DataElementValue(7,3); //Diagnosis Code Pointer
sValue = oSegment.get_DataElementValue(7,4); //Diagnosis Code Pointer
sValue = oSegment.get_DataElementValue(8,0); //Monetary Amount
sValue = oSegment.get_DataElementValue(9,0); //Yes/No Condition or Response Code
}
else if (sSegmentID == "DTP")
{
sValue = oSegment.get_DataElementValue(1,0); //Date/Time Qualifier
sValue = oSegment.get_DataElementValue(2,0); //Date Time Period Format Qualifier
sValue = oSegment.get_DataElementValue(3,0); //Date Time Period
} //sSegmentID
} //sLoopSection
} //sHlEntity
// **** PATIENT HIERARCHICAL LEVEL ****
else if (sHlEntity == "23") //DEPENDENT
{
if (sLoopSection == "HL")
{
if (sSegmentID == "HL")
{
sValue = oSegment.get_DataElementValue(1,0); //Hierarchical ID Number
sValue = oSegment.get_DataElementValue(2,0); //Hierarchical Parent ID Number
sValue = oSegment.get_DataElementValue(3,0); //Hierarchical Level Code
sValue = oSegment.get_DataElementValue(4,0); //Hierarchical Child Code
}
else if (sSegmentID == "PAT")
{
sValue = oSegment.get_DataElementValue(1,0);
sValue = oSegment.get_DataElementValue(5,0);
sValue = oSegment.get_DataElementValue(6,0);
sValue = oSegment.get_DataElementValue(7,0);
sValue = oSegment.get_DataElementValue(8,0);
sValue = oSegment.get_DataElementValue(9,0);
} //Segment ID
}
else if (sLoopSection == "HL;NM1")
{
if (sSegmentID == "NM1")
{
sNm1Entity = oSegment.get_DataElementValue(1,0);
}
if (sNm1Entity == "QC") //PATIENT
{
if (sSegmentID == "NM1")
{
sValue = oSegment.get_DataElementValue(1,0); //Entity Identifier Code
sValue = oSegment.get_DataElementValue(2,0); //Entity Type Qualifier
sValue = oSegment.get_DataElementValue(3,0); //Name Last or Organization Name
listBox1.Items.Add(oSegment.get_DataElement(3).Description + " (Dependent Patient)= " + sValue);
sValue = oSegment.get_DataElementValue(4,0); //Name First
sValue = oSegment.get_DataElementValue(5,0); //Name Middle
sValue = oSegment.get_DataElementValue(6,0); //Name Prefix
sValue = oSegment.get_DataElementValue(7,0); //Name Suffix
sValue = oSegment.get_DataElementValue(8,0); //Identification Code Qualifier
sValue = oSegment.get_DataElementValue(9,0); //Identification Code
}
else if (sSegmentID == "N3")
{
sValue = oSegment.get_DataElementValue(1,0); //Address Information
}
else if (sSegmentID == "N4")
{
sValue = oSegment.get_DataElementValue(1,0); //City Name
sValue = oSegment.get_DataElementValue(2,0); //State or Province Code
sValue = oSegment.get_DataElementValue(3,0); //Postal Code
}
else if (sSegmentID == "DMG")
{
sValue = oSegment.get_DataElementValue(1,0); //Date Time Period Format Qualifier
sValue = oSegment.get_DataElementValue(2,0); //Date Time Period
sValue = oSegment.get_DataElementValue(3,0); //Gender Code
}
else if (sSegmentID == "REF")
{
sValue = oSegment.get_DataElementValue(1,0);
sValue = oSegment.get_DataElementValue(1,0);
} //Segment ID
} //sNm1Entity
}
else if (sLoopSection == "HL;CLM")
{
if (sSegmentID == "CLM")
{
sValue = oSegment.get_DataElementValue(1,0); //Claim Submitter's Identifier
sValue = oSegment.get_DataElementValue(2,0); //Monetary Amount
listBox1.Items.Add(oSegment.get_DataElement(2).Description + " (Dependent Claim) = " + sValue);
sValue = oSegment.get_DataElementValue(3,0); //Claim Filing Indicator Code
sValue = oSegment.get_DataElementValue(4,0); //Non-Institutional Claim Type Code
sValue = oSegment.get_DataElementValue(5,1); //Facility Code Value
sValue = oSegment.get_DataElementValue(5,2); //Facility Code Qualifier
sValue = oSegment.get_DataElementValue(5,3); //Claim Frequency Type Code
sValue = oSegment.get_DataElementValue(6,0); //Yes/No Condition or Response Code
sValue = oSegment.get_DataElementValue(7,0); //Provider Accept Assignment Code
sValue = oSegment.get_DataElementValue(8,0); //Yes/No Condition or Response Code
sValue = oSegment.get_DataElementValue(9,0); //Release of Information Code
sValue = oSegment.get_DataElementValue(10,0); //Patient Signature Source Code
}
else if (sSegmentID == "DTP")
{
sValue = oSegment.get_DataElementValue(1,0); //Date/Time Qualifier
sValue = oSegment.get_DataElementValue(2,0); //Date Time Period Format Qualifier
sValue = oSegment.get_DataElementValue(3,0); //Date Time Period
}
else if (sSegmentID == "REF")
{
sValue = oSegment.get_DataElementValue(1,0); //Reference Identification Qualifier
sValue = oSegment.get_DataElementValue(2,0); //Reference Identification
}
else if (sSegmentID == "HI")
{
sValue = oSegment.get_DataElementValue(1,1); //Code List Qualifier Code
sValue = oSegment.get_DataElementValue(1,2); //Industry Code
sValue = oSegment.get_DataElementValue(1,3); //Date Time Period Format Qualifier
sValue = oSegment.get_DataElementValue(1,4); //Date Time Period
sValue = oSegment.get_DataElementValue(1,5); //Monetary Amount
sValue = oSegment.get_DataElementValue(1,6); //Quantity
sValue = oSegment.get_DataElementValue(1,7); //Version Identifier
sValue = oSegment.get_DataElementValue(2,1); //Code List Qualifier Code
sValue = oSegment.get_DataElementValue(2,2); //Industry Code
sValue = oSegment.get_DataElementValue(2,3); //Date Time Period Format Qualifier
sValue = oSegment.get_DataElementValue(2,4); //Date Time Period
sValue = oSegment.get_DataElementValue(2,5); //Monetary Amount
sValue = oSegment.get_DataElementValue(2,6); //Quantity
sValue = oSegment.get_DataElementValue(2,7); //Version Identifier
} //Segment ID
}
else if (sLoopSection == "HL;CLM;NM1")
{
if (sSegmentID == "NM1")
{
sNm1Entity = oSegment.get_DataElementValue(1,0);
}
if (sNm1Entity == "82") //RENDERING PROVIDER NAME
{
if (sSegmentID == "NM1")
{
sValue = oSegment.get_DataElementValue(1,0); //Entity Identifier Code
sValue = oSegment.get_DataElementValue(2,0); //Entity Type Qualifier
sValue = oSegment.get_DataElementValue(3,0); //Name Last or Organization Name
sValue = oSegment.get_DataElementValue(4,0); //Name First
sValue = oSegment.get_DataElementValue(5,0); //Name Middle
sValue = oSegment.get_DataElementValue(6,0); //Name Prefix
sValue = oSegment.get_DataElementValue(7,0); //Name Suffix
sValue = oSegment.get_DataElementValue(8,0); //Identification Code Qualifier
sValue = oSegment.get_DataElementValue(9,0); //Identification Code
}
else if (sSegmentID == "PRV")
{
sValue = oSegment.get_DataElementValue(1,0); //Provider Code
sValue = oSegment.get_DataElementValue(2,0); //Reference Identification Qualifier
sValue = oSegment.get_DataElementValue(3,0); //Reference Identification
}
else if (sSegmentID == "N3")
{
sValue = oSegment.get_DataElementValue(1,0); //Address Information
}
else if (sSegmentID == "N4")
{
sValue = oSegment.get_DataElementValue(1,0); //City Name
sValue = oSegment.get_DataElementValue(2,0); //State or Province Code
sValue = oSegment.get_DataElementValue(3,0); //Postal Code
} //Segment ID
}
else if (sNm1Entity == "77") //SERVICE LOCATION
{
if (sSegmentID == "NM1")
{
sValue = oSegment.get_DataElementValue(1,0); //Entity Identifier Code
sValue = oSegment.get_DataElementValue(2,0); //Entity Type Qualifier
sValue = oSegment.get_DataElementValue(3,0); //Name Last or Organization Name
sValue = oSegment.get_DataElementValue(4,0); //Name First
sValue = oSegment.get_DataElementValue(5,0); //Name Middle
sValue = oSegment.get_DataElementValue(6,0); //Name Prefix
sValue = oSegment.get_DataElementValue(7,0); //Name Suffix
sValue = oSegment.get_DataElementValue(8,0); //Identification Code Qualifier
sValue = oSegment.get_DataElementValue(9,0); //Identification Code
}
else if (sSegmentID == "N3")
{
sValue = oSegment.get_DataElementValue(1,0); //Address Information
}
else if (sSegmentID == "N4")
{
sValue = oSegment.get_DataElementValue(1,0); //City Name
sValue = oSegment.get_DataElementValue(2,0); //State or Province Code
sValue = oSegment.get_DataElementValue(3,0); //Postal Code
} //Segment ID
}
}
else if (sLoopSection == "HL;CLM;LX")
{
if (sSegmentID == "LX")
{
sValue = oSegment.get_DataElementValue(1,0); //Assigned Number
}
else if (sSegmentID == "SV1")
{
sValue = oSegment.get_DataElementValue(1,1); //Product/Service ID Qualifier
sValue = oSegment.get_DataElementValue(1,2); //Product/Service ID
sValue = oSegment.get_DataElementValue(1,3); //Procedure Modifier
sValue = oSegment.get_DataElementValue(1,4); //Procedure Modifier
sValue = oSegment.get_DataElementValue(1,5); //Procedure Modifier
sValue = oSegment.get_DataElementValue(1,6); //Procedure Modifier
sValue = oSegment.get_DataElementValue(1,7); //Description
sValue = oSegment.get_DataElementValue(2,0); //Monetary Amount
sValue = oSegment.get_DataElementValue(3,0); //Unit or Basis for Measurement Code
sValue = oSegment.get_DataElementValue(4,0); //Quantity
sValue = oSegment.get_DataElementValue(5,0); //Facility Code Value
sValue = oSegment.get_DataElementValue(6,0); //Service Type Code
sValue = oSegment.get_DataElementValue(7,1); //Diagnosis Code Pointer
sValue = oSegment.get_DataElementValue(7,2); //Diagnosis Code Pointer
sValue = oSegment.get_DataElementValue(7,3); //Diagnosis Code Pointer
sValue = oSegment.get_DataElementValue(7,4); //Diagnosis Code Pointer
sValue = oSegment.get_DataElementValue(8,0); //Monetary Amount
sValue = oSegment.get_DataElementValue(9,0); //Yes/No Condition or Response Code
}
else if (sSegmentID == "DTP")
{
sValue = oSegment.get_DataElementValue(1,0); //Date/Time Qualifier
sValue = oSegment.get_DataElementValue(2,0); //Date Time Period Format Qualifier
sValue = oSegment.get_DataElementValue(3,0); //Date Time Period
} //sSegmentID
} //sLoopSection
} //sHlEntity
} //nArea
//GETS THE NEXT DATA SEGMENT
ediDataSegment.Set(ref oSegment, (ediDataSegment) oSegment.Next()); //oSegment = (ediDataSegment) oSegment.Next();
} //while
MessageBox.Show("Done");
}
}