StringBuilder sbEDI = new StringBuilder();
string PatEDI = "";
// For Header Segment
int segmentcount = 1;
int nHlCounter = 1;
int rowCount = 1;
int trcNo = 1234501;
int refiden = 5432101;
//while (row = sqlFetchArray(res))
while (i == rowCount)
{
if (nHlCounter == 1)
{
// create ISA
sbEDI.AppendLine(CreateISA(row, X12info, SegTerminator, ElementSeparator, "*"));
// create GS
sbEDI.AppendLine(CreateGS(row, X12info, SegTerminator, ElementSeparator, "*"));
// create ST
sbEDI.AppendLine(CreateST(row, X12info, SegTerminator, ElementSeparator, "*"));
// create BHT
sbEDI.AppendLine(CreateBHT(row, X12info, SegTerminator, ElementSeparator, "*"));
// For Payer Segment
sbEDI.AppendLine(CreateHL(row, 1, X12info, SegTerminator, ElementSeparator, "*"));
sbEDI.AppendLine(CreateNM1(row, "PR", X12info, SegTerminator, ElementSeparator, "*"));
// For Provider Segment
sbEDI.AppendLine(CreateHL(row, 2, X12info, SegTerminator, ElementSeparator, "*"));
sbEDI.AppendLine(CreateNM1(row, "1P", X12info, SegTerminator, ElementSeparator, "*"));
sbEDI.AppendLine(CreateREF(row, "TJ", X12info, SegTerminator, ElementSeparator, "*"));//1P initially
nHlCounter = nHlCounter + 2;
segmentcount = 7; // segement counts - start from ST
}
// For Subscriber Segment
// PatEDI += CreateHL(row, nHlCounter, X12info, SegTerminator, ElementSeparator);
sbEDI.AppendLine(CreateHL(row, nHlCounter, X12info, SegTerminator, ElementSeparator, "*"));
sbEDI.AppendLine(CreateTRN(row, Convert.ToString(trcNo), Convert.ToString(refiden), X12info, SegTerminator, ElementSeparator, "*"));
sbEDI.AppendLine(CreateNM1(row, "IL", X12info, SegTerminator, ElementSeparator, "*"));
// sbEDI.AppendLine(CreateREF(row, "IL", X12info, SegTerminator, ElementSeparator, "*")); //Commented repeating
sbEDI.AppendLine(CreateDMG(row, X12info, SegTerminator, ElementSeparator));
sbEDI.AppendLine(CreateDTP(row, "472", X12info, SegTerminator, ElementSeparator, "*"));
sbEDI.AppendLine(CreateEQ(row, X12info, SegTerminator, ElementSeparator));
segmentcount = segmentcount + 7;
nHlCounter = nHlCounter + 1;
rowCount = rowCount + 1;
trcNo = trcNo + 1;
refiden = refiden + 1;
//i = i + 1;
//if(rowCount == sqlNumRows(res))
if (i == 1)
{
segmentcount = segmentcount + 1;
// PatEDI += CreateSE(row, Convert.ToString(segmentcount), X12info, SegTerminator, ElementSeparator);
sbEDI.AppendLine(CreateSE(row, Convert.ToString(segmentcount), X12info, SegTerminator, ElementSeparator, "*"));
// PatEDI += CreateGE(row, X12info, SegTerminator, ElementSeparator);
sbEDI.AppendLine(CreateGE(row, X12info, SegTerminator, ElementSeparator, "*"));
//PatEDI += CreateIEA(row, X12info, SegTerminator, ElementSeparator);
sbEDI.AppendLine(CreateIEA(row, X12info, SegTerminator, ElementSeparator, "*"));
}
}
//print $PATEDI;
return PatEDI = sbEDI.ToString();
}
} // End of ManualX12Creation Class
}
Segments Classes:
Similarly we create other segments classes as like above and passed it to above main class.
To input data into 270 string using class
And finally invoke class as below
ManualX12Creation objManualX12Creation =
new ManualX12Creation(oPatient, oProvider, oPayer, oDTP);
string[] X12info =
new string[5];
string FileContent = objManualX12Creation.PrintEDI("row", "res", X12info, ":", "~");