///<summary>For orderBy, use 0 for BillingType and 1 for PatientName.</summary> public static DataTable GetBilling(bool isSent, int orderBy, DateTime dateFrom, DateTime dateTo, long clinicNum) { if (RemotingClient.RemotingRole == RemotingRole.ClientWeb) { return(Meth.GetTable(MethodBase.GetCurrentMethod(), isSent, orderBy, dateFrom, dateTo, clinicNum)); } DataTable table = new DataTable(); DataRow row; //columns that start with lowercase are altered for display rather than being raw data. table.Columns.Add("amountDue"); table.Columns.Add("balTotal"); table.Columns.Add("billingType"); table.Columns.Add("insEst"); table.Columns.Add("IsSent"); table.Columns.Add("lastStatement"); table.Columns.Add("mode"); table.Columns.Add("name"); table.Columns.Add("PatNum"); table.Columns.Add("payPlanDue"); table.Columns.Add("StatementNum"); List <DataRow> rows = new List <DataRow>(); string command = "SELECT BalTotal,BillingType,FName,InsEst,statement.IsSent," + "IFNULL(MAX(s2.DateSent)," + POut.Date(DateTime.MinValue) + ") LastStatement," + "LName,MiddleI,statement.Mode_,PayPlanDue,Preferred," + "statement.PatNum,statement.StatementNum " + "FROM statement " + "LEFT JOIN patient ON statement.PatNum=patient.PatNum " + "LEFT JOIN statement s2 ON s2.PatNum=patient.PatNum " + "AND s2.IsSent=1 "; if (PrefC.GetBool(PrefName.BillingIgnoreInPerson)) { command += "AND s2.Mode_ !=1 "; } if (orderBy == 0) //BillingType { command += "LEFT JOIN definition ON patient.BillingType=definition.DefNum "; } command += "WHERE statement.IsSent=" + POut.Bool(isSent) + " "; //if(dateFrom.Year>1800){ command += "AND statement.DateSent>=" + POut.Date(dateFrom) + " "; //greater than midnight this morning //} //if(dateFrom.Year>1800){ command += "AND statement.DateSent<" + POut.Date(dateTo.AddDays(1)) + " "; //less than midnight tonight //} if (clinicNum > 0) { command += "AND patient.ClinicNum=" + clinicNum + " "; } command += "GROUP BY BalTotal,BillingType,FName,InsEst,statement.IsSent," + "LName,MiddleI,statement.Mode_,PayPlanDue,Preferred," + "statement.PatNum,statement.StatementNum "; if (orderBy == 0) //BillingType { command += "ORDER BY definition.ItemOrder,LName,FName,MiddleI,PayPlanDue"; } else { command += "ORDER BY LName,FName"; } DataTable rawTable = Db.GetTable(command); Patient pat; StatementMode mode; double balTotal; double insEst; double payPlanDue; DateTime lastStatement; for (int i = 0; i < rawTable.Rows.Count; i++) { row = table.NewRow(); balTotal = PIn.Double(rawTable.Rows[i]["BalTotal"].ToString()); insEst = PIn.Double(rawTable.Rows[i]["InsEst"].ToString()); payPlanDue = PIn.Double(rawTable.Rows[i]["PayPlanDue"].ToString()); row["amountDue"] = (balTotal - insEst).ToString("F"); row["balTotal"] = balTotal.ToString("F");; row["billingType"] = DefC.GetName(DefCat.BillingTypes, PIn.Long(rawTable.Rows[i]["BillingType"].ToString())); if (insEst == 0) { row["insEst"] = ""; } else { row["insEst"] = insEst.ToString("F"); } row["IsSent"] = rawTable.Rows[i]["IsSent"].ToString(); lastStatement = PIn.Date(rawTable.Rows[i]["LastStatement"].ToString()); if (lastStatement.Year < 1880) { row["lastStatement"] = ""; } else { row["lastStatement"] = lastStatement.ToShortDateString(); } mode = (StatementMode)PIn.Long(rawTable.Rows[i]["Mode_"].ToString()); row["mode"] = Lans.g("enumStatementMode", mode.ToString()); pat = new Patient(); pat.LName = rawTable.Rows[i]["LName"].ToString(); pat.FName = rawTable.Rows[i]["FName"].ToString(); pat.Preferred = rawTable.Rows[i]["Preferred"].ToString(); pat.MiddleI = rawTable.Rows[i]["MiddleI"].ToString(); row["name"] = pat.GetNameLF(); row["PatNum"] = rawTable.Rows[i]["PatNum"].ToString(); if (payPlanDue == 0) { row["payPlanDue"] = ""; } else { row["payPlanDue"] = payPlanDue.ToString("F"); } row["StatementNum"] = rawTable.Rows[i]["StatementNum"].ToString(); rows.Add(row); } for (int i = 0; i < rows.Count; i++) { table.Rows.Add(rows[i]); } return(table); }
public static DataTable GetPatientFormsTable(long patNum) { if (RemotingClient.RemotingRole == RemotingRole.ClientWeb) { return(Meth.GetTable(MethodBase.GetCurrentMethod(), patNum)); } //DataConnection dcon=new DataConnection(); DataTable table = new DataTable(""); DataRow row; //columns that start with lowercase are altered for display rather than being raw data. table.Columns.Add("date"); table.Columns.Add("dateOnly", typeof(DateTime)); //to help with sorting table.Columns.Add("dateTime", typeof(DateTime)); table.Columns.Add("description"); table.Columns.Add("DocNum"); table.Columns.Add("imageCat"); table.Columns.Add("SheetNum"); table.Columns.Add("showInTerminal"); table.Columns.Add("time"); table.Columns.Add("timeOnly", typeof(TimeSpan)); //to help with sorting //but we won't actually fill this table with rows until the very end. It's more useful to use a List<> for now. List <DataRow> rows = new List <DataRow>(); //sheet--------------------------------------------------------------------------------------- string command = "SELECT DateTimeSheet,SheetNum,Description,ShowInTerminal " + "FROM sheet WHERE PatNum =" + POut.Long(patNum) + " " + "AND (SheetType=" + POut.Long((int)SheetTypeEnum.PatientForm) + " OR SheetType=" + POut.Long((int)SheetTypeEnum.MedicalHistory); if (PrefC.GetBool(PrefName.PatientFormsShowConsent)) { command += " OR SheetType=" + POut.Long((int)SheetTypeEnum.Consent); //Show consent forms if pref is true. } command += ")"; //+"ORDER BY ShowInTerminal";//DATE(DateTimeSheet),ShowInTerminal,TIME(DateTimeSheet)"; DataTable rawSheet = Db.GetTable(command); DateTime dateT; for (int i = 0; i < rawSheet.Rows.Count; i++) { row = table.NewRow(); dateT = PIn.DateT(rawSheet.Rows[i]["DateTimeSheet"].ToString()); row["date"] = dateT.ToShortDateString(); row["dateOnly"] = dateT.Date; row["dateTime"] = dateT; row["description"] = rawSheet.Rows[i]["Description"].ToString(); row["DocNum"] = "0"; row["imageCat"] = ""; row["SheetNum"] = rawSheet.Rows[i]["SheetNum"].ToString(); if (rawSheet.Rows[i]["ShowInTerminal"].ToString() == "0") { row["showInTerminal"] = ""; } else { row["showInTerminal"] = rawSheet.Rows[i]["ShowInTerminal"].ToString(); } if (dateT.TimeOfDay != TimeSpan.Zero) { row["time"] = dateT.ToString("h:mm") + dateT.ToString("%t").ToLower(); } row["timeOnly"] = dateT.TimeOfDay; rows.Add(row); } //document--------------------------------------------------------------------------------------- command = "SELECT DateCreated,DocCategory,DocNum,Description " + "FROM document,definition " + "WHERE document.DocCategory=definition.DefNum" + " AND PatNum =" + POut.Long(patNum) + " AND definition.ItemValue LIKE '%F%'"; //+" ORDER BY DateCreated"; DataTable rawDoc = Db.GetTable(command); long docCat; for (int i = 0; i < rawDoc.Rows.Count; i++) { row = table.NewRow(); dateT = PIn.DateT(rawDoc.Rows[i]["DateCreated"].ToString()); row["date"] = dateT.ToShortDateString(); row["dateOnly"] = dateT.Date; row["dateTime"] = dateT; row["description"] = rawDoc.Rows[i]["Description"].ToString(); row["DocNum"] = rawDoc.Rows[i]["DocNum"].ToString(); docCat = PIn.Long(rawDoc.Rows[i]["DocCategory"].ToString()); row["imageCat"] = DefC.GetName(DefCat.ImageCats, docCat); row["SheetNum"] = "0"; row["showInTerminal"] = ""; if (dateT.TimeOfDay != TimeSpan.Zero) { row["time"] = dateT.ToString("h:mm") + dateT.ToString("%t").ToLower(); } row["timeOnly"] = dateT.TimeOfDay; rows.Add(row); } //Sorting for (int i = 0; i < rows.Count; i++) { table.Rows.Add(rows[i]); } DataView view = table.DefaultView; view.Sort = "dateOnly,showInTerminal,timeOnly"; table = view.ToTable(); return(table); }