///<summary>Converts a DataTable to a list of objects.</summary> public static List <EhrMeasureEvent> TableToList(DataTable table) { List <EhrMeasureEvent> retVal = new List <EhrMeasureEvent>(); EhrMeasureEvent ehrMeasureEvent; foreach (DataRow row in table.Rows) { ehrMeasureEvent = new EhrMeasureEvent(); ehrMeasureEvent.EhrMeasureEventNum = PIn.Long(row["EhrMeasureEventNum"].ToString()); ehrMeasureEvent.DateTEvent = PIn.DateT(row["DateTEvent"].ToString()); ehrMeasureEvent.EventType = (OpenDentBusiness.EhrMeasureEventType)PIn.Int(row["EventType"].ToString()); ehrMeasureEvent.PatNum = PIn.Long(row["PatNum"].ToString()); ehrMeasureEvent.MoreInfo = PIn.String(row["MoreInfo"].ToString()); ehrMeasureEvent.CodeValueEvent = PIn.String(row["CodeValueEvent"].ToString()); ehrMeasureEvent.CodeSystemEvent = PIn.String(row["CodeSystemEvent"].ToString()); ehrMeasureEvent.CodeValueResult = PIn.String(row["CodeValueResult"].ToString()); ehrMeasureEvent.CodeSystemResult = PIn.String(row["CodeSystemResult"].ToString()); ehrMeasureEvent.FKey = PIn.Long(row["FKey"].ToString()); ehrMeasureEvent.DateStartTobacco = PIn.Date(row["DateStartTobacco"].ToString()); ehrMeasureEvent.TobaccoCessationDesire = PIn.Byte(row["TobaccoCessationDesire"].ToString()); retVal.Add(ehrMeasureEvent); } return(retVal); }
///<summary>Converts a DataTable to a list of objects.</summary> public static List <ProcedureCode> TableToList(DataTable table) { List <ProcedureCode> retVal = new List <ProcedureCode>(); ProcedureCode procedureCode; foreach (DataRow row in table.Rows) { procedureCode = new ProcedureCode(); procedureCode.CodeNum = PIn.Long(row["CodeNum"].ToString()); procedureCode.ProcCode = PIn.String(row["ProcCode"].ToString()); procedureCode.Descript = PIn.String(row["Descript"].ToString()); procedureCode.AbbrDesc = PIn.String(row["AbbrDesc"].ToString()); procedureCode.ProcTime = PIn.String(row["ProcTime"].ToString()); procedureCode.ProcCat = PIn.Long(row["ProcCat"].ToString()); procedureCode.TreatArea = (OpenDentBusiness.TreatmentArea)PIn.Int(row["TreatArea"].ToString()); procedureCode.NoBillIns = PIn.Bool(row["NoBillIns"].ToString()); procedureCode.IsProsth = PIn.Bool(row["IsProsth"].ToString()); procedureCode.DefaultNote = PIn.String(row["DefaultNote"].ToString()); procedureCode.IsHygiene = PIn.Bool(row["IsHygiene"].ToString()); procedureCode.GTypeNum = PIn.Int(row["GTypeNum"].ToString()); procedureCode.AlternateCode1 = PIn.String(row["AlternateCode1"].ToString()); procedureCode.MedicalCode = PIn.String(row["MedicalCode"].ToString()); procedureCode.IsTaxed = PIn.Bool(row["IsTaxed"].ToString()); procedureCode.PaintType = (OpenDentBusiness.ToothPaintingType)PIn.Int(row["PaintType"].ToString()); procedureCode.GraphicColor = Color.FromArgb(PIn.Int(row["GraphicColor"].ToString())); procedureCode.LaymanTerm = PIn.String(row["LaymanTerm"].ToString()); procedureCode.IsCanadianLab = PIn.Bool(row["IsCanadianLab"].ToString()); procedureCode.PreExisting = PIn.Bool(row["PreExisting"].ToString()); procedureCode.BaseUnits = PIn.Int(row["BaseUnits"].ToString()); procedureCode.SubstitutionCode = PIn.String(row["SubstitutionCode"].ToString()); procedureCode.SubstOnlyIf = (OpenDentBusiness.SubstitutionCondition)PIn.Int(row["SubstOnlyIf"].ToString()); procedureCode.DateTStamp = PIn.DateT(row["DateTStamp"].ToString()); procedureCode.IsMultiVisit = PIn.Bool(row["IsMultiVisit"].ToString()); procedureCode.DrugNDC = PIn.String(row["DrugNDC"].ToString()); procedureCode.RevenueCodeDefault = PIn.String(row["RevenueCodeDefault"].ToString()); procedureCode.ProvNumDefault = PIn.Long(row["ProvNumDefault"].ToString()); procedureCode.CanadaTimeUnits = PIn.Double(row["CanadaTimeUnits"].ToString()); procedureCode.IsRadiology = PIn.Bool(row["IsRadiology"].ToString()); procedureCode.DefaultClaimNote = PIn.String(row["DefaultClaimNote"].ToString()); procedureCode.DefaultTPNote = PIn.String(row["DefaultTPNote"].ToString()); procedureCode.BypassGlobalLock = (OpenDentBusiness.BypassLockStatus)PIn.Int(row["BypassGlobalLock"].ToString()); procedureCode.TaxCode = PIn.String(row["TaxCode"].ToString()); retVal.Add(procedureCode); } return(retVal); }
///<summary>Converts a DataTable to a list of objects.</summary> public static List <EServiceCodeLink> TableToList(DataTable table) { List <EServiceCodeLink> retVal = new List <EServiceCodeLink>(); EServiceCodeLink eServiceCodeLink; foreach (DataRow row in table.Rows) { eServiceCodeLink = new EServiceCodeLink(); eServiceCodeLink.EServiceCodeLinkNum = PIn.Long(row["EServiceCodeLinkNum"].ToString()); eServiceCodeLink.CodeNum = PIn.Long(row["CodeNum"].ToString()); eServiceCodeLink.EService = (OpenDentBusiness.eServiceCode)PIn.Int(row["EService"].ToString()); retVal.Add(eServiceCodeLink); } return(retVal); }
///<summary>Converts a DataTable to a list of objects.</summary> public static List <Carrier> TableToList(DataTable table) { List <Carrier> retVal = new List <Carrier>(); Carrier carrier; foreach (DataRow row in table.Rows) { carrier = new Carrier(); carrier.CarrierNum = PIn.Long(row["CarrierNum"].ToString()); carrier.CarrierName = PIn.String(row["CarrierName"].ToString()); carrier.Address = PIn.String(row["Address"].ToString()); carrier.Address2 = PIn.String(row["Address2"].ToString()); carrier.City = PIn.String(row["City"].ToString()); carrier.State = PIn.String(row["State"].ToString()); carrier.Zip = PIn.String(row["Zip"].ToString()); carrier.Phone = PIn.String(row["Phone"].ToString()); carrier.ElectID = PIn.String(row["ElectID"].ToString()); carrier.NoSendElect = (OpenDentBusiness.NoSendElectType)PIn.Int(row["NoSendElect"].ToString()); carrier.IsCDA = PIn.Bool(row["IsCDA"].ToString()); carrier.CDAnetVersion = PIn.String(row["CDAnetVersion"].ToString()); carrier.CanadianNetworkNum = PIn.Long(row["CanadianNetworkNum"].ToString()); carrier.IsHidden = PIn.Bool(row["IsHidden"].ToString()); carrier.CanadianEncryptionMethod = PIn.Byte(row["CanadianEncryptionMethod"].ToString()); carrier.CanadianSupportedTypes = (OpenDentBusiness.CanSupTransTypes)PIn.Int(row["CanadianSupportedTypes"].ToString()); carrier.SecUserNumEntry = PIn.Long(row["SecUserNumEntry"].ToString()); carrier.SecDateEntry = PIn.Date(row["SecDateEntry"].ToString()); carrier.SecDateTEdit = PIn.DateT(row["SecDateTEdit"].ToString()); carrier.TIN = PIn.String(row["TIN"].ToString()); carrier.CarrierGroupName = PIn.Long(row["CarrierGroupName"].ToString()); carrier.ApptTextBackColor = Color.FromArgb(PIn.Int(row["ApptTextBackColor"].ToString())); carrier.IsCoinsuranceInverted = PIn.Bool(row["IsCoinsuranceInverted"].ToString()); carrier.TrustedEtransFlags = (OpenDentBusiness.TrustedEtransTypes)PIn.Int(row["TrustedEtransFlags"].ToString()); retVal.Add(carrier); } return(retVal); }
///<summary>Converts a DataTable to a list of objects.</summary> public static List <SubstitutionLink> TableToList(DataTable table) { List <SubstitutionLink> retVal = new List <SubstitutionLink>(); SubstitutionLink substitutionLink; foreach (DataRow row in table.Rows) { substitutionLink = new SubstitutionLink(); substitutionLink.SubstitutionLinkNum = PIn.Long(row["SubstitutionLinkNum"].ToString()); substitutionLink.PlanNum = PIn.Long(row["PlanNum"].ToString()); substitutionLink.CodeNum = PIn.Long(row["CodeNum"].ToString()); substitutionLink.SubstitutionCode = PIn.String(row["SubstitutionCode"].ToString()); substitutionLink.SubstOnlyIf = (OpenDentBusiness.SubstitutionCondition)PIn.Int(row["SubstOnlyIf"].ToString()); retVal.Add(substitutionLink); } return(retVal); }
///<summary>Adds the xml for one statement.</summary> public static void GenerateOneStatement(XmlWriter writer, Statement stmt, Patient pat, Family fam, DataSet dataSet) { Patient guar = fam.ListPats[0]; writer.WriteStartElement("Statement"); //writer.WriteAttributeString("CreditCardChoice",PrefC.GetString(PrefName.BillingElectCreditCardChoices")); //remit address---------------------------------------------------------- writer.WriteStartElement("RemitAddress"); if (!PrefC.GetBool(PrefName.EasyNoClinics) && Clinics.List.Length > 0 && //if using clinics Clinics.GetClinic(guar.ClinicNum) != null) //and this guar is assigned to a clinic { Clinic clinic = Clinics.GetClinic(guar.ClinicNum); writer.WriteElementString("Name", clinic.Description); writer.WriteElementString("Address", clinic.Address); writer.WriteElementString("Address2", clinic.Address2); writer.WriteElementString("City", clinic.City); writer.WriteElementString("State", clinic.State); writer.WriteElementString("Zip", clinic.Zip); string phone = ""; if (clinic.Phone.Length == 10) { phone = "(" + clinic.Phone.Substring(0, 3) + ")" + clinic.Phone.Substring(3, 3) + "-" + clinic.Phone.Substring(6); } writer.WriteElementString("Phone", phone); } else //not using clinics { writer.WriteElementString("Name", PrefC.GetString(PrefName.PracticeTitle)); writer.WriteElementString("Address", PrefC.GetString(PrefName.PracticeAddress)); writer.WriteElementString("Address2", PrefC.GetString(PrefName.PracticeAddress2)); writer.WriteElementString("City", PrefC.GetString(PrefName.PracticeCity)); writer.WriteElementString("State", PrefC.GetString(PrefName.PracticeST)); writer.WriteElementString("Zip", PrefC.GetString(PrefName.PracticeZip)); writer.WriteElementString("Phone", PrefC.GetString(PrefName.PracticePhone)); } writer.WriteEndElement(); //RemitAddress //Patient------------------------------------------------------------------------------- writer.WriteStartElement("Patient"); writer.WriteElementString("Name", guar.GetNameFLFormal()); writer.WriteElementString("AccountNum", guar.PatNum.ToString()); writer.WriteElementString("Address", guar.Address); writer.WriteElementString("Address2", guar.Address2); writer.WriteElementString("City", guar.City); writer.WriteElementString("State", guar.State); writer.WriteElementString("Zip", guar.Zip); writer.WriteEndElement(); //Patient //Account summary----------------------------------------------------------------------- writer.WriteStartElement("AccountSummary"); if (PrefC.GetLong(PrefName.StatementsCalcDueDate) == -1) { writer.WriteElementString("DueDate", Lan.g("FormRpStatement", "Upon Receipt")); } else { DateTime dueDate = DateTime.Today.AddDays(PrefC.GetLong(PrefName.StatementsCalcDueDate)); writer.WriteElementString("DueDate", dueDate.ToString("MM/dd/yyyy")); } writer.WriteElementString("StatementDate", stmt.DateSent.ToString("MM/dd/yyyy")); DataTable tableAccount = null; for (int i = 0; i < dataSet.Tables.Count; i++) { if (dataSet.Tables[i].TableName.StartsWith("account")) { tableAccount = dataSet.Tables[i]; } } //on a regular printed statement, the amount due at the top might be different from the balance at the middle right. //This is because of payment plan balances. //But in e-bills, there is only one amount due. //Insurance estimate is already subtracted, and payment plan balance is already added. double amountDue = guar.BalTotal; //add payplan due amt: for (int m = 0; m < dataSet.Tables["misc"].Rows.Count; m++) { if (dataSet.Tables["misc"].Rows[m]["descript"].ToString() == "payPlanDue") { amountDue += PIn.Double(dataSet.Tables["misc"].Rows[m]["value"].ToString()); } } if (PrefC.GetBool(PrefName.BalancesDontSubtractIns)) { writer.WriteElementString("EstInsPayments", ""); writer.WriteElementString("AmountDue", amountDue.ToString("F2")); } else //this is typical { writer.WriteElementString("EstInsPayments", guar.InsEst.ToString("F2")); amountDue -= guar.InsEst; writer.WriteElementString("AmountDue", amountDue.ToString("F2")); } writer.WriteElementString("Bal_0_30", guar.Bal_0_30.ToString("F2")); writer.WriteElementString("Bal_31_60", guar.Bal_31_60.ToString("F2")); writer.WriteElementString("Bal_61_90", guar.Bal_61_90.ToString("F2")); writer.WriteElementString("BalOver90", guar.BalOver90.ToString("F2")); writer.WriteEndElement(); //AccountSummary //Notes----------------------------------------------------------------------------------- writer.WriteStartElement("Notes"); if (stmt.NoteBold != "") { writer.WriteStartElement("Note"); writer.WriteAttributeString("FgColor", ColorToHexString(Color.DarkRed)); writer.WriteCData(stmt.NoteBold); writer.WriteEndElement(); //Note } if (stmt.Note != "") { writer.WriteStartElement("Note"); writer.WriteAttributeString("FgColor", ColorToHexString(Color.Black)); writer.WriteCData(stmt.Note); writer.WriteEndElement(); //Note } writer.WriteEndElement(); //Notes //Detail items------------------------------------------------------------------------------ writer.WriteStartElement("DetailItems"); string descript; string fulldesc; string procCode; string tth; string[] lineArray; List <string> lines; DateTime date; int seq = 0; for (int i = 0; i < tableAccount.Rows.Count; i++) { procCode = tableAccount.Rows[i]["ProcCode"].ToString(); tth = tableAccount.Rows[i]["tth"].ToString(); descript = tableAccount.Rows[i]["description"].ToString(); fulldesc = procCode + " " + tth + " " + descript; lineArray = fulldesc.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); lines = new List <string>(lineArray); //We assume that the line limit is 40 char. if (lines[0].Length > 40) { string newline = lines[0].Substring(40); lines[0] = lines[0].Substring(0, 40); //first half lines.Insert(1, newline); //second half } for (int li = 0; li < lines.Count; li++) { writer.WriteStartElement("Item"); writer.WriteAttributeString("sequence", seq.ToString()); if (li == 0) { date = (DateTime)tableAccount.Rows[i]["DateTime"]; writer.WriteElementString("Date", date.ToString("MM/dd/yyyy")); writer.WriteElementString("PatientName", tableAccount.Rows[i]["patient"].ToString()); } else { writer.WriteElementString("Date", ""); writer.WriteElementString("PatientName", ""); } writer.WriteElementString("Description", lines[li]); if (li == 0) { writer.WriteElementString("Charges", tableAccount.Rows[i]["charges"].ToString()); writer.WriteElementString("Credits", tableAccount.Rows[i]["credits"].ToString()); writer.WriteElementString("Balance", tableAccount.Rows[i]["balance"].ToString()); } else { writer.WriteElementString("Charges", ""); writer.WriteElementString("Credits", ""); writer.WriteElementString("Balance", ""); } writer.WriteEndElement(); //Item seq++; } } writer.WriteEndElement(); //DetailItems writer.WriteEndElement(); //Statement }