using System; using System.Configuration; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Text; using System.Windows.Forms; using Edidev.FrameworkEDIx64; 1 namespace Gen837X222A1 //THIS PROGRAM REQUIRES A DATABASE WITH A STRUCTURE SIMILAR TO THAT IN THE TRAN837X222 EXAMPLE PROGRAM, OR DO THE FOLLOWING TO CREATE THE DATABASE: // CREATE A DATABASE CALLED HIPAATESTDB // ON YOUR SQL SERVER, RUN THE SQL SCRIPTS LOCATED IN THE CREATE_SQL_TABLES FOLDER TO CREATE THE TABLES public partial class frmgen837 : Form public frmgen837() InitializeComponent(); ; private string sconnection = ConfigurationManager.ConnectionStrings["Development"].ConnectionString private void btngenerate_click(object sender, EventArgs e) edidocument oedidoc = null; edischemas oschemas = null; ediinterchange ointerchange = null; edigroup ogroup = null; editransactionset otransactionset = null; edidatasegment osegment = null; bool bdependent = false; int nhlcounter = 0; int nhlsubscriberparent = 0; int nhldependentparent = 0; int ninstance = 0; int nelempos = 0; string ssql = ""; string sapppath = AppDomain.CurrentDomain.BaseDirectory; SqlConnection oconnection = new SqlConnection(sConnection); string sedifile = "837_5010X222A1.X12"; string sseffile = "837_005010X222A1.SemRef.EVAL0.SEF"; //EVALUATION SEF FILE //CREATES OEDIDOC OBJECT 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 GENERATE THE EDI FILE. oschemas = (edischemas)oedidoc.getschemas(); oschemas.enablestandardreference = false; //ENABLES FORWARD WRITE, AND INCREASES BUFFER I/O TO IMPROVE PERFORMANCE oedidoc.cursortype = DocumentCursorTypeConstants.Cursor_ForwardWrite; oedidoc.set_property(documentpropertyidconstants.property_documentbufferio, 200);
//SET TERMINATORS oedidoc.segmentterminator = "~13:10"; oedidoc.elementterminator = "*"; oedidoc.compositeterminator = ":"; 2 //LOADS THE SEF FILE oedidoc.loadschema(sapppath + sseffile, 0); ssql = "select * from [Interchange]"; SqlDataAdapter ointerchangeadapter = new SqlDataAdapter(sSql, oconnection); DataSet ointerchangeds = new DataSet("dsInterchange"); ointerchangeadapter.fill(ointerchangeds, "dsinterchange"); foreach (DataRow ointerchangerow in ointerchangeds.tables["dsinterchange"].rows) //CREATES THE ISA SEGMENT ointerchange = (ediinterchange)oedidoc.createinterchange("x", "005010"); osegment = (edidatasegment)ointerchange.getdatasegmentheader(); osegment.set_dataelementvalue(1, 0, ointerchangerow["isa01_authorizationinfoqlfr"].tostring ()); //Authorization Information Qualifier osegment.set_dataelementvalue(2, 0, ointerchangerow["isa02_authorizationinfo"].tostring()); //Authorization Information osegment.set_dataelementvalue(3, 0, ointerchangerow["isa03_securityinfoqlfr"].tostring()); //Security Information Qualifier osegment.set_dataelementvalue(4, 0, ointerchangerow["isa04_securityinfo"].tostring()); //Security Information osegment.set_dataelementvalue(5, 0, ointerchangerow["isa05_senderidqlfr"].tostring()); //Interchange ID Qualifier osegment.set_dataelementvalue(6, 0, ointerchangerow["isa06_senderid"].tostring()); // Interchange Sender ID osegment.set_dataelementvalue(7, 0, ointerchangerow["isa07_receiveridqlfr"].tostring()); //Interchange ID Qualifier osegment.set_dataelementvalue(8, 0, ointerchangerow["isa08_receiverid"].tostring()); // Interchange Receiver ID osegment.set_dataelementvalue(9, 0, ointerchangerow["isa09_date"].tostring()); // Interchange Date osegment.set_dataelementvalue(10, 0, ointerchangerow["isa10_time"].tostring()); // Interchange Time osegment.set_dataelementvalue(11, 0, ointerchangerow["isa11_repetitionseparator"].tostring ()); //Repetition Separator osegment.set_dataelementvalue(12, 0, ointerchangerow["isa12_controlversionnumber"].tostring ()); //Interchange Control Version Number osegment.set_dataelementvalue(13, 0, ointerchangerow["isa13_controlnumber"].tostring()); //Interchange Control Number osegment.set_dataelementvalue(14, 0, ointerchangerow["isa14_acknowledgmentrequested"]. ToString()); //Acknowledgment Requested osegment.set_dataelementvalue(15, 0, ointerchangerow["isa15_usageindicator"].tostring()); //Usage Indicator osegment.set_dataelementvalue(16, 0, ointerchangerow["isa16_componentelementseparator"]. ToString()); //Component Element Separator (); ssql = "select * from [FuncGroup] where Interkey = " + ointerchangerow["interkey"].tostring SqlDataAdapter ogroupadapter = new SqlDataAdapter(sSql, oconnection); DataSet ogroupds = new DataSet("dsGroup"); ogroupadapter.fill(ogroupds, "dsgroup"); foreach (DataRow ogrouprow in ogroupds.tables["dsgroup"].rows) //CREATES THE GS SEGMENT ogroup = (edigroup)ointerchange.creategroup("005010x222a1"); edidatasegment.set(ref osegment, ogroup.getdatasegmentheader()); osegment.set_dataelementvalue(1, 0, ogrouprow["gs01_functionalidfrcode"].tostring()); //Functional Identifier Code osegment.set_dataelementvalue(2, 0, ogrouprow["gs02_senderscode"].tostring()); // Application Sender//s Code
osegment.set_dataelementvalue(3, 0, ogrouprow["gs03_receiverscode"].tostring()); // Application Receiver//s Code osegment.set_dataelementvalue(4, 0, ogrouprow["gs04_date"].tostring()); //Date osegment.set_dataelementvalue(5, 0, ogrouprow["gs05_time"].tostring()); //Time osegment.set_dataelementvalue(6, 0, ogrouprow["gs06_groupcontrolnumber"].tostring()); //Group Control Number osegment.set_dataelementvalue(7, 0, ogrouprow["gs07_responsibleagencycode"].tostring()) ; //Responsible Agency Code osegment.set_dataelementvalue(8, 0, ogrouprow["gs08_versionreleasecode"].tostring()); //Version / Release / Industry Identifier Code 3 ToString(); ssql = "select * from [837X222_Header] where Groupkey = " + ogrouprow["groupkey"]. SqlDataAdapter oheaderadapter = new SqlDataAdapter(sSql, oconnection); DataSet oheaderds = new DataSet("dsHeader"); oheaderadapter.fill(oheaderds, "dsheader"); foreach (DataRow oheaderrow in oheaderds.tables["dsheader"].rows) //CREATES THE ST SEGMENT otransactionset = (editransactionset)ogroup.createtransactionset("837"); edidatasegment.set(ref osegment, otransactionset.getdatasegmentheader()); osegment.set_dataelementvalue(1, 0, oheaderrow["st01_transetidfrcode"].tostring()); //Transaction Set Identifier Code osegment.set_dataelementvalue(2, 0, oheaderrow["st02_transetcontrolno"].tostring()) ; //Transaction Set Control Number osegment.set_dataelementvalue(3, 0, oheaderrow["st03_implementconventionref"]. ToString()); //Implementation Convention Reference //BHT BEGINNING OF HIERARCHICAL TRANSACTION edidatasegment.set(ref osegment, otransactionset.createdatasegment("bht")); osegment.set_dataelementvalue(1, 0, oheaderrow["bht01_hierarchstructcode"].tostring ()); //Hierarchical Structure Code osegment.set_dataelementvalue(2, 0, oheaderrow["bht02_transetpurposecode"].tostring ()); //Transaction Set Purpose Code osegment.set_dataelementvalue(3, 0, oheaderrow["bht03_refid"].tostring()); // Reference Identification osegment.set_dataelementvalue(4, 0, oheaderrow["bht04_date"].tostring()); // Date osegment.set_dataelementvalue(5, 0, oheaderrow["bht05_time"].tostring()); // Time osegment.set_dataelementvalue(6, 0, oheaderrow["bht06_trantypecode"].tostring()); //Transaction Type Code //1000A SUBMITTER //NM1 SUBMITTER NAME edidatasegment.set(ref osegment, otransactionset.createdatasegment("nm1\\nm1")); osegment.set_dataelementvalue(1, 0, "41"); //Entity Identifier Code osegment.set_dataelementvalue(2, 0, oheaderrow["nm102_submittertypeqlfr"].tostring ()); //Entity Type Qualifier osegment.set_dataelementvalue(3, 0, oheaderrow[ "NM103_SubmitterLastOrOrganizationName"].ToString()); //Name Last or Organization Name osegment.set_dataelementvalue(4, 0, oheaderrow["nm104_submitterfirst"].tostring()); // Name First (1036) osegment.set_dataelementvalue(5, 0, oheaderrow["nm105_submittermiddle"].tostring()) ; // Name Middle (1037) osegment.set_dataelementvalue(8, 0, oheaderrow["nm108_submitteridcodeqlfr"]. ToString()); //Identification Code Qualifier osegment.set_dataelementvalue(9, 0, oheaderrow["nm109_submitteridcode"].tostring()) ; //Identification Code //PER SUBMITTER EDI CONTACT INFO edidatasegment.set(ref osegment, otransactionset.createdatasegment("nm1\\per")); nelempos = 3; if (oheaderrow["per0x_submitterphoneno"].tostring().trim()!= "")
osegment.set_dataelementvalue(nelempos, 0, "TE"); //Communication Number Qualifier osegment.set_dataelementvalue(nelempos + 1, 0, oheaderrow[ "PER0X_SubmitterPhoneNo"].ToString()); //Communication Number nelempos = nelempos + 2; 4 if (oheaderrow["per0x_submitterphoneextno"].tostring().trim()!= "") osegment.set_dataelementvalue(nelempos, 0, "EX"); //Communication Number Qualifier osegment.set_dataelementvalue(nelempos + 1, 0, oheaderrow[ "PER0X_SubmitterPhoneExtNo"].ToString()); //Communication Number nelempos = nelempos + 2; Qualifier "].ToString()); Qualifier "].ToString()); ToString()); if (oheaderrow["per0x_submitterfaxno"].tostring().trim()!= "") osegment.set_dataelementvalue(nelempos, 0, "FX"); //Communication Number osegment.set_dataelementvalue(nelempos + 1, 0, oheaderrow["per0x_submitterfaxno //Communication Number nelempos = nelempos + 2; if (oheaderrow["per0x_submitteremail"].tostring().trim()!= "") osegment.set_dataelementvalue(nelempos, 0, "EM"); //Communication Number osegment.set_dataelementvalue(nelempos + 1, 0, oheaderrow["per0x_submitteremail //Communication Number nelempos = nelempos + 2; if (nelempos > 3) osegment.set_dataelementvalue(1, 0, "IC"); //Contact Function Code osegment.set_dataelementvalue(2, 0, oheaderrow["per02_submittercontactname"]. //Name //1000B RECEIVER //NM1 RECEIVER edidatasegment.set(ref osegment, otransactionset.createdatasegment("nm1\\nm1")); osegment.set_dataelementvalue(1, 0, "40"); //Entity Identifier Code osegment.set_dataelementvalue(2, 0, oheaderrow["nm102_receivertypeqlfr"].tostring ()); //Entity Type Qualifier osegment.set_dataelementvalue(3, 0, oheaderrow[ "NM103_ReceiverLastOrOrganizationName"].ToString()); //Name Last or Organization Name osegment.set_dataelementvalue(8, 0, oheaderrow["nm108_receiveridcodeqlfr"].tostring ()); //Identification Code Qualifier osegment.set_dataelementvalue(9, 0, oheaderrow["nm109_receiveridcode"].tostring()); //Identification Code nhlcounter = 0; ssql = "select * from [837X222_InfoSource] where Headerkey = " + oheaderrow[ "Headerkey"].ToString(); SqlDataAdapter oinfosourceadapter = new SqlDataAdapter(sSql, oconnection); DataSet oinfosourceds = new DataSet("dsInfoSource"); oinfosourceadapter.fill(oinfosourceds, "dsinfosource"); //2000A INFORMATION SOURCE foreach (DataRow oinfosourcerow in oinfosourceds.tables["dsinfosource"].rows) nhlcounter = nhlcounter + 1; //increment HL loop
nhlsubscriberparent = nhlcounter; parent for the HL subscriber loop //The value of this HL counter is the HL 5 ID Number //HL BILLING PROVIDER edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\hl")); osegment.set_dataelementvalue(1, 0, nhlcounter.tostring()); //Hierarchical osegment.set_dataelementvalue(3, 0, "20"); osegment.set_dataelementvalue(4, 0, "1"); //Hierarchical Level Code //Hierarchical Child Code //PRV BILLING PROVIDER SPECIALTY INFORMATION if (oinfosourcerow["prv03_billingprovideridcode"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\prv ")); osegment.set_dataelementvalue(1, 0, "BI"); //Provider Code osegment.set_dataelementvalue(2, 0, "PXC"); //Reference Identification Qualifier osegment.set_dataelementvalue(3, 0, oinfosourcerow[ "PRV03_BillingProviderIdCode"].ToString()); //Reference Identification // Currency (CUR) if (oinfosourcerow["cur02_currencycode"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\cur ")); osegment.set_dataelementvalue(1, 0, "85"); // Entity Identifier Code (98) osegment.set_dataelementvalue(2, 0, oinfosourcerow["cur02_currencycode"]. ToString()); // Currency Code (100) //2010AA BILLING PROVIDER //NM1 BILLING PROVIDER NAME edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\nm1\\ NM1")); osegment.set_dataelementvalue(1, 0, "85"); //Entity Identifier Code osegment.set_dataelementvalue(2, 0, oinfosourcerow[ "NM102_BillingProviderTypeQualifier"].ToString()); //Entity Type Qualifier osegment.set_dataelementvalue(3, 0, oinfosourcerow[ "NM103_BillingProviderLastOrOrganizationName"].ToString()); //Name Last or Organization Name osegment.set_dataelementvalue(4, 0, oinfosourcerow["nm104_billingproviderfirst" ].ToString()); // Name First (1036) osegment.set_dataelementvalue(5, 0, oinfosourcerow["nm105_billingprovidermiddle "].ToString()); // Name Middle (1037) osegment.set_dataelementvalue(8, 0, "XX"); //Identification Code Qualifier osegment.set_dataelementvalue(9, 0, oinfosourcerow["nm109_billingprovideridcode "].ToString()); //Identification Code "));.ToString());.ToString()); ")); ToString());.ToString()); //N3 BILLING PROVIDER ADDRESS INFORMATION edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\nm1\\n3 osegment.set_dataelementvalue(1, 0, oinfosourcerow["n301_billingprovideraddr1"] //Address Information osegment.set_dataelementvalue(2, 0, oinfosourcerow["n302_billingprovideraddr2"] //Address Information //N4 BILLING PROVIDER LOCATION edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\nm1\\n4 osegment.set_dataelementvalue(1, 0, oinfosourcerow["n401_billingprovidercity"]. //City Name osegment.set_dataelementvalue(2, 0, oinfosourcerow["n402_billingproviderstate"] //State or Province Code
osegment.set_dataelementvalue(3, 0, oinfosourcerow["n403_billingproviderzip"]. ToString()); //Postal Code osegment.set_dataelementvalue(4, 0, oinfosourcerow["n404_billingprovidercountry "].ToString()); // Country Code (26) osegment.set_dataelementvalue(7, 0, oinfosourcerow[ "N407_BillingProviderCountrySubdivision"].ToString()); // Country Subdivision Code (1715) ninstance = 1; //REF EMPLOYER'S IDENTIFICATION NUMBER if (oinfosourcerow["ref02_billingprovideremployerid"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\nm1 \\REF(" + osegment.set_dataelementvalue(1, 0, "EI"); //Reference Identification Qualifier osegment.set_dataelementvalue(2, 0, oinfosourcerow[ "REF02_BillingProviderEmployerId"].ToString()); //Reference Identification //REF SOCIAL SECURITY NUMBER if (oinfosourcerow["ref02_billingprovidersocialsecurityno"].tostring().trim()! = "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\nm1 \\REF(" + osegment.set_dataelementvalue(1, 0, "SY"); //Reference Identification Qualifier osegment.set_dataelementvalue(2, 0, oinfosourcerow[ "REF02_BillingProviderSocialSecurityNo"].ToString()); //Reference Identification //REF STATE LICENSE NUMBER if (oinfosourcerow["ref02_billingproviderstatelicenseno"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\nm1 \\REF(" + osegment.set_dataelementvalue(1, 0, "0B"); //Reference Identification Qualifier osegment.set_dataelementvalue(2, 0, oinfosourcerow[ "REF02_BillingProviderStateLicenseNo"].ToString()); //Reference Identification //REF PROVIDER UPIN NUMBER if (oinfosourcerow["ref02_billingproviderproviderupin"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\nm1 \\REF(" + osegment.set_dataelementvalue(1, 0, "1G"); //Reference Identification Qualifier osegment.set_dataelementvalue(2, 0, oinfosourcerow[ "REF02_BillingProviderProviderUPIN"].ToString()); //Reference Identification 6 PER")); // Administrative Communications Contact (PER) edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\nm1\\ nelempos = 3; if (oinfosourcerow["per0x_billingproviderphoneno"].tostring().trim()!= "")
osegment.set_dataelementvalue(nelempos, 0, "TE"); //Communication Number Qualifier osegment.set_dataelementvalue(nelempos + 1, 0, oinfosourcerow[ "PER0X_BillingProviderPhoneNo"].ToString()); //Communication Number nelempos = nelempos + 2; 7 if (oinfosourcerow["per0x_billingproviderphoneextno"].tostring().trim()!= "") osegment.set_dataelementvalue(nelempos, 0, "EX"); //Communication Number Qualifier osegment.set_dataelementvalue(nelempos + 1, 0, oinfosourcerow[ "PER0X_BillingProviderPhoneExtNo"].ToString()); //Communication Number nelempos = nelempos + 2; if (oinfosourcerow["per0x_billingproviderfaxno"].tostring().trim()!= "") osegment.set_dataelementvalue(nelempos, 0, "FX"); //Communication Number Qualifier osegment.set_dataelementvalue(nelempos + 1, 0, oinfosourcerow[ "PER0X_BillingProviderFaxNo"].ToString()); //Communication Number nelempos = nelempos + 2; if (oinfosourcerow["per0x_billingprovideremail"].tostring().trim()!= "") osegment.set_dataelementvalue(nelempos, 0, "EM"); //Communication Number Qualifier osegment.set_dataelementvalue(nelempos + 1, 0, oinfosourcerow[ "PER0X_BillingProviderEmail"].ToString()); //Communication Number nelempos = nelempos + 2; if (nelempos > 3) osegment.set_dataelementvalue(1, 0, "IC"); //Contact Function Code osegment.set_dataelementvalue(2, 0, oinfosourcerow[ "PER02_BillingProviderContactName"].ToString()); //Name //2010AB PAY TO PROVIDER if (oinfosourcerow["n301_paytoprovideraddr1"].tostring().trim()!= "") //NM1 PAY TO PROVIDER NAME edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\nm1 \\NM1")); osegment.set_dataelementvalue(1, 0, "87"); //Entity Identifier Code osegment.set_dataelementvalue(2, 0, oinfosourcerow[ "NM102_PayToProviderTypeQlfr"].ToString()); //Entity Type Qualifier //osegment.set_dataelementvalue(3, 0, oinfosourcerow[ "NM103_PayToProviderLastOrOrganizatioName"].ToString()); //Name Last or Organization Name \\N3")); "].ToString()); "].ToString()); \\N4")); ].ToString()); //N3 PAY TO PROVIDER ADDRESS INFORMATION edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\nm1 osegment.set_dataelementvalue(1, 0, oinfosourcerow["n301_paytoprovideraddr1 //Address Information osegment.set_dataelementvalue(2, 0, oinfosourcerow["n302_paytoprovideraddr2 //Address Information //N4 PAY TO PROVIDER LOCATION edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\nm1 osegment.set_dataelementvalue(1, 0, oinfosourcerow["n401_paytoprovidercity" //City Name osegment.set_dataelementvalue(2, 0, oinfosourcerow["n402_paytoproviderstate
"].ToString()); //State or Province Code osegment.set_dataelementvalue(3, 0, oinfosourcerow["n403_paytoproviderzip"].tostring()); //Postal Code osegment.set_dataelementvalue(4, 0, oinfosourcerow[ "N404_PayToProviderCountry"].ToString()); // Country Code (26) osegment.set_dataelementvalue(7, 0, oinfosourcerow[ "N407_PayToProviderCountrySubdivision"].ToString()); // Country Subdivision Code (1715) //2010AB PAY TO PROVIDER //2010AC PAYEE PROVIDER if (oinfosourcerow["nm103_payeelastororganizationname"].tostring().trim()!= "") //NM1 PAYEE PROVIDER NAME edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\nm1 \\NM1")); osegment.set_dataelementvalue(1, 0, "PE"); //Entity Identifier Code osegment.set_dataelementvalue(2, 0, oinfosourcerow["nm102_payeetypeqlfr"]. ToString()); //Entity Type Qualifier osegment.set_dataelementvalue(3, 0, oinfosourcerow[ "NM103_PayeeLastOrOrganizationName"].ToString()); //Name Last or Organization Name osegment.set_dataelementvalue(9, 0, oinfosourcerow["nm109_payeeidcode"]. ToString()); //Identification Code 8 \\N3")); ToString()); ToString()); //N3 PAYEE PROVIDER ADDRESS INFORMATION edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\nm1 osegment.set_dataelementvalue(1, 0, oinfosourcerow["n301_payeeaddr1"]. //Address Information osegment.set_dataelementvalue(2, 0, oinfosourcerow["n302_payeeaddr2"]. //Address Information \\N4")); //N4 PAYEE PROVIDER LOCATION edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\nm1 osegment.set_dataelementvalue(1, 0, oinfosourcerow["n401_payeecity"]. ToString()); //City Name osegment.set_dataelementvalue(2, 0, oinfosourcerow["n402_payeestate"]. ToString()); //State or Province Code osegment.set_dataelementvalue(3, 0, oinfosourcerow["n403_payeezip"]. ToString()); //Postal Code osegment.set_dataelementvalue(4, 0, oinfosourcerow["n404_payeecountry"]. ToString()); // Country Code (26) osegment.set_dataelementvalue(7, 0, oinfosourcerow[ "N407_PayeeCountrySubdivision"].ToString()); // Country Subdivision Code (1715) ninstance = 1; //REF PAYER IDENTIFICATION NUMBER" if (oinfosourcerow["ref02_payeepayerid"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\ \NM1\\REF(" + osegment.set_dataelementvalue(1, 0, "2U"); //Reference Identification Qualifier ].ToString()); osegment.set_dataelementvalue(2, 0, oinfosourcerow["ref02_payeepayerid" //Reference Identification //REF CLAIM OFFICE NUMBER if (oinfosourcerow["ref02_payeeclaimofficeno"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\ \NM1\\REF(" + osegment.set_dataelementvalue(1, 0, "FY"); //Reference
Identification Qualifier osegment.set_dataelementvalue(2, 0, oinfosourcerow[ "REF02_PayeeClaimOfficeNo"].ToString()); //Reference Identification 9 //REF NATIONAL ASSOCIATION OF INSURANCE COMMISSIONERS (NAIC) CODE if (oinfosourcerow["ref02_payeenaic_code"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\ \NM1\\REF(" + osegment.set_dataelementvalue(1, 0, "NF"); //Reference Identification Qualifier osegment.set_dataelementvalue(2, 0, oinfosourcerow[ "REF02_PayeeNAIC_Code"].ToString()); //Reference Identification //REF NATIONAL ASSOCIATION OF INSURANCE COMMISSIONERS (NAIC) CODE if (oinfosourcerow["ref02_payeeemployerid"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\ \NM1\\REF(" + osegment.set_dataelementvalue(1, 0, "EI"); //Reference Identification Qualifier osegment.set_dataelementvalue(2, 0, oinfosourcerow[ "REF02_PayeeEmployerId"].ToString()); //Reference Identification //2010AC PAYEE PROVIDER //2000B SUBSCRIBER HL LOOP ssql = "select * from [837X222_Subscriber] where InfoSourcekey = " + oinfosourcerow["infosourcekey"].tostring(); SqlDataAdapter osubscriberadapter = new SqlDataAdapter(sSql, oconnection); DataSet osubscriberds = new DataSet("dsSubscriber"); osubscriberadapter.fill(osubscriberds, "dssubscriber"); foreach (DataRow osubscriberrow in osubscriberds.tables["dssubscriber"].rows) nhlcounter = nhlcounter + 1; nhldependentparent = nhlcounter; if (osubscriberrow["sbr02_individualrelationshipcode"].tostring() == "18") bdependent = false; else bdependent = true; //HL SUBSCRIBER LEVEL edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\hl" )); osegment.set_dataelementvalue(1, 0, nhlcounter.tostring()); // Hierarchical ID Number osegment.set_dataelementvalue(2, 0, nhlsubscriberparent.tostring()); // Hierarchical Parent ID Number osegment.set_dataelementvalue(3, 0, "22"); //Hierarchical Level Code if (bdependent) osegment.set_dataelementvalue(4, 0, "1"); //Hierarchical Child Code else //self osegment.set_dataelementvalue(4, 0, "0"); //Hierarchical Child Code
10 //SBR SUBSCRIBER INFORMATION edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\sbr ")); osegment.set_dataelementvalue(1, 0, osubscriberrow[ "SBR01_PayerResponsibilitySequenceNumberCode"].ToString()); // Payer Responsibility Sequence Number Code (1138) osegment.set_dataelementvalue(2, 0, osubscriberrow[ "SBR02_IndividualRelationshipCode"].ToString()); // Individual Relationship Code (1069) osegment.set_dataelementvalue(3, 0, osubscriberrow[ "SBR03_SubscriberGroup_PolicyNo"].ToString()); // Reference Identification (127) osegment.set_dataelementvalue(4, 0, osubscriberrow[ "SBR04_SubscriberGroupName"].ToString()); // Name (93) osegment.set_dataelementvalue(5, 0, osubscriberrow["sbr05_insurancetypecode "].ToString()); // Insurance Type Code (1336) osegment.set_dataelementvalue(9, 0, osubscriberrow[ "SBR09_ClaimFilingIndicatorCode"].ToString()); // Claim Filing Indicator Code (1032) ")); // Patient Information PAT edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\pat if (osubscriberrow["pat06_patientdeathdate"].tostring().trim()!= "") osegment.set_dataelementvalue(5, 0, "D8"); // Date Time Period Format Qualifier (1250) osegment.set_dataelementvalue(6, 0, osubscriberrow[ "PAT06_PatientDeathDate"].ToString()); // Date Time Period (1251) if (osubscriberrow["pat08_patientweightpounds"].tostring().trim()!= "") osegment.set_dataelementvalue(7, 0, "01"); // Unit or Basis for Measurement Code (355) osegment.set_dataelementvalue(8, 0, osubscriberrow[ "PAT08_PatientWeightPounds"].ToString()); // Weight (81) osegment.set_dataelementvalue(9, 0, osubscriberrow["pat09_pregnant"]. ToString()); // Yes/No Condition or Response Code (1073) //2010BA SUBSCRIBER if (osubscriberrow["nm103_subscriberlastororganizationname"].tostring(). Trim()!= "") //NM1 SUBSCRIBER NAME edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\ \NM1\\NM1")); osegment.set_dataelementvalue(1, 0, "IL"); //Entity Identifier Code osegment.set_dataelementvalue(2, 0, osubscriberrow[ "NM102_SubscriberTypeQualifier"].ToString()); //Entity Type Qualifier osegment.set_dataelementvalue(3, 0, osubscriberrow[ "NM103_SubscriberLastOrOrganizationName"].ToString()); //Name Last or Organization Name osegment.set_dataelementvalue(4, 0, osubscriberrow[ "NM104_SubscriberFirst"].ToString()); //Name First osegment.set_dataelementvalue(5, 0, osubscriberrow[ "NM105_SubscriberMiddle"].ToString()); // Name Middle (1037) osegment.set_dataelementvalue(7, 0, osubscriberrow[ "NM107_SubscriberSuffix"].ToString()); // Name Suffix (1039) osegment.set_dataelementvalue(8, 0, osubscriberrow[ "NM108_SubscriberIdCodeQlfr"].ToString()); //Identification Code Qualifier osegment.set_dataelementvalue(9, 0, osubscriberrow[ "NM109_SubscriberIdCode"].ToString()); //Identification Code \NM1\\N3")); // Address Information (N3 edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\ osegment.set_dataelementvalue(1, 0, osubscriberrow[
"N301_SubscriberAddr1"].ToString()); // Address Information (166) osegment.set_dataelementvalue(2, 0, osubscriberrow[ "N302_SubscriberAddr2"].ToString()); // Address Information (166) 11 // Geographic Location (N4) edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\ \NM1\\N4")); osegment.set_dataelementvalue(1, 0, osubscriberrow["n401_subscribercity "].ToString()); // City Name (19) osegment.set_dataelementvalue(2, 0, osubscriberrow[ "N402_SubscriberState"].ToString()); // State or Province Code (156) osegment.set_dataelementvalue(3, 0, osubscriberrow["n403_subscriberzip" ].ToString()); // Postal Code (116) osegment.set_dataelementvalue(4, 0, osubscriberrow[ "N404_SubscriberCountry"].ToString()); // Country Code (26) osegment.set_dataelementvalue(7, 0, osubscriberrow[ "N407_SubscriberCountrySubdivision"].ToString()); // Country Subdivision Code (1715) //DMG SUBSCRIBER DEMOGRAPHIC INFORMATION edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\ \NM1\\DMG")); if (osubscriberrow["dmg02_subscriberbirthdate"].tostring().trim()!= "") osegment.set_dataelementvalue(1, 0, "D8"); //Date Time Period Format Qualifier osegment.set_dataelementvalue(2, 0, osubscriberrow[ "DMG02_SubscriberBirthDate"].ToString()); //Date Time Period osegment.set_dataelementvalue(3, 0, osubscriberrow[ "DMG03_SubscriberGenderCode"].ToString()); //Gender Code ninstance = 1; // REF SOCIAL SECURITY NUMBER if (osubscriberrow["ref02_subscribersocialsecurityno"].tostring().trim ()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment ("HL\\NM1\\REF(" + osegment.set_dataelementvalue(2, 0, osubscriberrow[ "REF02_SubscriberSocialSecurityNo"].ToString()); // Reference Identification (127 // REF AGENCY CLAIM NUMBER if (osubscriberrow["ref02_propertycasualtyclaimno"].tostring().trim()! = "") edidatasegment.set(ref osegment, otransactionset.createdatasegment ("HL\\NM1\\REF(" + osegment.set_dataelementvalue(1, 0, "Y4"); // Reference Identification Qualifier (128) osegment.set_dataelementvalue(2, 0, osubscriberrow[ "REF02_PropertyCasualtyClaimNo"].ToString()); // Reference Identification (127 // Administrative Communications Contact (PER) if (osubscriberrow["per04_subscriberphoneno"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment ("HL\\NM1\\PER")); osegment.set_dataelementvalue(1, 0, "IC"); // Contact Function Code (366) osegment.set_dataelementvalue(2, 0, osubscriberrow[ "PER02_SubscriberContactName"].ToString()); // Name (93)
osegment.set_dataelementvalue(3, 0, "TE"); // Communication Number Qualifier (365) osegment.set_dataelementvalue(4, 0, osubscriberrow[ "PER04_SubscriberPhoneNo"].ToString()); // Communication Number (364) if (osubscriberrow["per06_subscriberphoneextno"].tostring().trim()!= "") osegment.set_dataelementvalue(5, 0, "EX"); // Communication Number Qualifier (365) osegment.set_dataelementvalue(6, 0, osubscriberrow[ "PER06_SubscriberPhoneExtNo"].ToString()); // Communication Number (364) //if //if //2010BA SUBSCRIBER 12 //2010BB PAYER if (osubscriberrow["nm103_payerlastororganizationame"].tostring().trim()!= "") //NM1 PAYER NAME edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\ \NM1\\NM1")); osegment.set_dataelementvalue(1, 0, "PR"); //Entity Identifier Code osegment.set_dataelementvalue(2, 0, osubscriberrow["nm102_payertypeqlfr "].ToString()); //Entity Type Qualifier osegment.set_dataelementvalue(3, 0, osubscriberrow[ "NM103_PayerLastOrOrganizatioName"].ToString()); //Name Last or Organization Name osegment.set_dataelementvalue(8, 0, "PI"); //Identification Code Qualifier osegment.set_dataelementvalue(9, 0, osubscriberrow["nm109_payeridcode"].tostring()); //Identification Code // Address Information (N3) edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\ \NM1\\N3")); osegment.set_dataelementvalue(1, 0, osubscriberrow["n301_payeraddr1"]. ToString()); // Address Information (166) osegment.set_dataelementvalue(2, 0, osubscriberrow["n302_payeraddr2"]. ToString()); // Address Information (166) // Geographic Location (N4) edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\ \NM1\\N4")); osegment.set_dataelementvalue(1, 0, osubscriberrow["n401_payercity"]. ToString()); // City Name (19) osegment.set_dataelementvalue(2, 0, osubscriberrow["n402_payerstate"]. ToString()); // State or Province Code (156) osegment.set_dataelementvalue(3, 0, osubscriberrow["n403_payerzip"]. ToString()); // Postal Code (116) osegment.set_dataelementvalue(4, 0, osubscriberrow["n404_payercountry"].tostring()); // Country Code (26) osegment.set_dataelementvalue(7, 0, osubscriberrow[ "N407_PayerCountrySubdivision"].ToString()); // Country Subdivision Code (1715) ninstance = 1; //REF PAYER IDENTIFICATION NUMBER if (osubscriberrow["ref02_payerid"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment ("HL\\NM1\\REF(" + osegment.set_dataelementvalue(1, 0, "2U"); //Reference Identification Qualifier.ToString()); //Reference Identification osegment.set_dataelementvalue(2, 0, osubscriberrow["ref02_payerid"]
13 //REF EMPLOYER'S IDENTIFICATION NUMBER if (osubscriberrow["ref02_employerid"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment ("HL\\NM1\\REF(" + osegment.set_dataelementvalue(1, 0, "EI"); //Reference Identification Qualifier osegment.set_dataelementvalue(2, 0, osubscriberrow[ "REF02_EmployerId"].ToString()); //Reference Identification //REF CLAIM OFFICE NUMBER if (osubscriberrow["ref02_claimofficeno"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment ("HL\\NM1\\REF(" + osegment.set_dataelementvalue(1, 0, "FY"); //Reference Identification Qualifier osegment.set_dataelementvalue(2, 0, osubscriberrow[ "REF02_ClaimOfficeNo"].ToString()); //Reference Identification //REF NATIONAL ASSOCIATION OF INSURANCE COMMISSIONERS (NAIC) CODE if (osubscriberrow["ref02_naic_code"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment ("HL\\NM1\\REF(" + osegment.set_dataelementvalue(1, 0, "NF"); //Reference Identification Qualifier "].ToString()); //Reference Identification osegment.set_dataelementvalue(2, 0, osubscriberrow["ref02_naic_code //REF PROVIDER COMMERCIAL NUMBER if (osubscriberrow["ref02_providercommercialno"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment ("HL\\NM1\\REF(" + osegment.set_dataelementvalue(1, 0, "G2"); //Reference Identification Qualifier osegment.set_dataelementvalue(2, 0, osubscriberrow[ "REF02_ProviderCommercialNo"].ToString()); //Reference Identification //REF LOCATION NUMBER if (osubscriberrow["ref02_locationno"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment ("HL\\NM1\\REF(" + osegment.set_dataelementvalue(1, 0, "LU"); //Reference Identification Qualifier osegment.set_dataelementvalue(2, 0, osubscriberrow[ "REF02_LocationNo"].ToString()); //Reference Identification //if //2010BB PAYER
//The claims loop can occur in both the HL subscriber loop and HL patient (dependent) loop if (!bdependent) //self //Subscriber //2300 CLAIM INFORMATION Proc_2300_Claim(ref otransactionset, ref oconnection, "select * from [837X222_Claims] where Subscriberkey = " + osubscriberrow["subscriberkey"].tostring()); else //2000C PATIENT HL LOOP ssql = "select * from [837X222_Dependent] where Subscriberkey = " + osubscriberrow["subscriberkey"].tostring(); SqlDataAdapter odependentadapter = new SqlDataAdapter(sSql, oconnection); DataSet odependentds = new DataSet("dsDependent"); odependentadapter.fill(odependentds, "dsdependent"); 14 Rows) foreach (DataRow odependentrow in odependentds.tables["dsdependent"]. nhlcounter = nhlcounter + 1; //HL PATIENT LEVEL edidatasegment.set(ref osegment, otransactionset.createdatasegment ("HL\\HL")); osegment.set_dataelementvalue(1, 0, nhlcounter.tostring()); // Hierarchical ID Number osegment.set_dataelementvalue(2, 0, nhldependentparent.tostring()); //Hierarchical Parent ID Number osegment.set_dataelementvalue(3, 0, "23"); //Hierarchical Level Code osegment.set_dataelementvalue(4, 0, "0"); //Hierarchical Child Code //PAT PATIENT INFORMATION edidatasegment.set(ref osegment, otransactionset.createdatasegment ("HL\\PAT")); osegment.set_dataelementvalue(1, 0, odependentrow[ "PAT01_IndividualRelationshipCode"].ToString()); // Individual Relationship Code (1069) if (odependentrow["pat06_patientdeathdate"].tostring().trim()!= "") osegment.set_dataelementvalue(5, 0, "D8"); // Date Time Period Format Qualifier (1250) osegment.set_dataelementvalue(6, 0, odependentrow[ "PAT06_PatientDeathDate"].ToString()); // Date Time Period (1251) if (odependentrow["pat08_patientweightpounds"].tostring().trim()!= "") osegment.set_dataelementvalue(7, 0, "01"); // Unit or Basis for Measurement Code (355) osegment.set_dataelementvalue(8, 0, odependentrow[ "PAT08_PatientWeightPounds"].ToString()); // Weight (81) osegment.set_dataelementvalue(9, 0, odependentrow["pat09_pregnant"].tostring()); // Yes/No Condition or Response Code (1073).Trim()!= "") //2010CA PATIENT if (odependentrow["nm103_patientlastororganizationname"].tostring() //NM1 PATIENT NAME edidatasegment.set(ref osegment, otransactionset.
CreateDataSegment("HL\\NM1\\NM1")); osegment.set_dataelementvalue(1, 0, "QC"); //Entity Identifier Code osegment.set_dataelementvalue(2, 0, odependentrow[ "NM102_PatientTypeQualifier"].ToString()); //Entity Type Qualifier osegment.set_dataelementvalue(3, 0, odependentrow[ "NM103_PatientLastOrOrganizationName"].ToString()); //Name Last or Organization Name osegment.set_dataelementvalue(4, 0, odependentrow[ "NM104_PatientFirst"].ToString()); //Name First osegment.set_dataelementvalue(5, 0, odependentrow[ "NM105_PatientMiddle"].ToString()); // Name Middle (1037) osegment.set_dataelementvalue(7, 0, odependentrow[ "NM107_PatientSuffix"].ToString()); // Name Suffix (1039) 15 //N3 PATIENT ADDRESS INFORMATION edidatasegment.set(ref osegment, otransactionset. CreateDataSegment("HL\\NM1\\N3")); osegment.set_dataelementvalue(1, 0, odependentrow[ "N301_PatientAddr1"].ToString()); //Address Information osegment.set_dataelementvalue(2, 0, odependentrow[ "N302_PatientAddr2"].ToString()); // Address Information (166) CreateDataSegment("HL\\NM1\\N4")); //N4 PATIENT LOCATION edidatasegment.set(ref osegment, otransactionset. osegment.set_dataelementvalue(1, 0, odependentrow[ "N401_PatientCity"].ToString()); //City Name osegment.set_dataelementvalue(2, 0, odependentrow[ "N402_PatientState"].ToString()); //State or Province Code osegment.set_dataelementvalue(3, 0, odependentrow[ "N403_PatientZip"].ToString()); //Postal Code osegment.set_dataelementvalue(4, 0, odependentrow[ "N404_PatientCountry"].ToString()); // Country Code (26) osegment.set_dataelementvalue(7, 0, odependentrow[ "N407_PatientCountrySubdivision"].ToString()); // Country Subdivision Code (1715) //DMG PATIENT DEMOGRAPHIC INFORMATION edidatasegment.set(ref osegment, otransactionset. CreateDataSegment("HL\\NM1\\DMG")); if (odependentrow["dmg02_patientbirthdate"].tostring().trim()! = "") osegment.set_dataelementvalue(1, 0, "D8"); //Date Time Period Format Qualifier osegment.set_dataelementvalue(2, 0, odependentrow[ "DMG02_PatientBirthDate"].ToString()); //Date Time Period osegment.set_dataelementvalue(3, 0, odependentrow[ "DMG03_PatientGenderCode"].ToString()); //Gender Code ninstance = 1; // Reference Identification (REF) "AGENCY CLAIM NUMBER" if (odependentrow["ref02_propertycasualtyclaimno"].tostring(). Trim()!= "") edidatasegment.set(ref osegment, otransactionset. CreateDataSegment("HL\\NM1\\REF(" + osegment.set_dataelementvalue(1, 0, "Y4"); // Reference Identification Qualifier (128) osegment.set_dataelementvalue(2, 0, odependentrow[ "REF02_PropertyCasualtyClaimNo"].ToString()); // Reference Identification (127) // Reference Identification (REF) SOCIAL SECURITY NUMBER if (odependentrow["ref02_patientsocialsecurityno"].tostring().
Trim()!= "") edidatasegment.set(ref osegment, otransactionset. CreateDataSegment("HL\\NM1\\REF(" + osegment.set_dataelementvalue(1, 0, "SY"); // Reference Identification Qualifier (128) osegment.set_dataelementvalue(2, 0, odependentrow[ "REF02_PatientSocialSecurityNo"].ToString()); // Reference Identification (127) 16 // Reference Identification (REF) MEMBER IDENTIFICATION NUMBER if (odependentrow["ref02_memberidno"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset. CreateDataSegment("HL\\NM1\\REF(" + osegment.set_dataelementvalue(1, 0, "1W"); // Reference Identification Qualifier (128) osegment.set_dataelementvalue(2, 0, odependentrow[ "REF02_MemberIdNo"].ToString()); // Reference Identification (127) // Administrative Communications Contact (PER) if (odependentrow["per04_patientphoneno"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset. CreateDataSegment("HL\\NM1\\PER")); osegment.set_dataelementvalue(1, 0, "IC"); // Contact Function Code (366) osegment.set_dataelementvalue(2, 0, odependentrow[ "PER02_PatientContactName"].ToString()); // Name (93) osegment.set_dataelementvalue(3, 0, "TE"); // Communication Number Qualifier (365) osegment.set_dataelementvalue(4, 0, odependentrow[ "PER04_PatientPhoneNo"].ToString()); // Communication Number (364) if (odependentrow["per06_patientphoneextno"].tostring(). Trim()!= "") osegment.set_dataelementvalue(5, 0, "EX"); // Communication Number Qualifier (365) osegment.set_dataelementvalue(6, 0, odependentrow[ "PER06_PatientPhoneExtNo"].ToString()); // Communication Number (364) //if //if //2010CA PATIENT //Patient//s claims Proc_2300_Claim(ref otransactionset, ref oconnection, "select * from [837X222_Claims] where Dependentkey = " + odependentrow["dependentkey"].tostring()); //foreach odependentrow //if (!bdependent) //foreach osubscriberrow //foreach oinfosourcerow //foreach oheaderrow //foreach ogrouprow //foreach ointerchangerow
17 //TRAILING SEGMENTS ARE AUTOMATICALLY CREATED WHEN FREDI COMMITS (SAVES) //THE EDIDOC OBJECT INTO AN EDI FILE. oedidoc.save(sapppath + sedifile); MessageBox.Show("Done"); //DESTROYS OBJECTS otransactionset.dispose(); ogroup.dispose(); ointerchange.dispose(); oschemas.dispose(); oedidoc.dispose(); // btngenerate private void Proc_2300_Claim(ref editransactionset otransactionset, ref SqlConnection oconnection, string ssql) edidatasegment osegment=null; int ninstance = 1; int nelempos = 0; //2300 CLAIM SqlDataAdapter oclaimsadapter = new SqlDataAdapter(sSql, oconnection); DataSet oclaimsds = new DataSet("dsClaims"); oclaimsadapter.fill(oclaimsds, "dsclaims"); foreach (DataRow oclaimsrow in oclaimsds.tables["dsclaims"].rows) //CLM HEALTH CLAIM edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\clm\\clm")); osegment.set_dataelementvalue(1, 0, oclaimsrow["clm01_patientcontrolno"].tostring()); //Claim Submitter//s Identifier osegment.set_dataelementvalue(2, 0, oclaimsrow["clm02_totalclaimchargeamount"].tostring()); //Monetary Amount osegment.set_dataelementvalue(5, 1, 0, oclaimsrow["clm05_01_placeofservicecode"].tostring ()); //Facility Code Value osegment.set_dataelementvalue(5, 2, 0, "B"); //Facility Code Qualifier osegment.set_dataelementvalue(5, 3, 0, oclaimsrow["clm05_03_claimfrequencycode"].tostring ()); //Claim Frequency Type Code osegment.set_dataelementvalue(6, 0, oclaimsrow["clm06_suppliersignatureindicator"].tostring ()); //Yes/No Condition or Response Code osegment.set_dataelementvalue(7, 0, oclaimsrow["clm07_planparticipationcode"].tostring()); //Provider Accept Assignment Code osegment.set_dataelementvalue(8, 0, oclaimsrow["clm08_benefitsassignmentcertindicator"]. ToString()); //Yes/No Condition or Response Code osegment.set_dataelementvalue(9, 0, oclaimsrow["clm09_releaseofinformationcode"].tostring ()); //Release of Information Code osegment.set_dataelementvalue(10, 0, oclaimsrow["clm10_patientsignaturesourcecode"]. ToString()); // Patient Signature Source Code (1351) osegment.set_dataelementvalue(11, 1, oclaimsrow["clm11_01_relatedcausescode"].tostring()); // Related Causes Code (1362) osegment.set_dataelementvalue(11, 2, oclaimsrow["clm11_02_relatedcausescode"].tostring()); // Related Causes Code (1362) osegment.set_dataelementvalue(11, 4, oclaimsrow["clm11_04_autoaccidentstatecode"].tostring ()); // State or Province Code (156) osegment.set_dataelementvalue(11, 5, oclaimsrow["clm11_05_countrycode"].tostring()); // Country Code (26) osegment.set_dataelementvalue(12, 0, oclaimsrow["clm112_specialprogramcode"].tostring()); // Special Program Code (1366)
osegment.set_dataelementvalue(20, 0, oclaimsrow["clm120_delayreasoncode"].tostring()); // Delay Reason Code (1514) 18 ninstance = 1; // Date or Time or Period (DTP) "ONSET OF CURRENT SYMPTOMS OR ILLNESS" if (oclaimsrow["dtp03_onsetofcurrentillnessinjurydate"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\clm\\dtp(" + osegment.set_dataelementvalue(1, 0, "431"); // Date/Time Qualifier (374) osegment.set_dataelementvalue(2, 0, "D8"); // Date Time Period Format Qualifier (1250) osegment.set_dataelementvalue(3, 0, oclaimsrow["dtp03_onsetofcurrentillnessinjurydate"].tostring()); // Date Time Period (1251) // Date or Time or Period (DTP) "INITIAL TREATMENT" if (oclaimsrow["dtp03_initialtreatmentdate"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\clm\\dtp(" + osegment.set_dataelementvalue(1, 0, "454"); // Date/Time Qualifier (374) osegment.set_dataelementvalue(2, 0, "D8"); // Date Time Period Format Qualifier (1250) osegment.set_dataelementvalue(3, 0, oclaimsrow["dtp03_initialtreatmentdate"].tostring ()); // Date Time Period (1251) // Date or Time or Period (DTP) LATEST VISIT OR CONSULTATION if (oclaimsrow["dtp03_lastseendate"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\clm\\dtp(" + osegment.set_dataelementvalue(1, 0, "304"); // Date/Time Qualifier (374) osegment.set_dataelementvalue(2, 0, "D8"); // Date Time Period Format Qualifier (1250) osegment.set_dataelementvalue(3, 0, oclaimsrow["dtp03_lastseendate"].tostring()); // Date Time Period (1251) // Date or Time or Period (DTP) ACUTE MANIFESTATION OF A CHRONIC CONDITION if (oclaimsrow["dtp03_acutemanifestationdate"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\clm\\dtp(" + osegment.set_dataelementvalue(1, 0, "453"); // Date/Time Qualifier (374) osegment.set_dataelementvalue(2, 0, "D8"); // Date Time Period Format Qualifier (1250) osegment.set_dataelementvalue(3, 0, oclaimsrow["dtp03_acutemanifestationdate"].tostring ()); // Date Time Period (1251) // Date or Time or Period (DTP) ACCIDENT if (oclaimsrow["dtp03_accidentdate"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\clm\\dtp(" + osegment.set_dataelementvalue(1, 0, "439"); // Date/Time Qualifier (374) osegment.set_dataelementvalue(2, 0, "D8"); // Date Time Period Format Qualifier (1250) osegment.set_dataelementvalue(3, 0, oclaimsrow["dtp03_accidentdate"].tostring()); // Date Time Period (1251)
19 // Date or Time or Period (DTP) LAST MENSTRUAL PERIOD if (oclaimsrow["dtp03_lastmenstrualperioddate"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\clm\\dtp(" + osegment.set_dataelementvalue(1, 0, "484"); // Date/Time Qualifier (374) osegment.set_dataelementvalue(2, 0, "D8"); // Date Time Period Format Qualifier (1250) osegment.set_dataelementvalue(3, 0, oclaimsrow["dtp03_lastmenstrualperioddate"]. ToString()); // Date Time Period (1251) // Date or Time or Period (DTP) "LAST X RAY" if (oclaimsrow["dtp03_lastxraydate"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\clm\\dtp(" + osegment.set_dataelementvalue(1, 0, "455"); // Date/Time Qualifier (374) osegment.set_dataelementvalue(2, 0, "D8"); // Date Time Period Format Qualifier (1250) osegment.set_dataelementvalue(3, 0, oclaimsrow["dtp03_lastxraydate"].tostring()); // Date Time Period (1251) // Date or Time or Period (DTP) PRESCRIPTION if (oclaimsrow["dtp03_hearvisionprescriptdate"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\clm\\dtp(" + osegment.set_dataelementvalue(1, 0, "471"); // Date/Time Qualifier (374) osegment.set_dataelementvalue(2, 0, "D8"); // Date Time Period Format Qualifier (1250) osegment.set_dataelementvalue(3, 0, oclaimsrow["dtp03_hearvisionprescriptdate"]. ToString()); // Date Time Period (1251) // Date or Time or Period (DTP) DISABILITY if (oclaimsrow["dtp03_disability"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\clm\\dtp(" + osegment.set_dataelementvalue(1, 0, "314"); // Date/Time Qualifier (374) osegment.set_dataelementvalue(2, 0, "RD8"); // Date Time Period Format Qualifier (1250) osegment.set_dataelementvalue(3, 0, oclaimsrow["dtp03_disability"].tostring()); // Date Time Period (1251) // Date or Time or Period (DTP) INITIAL DISABILITY PERIOD START if (oclaimsrow["dtp03_initialdisabilityperiodstart"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\clm\\dtp(" + osegment.set_dataelementvalue(1, 0, "360"); // Date/Time Qualifier (374) osegment.set_dataelementvalue(2, 0, "D8"); // Date Time Period Format Qualifier (1250) osegment.set_dataelementvalue(3, 0, oclaimsrow["dtp03_initialdisabilityperiodstart"]. ToString()); // Date Time Period (1251)
20 // Date or Time or Period (DTP) INITIAL DISABILITY PERIOD END if (oclaimsrow["dtp03_initialdisabilityperiodend"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\clm\\dtp(" + osegment.set_dataelementvalue(1, 0, "361"); // Date/Time Qualifier (374) osegment.set_dataelementvalue(2, 0, "D8"); // Date Time Period Format Qualifier (1250) osegment.set_dataelementvalue(3, 0, oclaimsrow["dtp03_initialdisabilityperiodend"]. ToString()); // Date Time Period (1251) // Date or Time or Period (DTP) INITIAL DISABILITY PERIOD LAST DAY WORKED if (oclaimsrow["dtp03_lastworkeddate"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\clm\\dtp(" + osegment.set_dataelementvalue(1, 0, "297"); // Date/Time Qualifier (374) osegment.set_dataelementvalue(2, 0, "D8"); // Date Time Period Format Qualifier (1250) osegment.set_dataelementvalue(3, 0, oclaimsrow["dtp03_lastworkeddate"].tostring()); // Date Time Period (1251) // Date or Time or Period (DTP) INITIAL DISABILITY PERIOD RETURN TO WORK if (oclaimsrow["dtp03_workreturndate"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\clm\\dtp(" + osegment.set_dataelementvalue(1, 0, "296"); // Date/Time Qualifier (374) osegment.set_dataelementvalue(2, 0, "D8"); // Date Time Period Format Qualifier (1250) osegment.set_dataelementvalue(3, 0, oclaimsrow["dtp03_workreturndate"].tostring()); // Date Time Period (1251) // Date or Time or Period (DTP) ADMISSION if (oclaimsrow["dtp03_hospitalizationadmissiondate"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\clm\\dtp(" + osegment.set_dataelementvalue(1, 0, "435"); // Date/Time Qualifier (374) osegment.set_dataelementvalue(2, 0, "D8"); // Date Time Period Format Qualifier (1250) osegment.set_dataelementvalue(3, 0, oclaimsrow["dtp03_hospitalizationadmissiondate"]. ToString()); // Date Time Period (1251) // Date or Time or Period (DTP) DISCHARGE if (oclaimsrow["dtp03_hospitalizationdischargedate"].tostring().trim()!= "") edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\clm\\dtp(" + osegment.set_dataelementvalue(1, 0, "096"); // Date/Time Qualifier (374) osegment.set_dataelementvalue(2, 0, "D8"); // Date Time Period Format Qualifier (1250) osegment.set_dataelementvalue(3, 0, oclaimsrow["dtp03_hospitalizationdischargedate"]. ToString()); // Date Time Period (1251)