/// <summary> /// 得到病人的一日清单,转科病人分开打 /// </summary> /// <param name="patlistid">病人ID</param> /// <param name="Bdate">开始日期</param> /// <param name="Edate">结束日期</param> /// <returns></returns> public DataTable GetCostDayData(int patlistid, string presdeptcode, DateTime?Bdate, DateTime?Edate) { try { IfeeBillManager ifbmD = DaoFactory.GetObject <IfeeBillManager>(typeof(FeeBillManagerDao)); ifbmD.oleDb = oleDb; return(ifbmD.GetCostDayData(patlistid, presdeptcode, Bdate, Edate)); } catch (System.Exception e) { throw new Exception(e.Message); } }
/// <summary> /// 打印费用项目加入医保类型 /// </summary> /// <param name="dt"></param> /// <param name="sType">1.项目组合2.项目明细3.项目分组</param> /// <returns></returns> public DataTable GetFeeType(DataTable dtt, string sType, out decimal alldec, out decimal firstFee, out decimal secondFee, out decimal otherFee) { try { //DataView dv = dtt.DefaultView; //dv.Sort = "itemtypename Asc"; //dtt = dv.ToTable(); alldec = 0; firstFee = 0; secondFee = 0; otherFee = 0; IfeeBillManager ifbmD = DaoFactory.GetObject <IfeeBillManager>(typeof(FeeBillManagerDao)); ifbmD.oleDb = oleDb; DataTable drugData = ifbmD.GetBaseData(0); DataTable projectData = ifbmD.GetBaseData(1); DataTable projectGroupData = ifbmD.GetBaseData(2); DataTable projectGroupMXData = ifbmD.GetBaseData(3); DataTable dt = dtt.Clone(); if (dtt.Rows.Count == 0) { return(dtt); } dt.Columns["ITEMID"].DataType = typeof(string); for (int i = 0; i < dtt.Rows.Count; i++) { if (Convert.ToDecimal(dtt.Rows[i]["amount"]) == 0) { continue; } if (Convert.ToInt32(dtt.Rows[i]["PRESTYPE"]) == 4)//项目(基本项目) { #region 基本项目 DataRow dr = dt.NewRow(); for (int k = 0; k < dt.Columns.Count; k++) { dr[k] = dtt.Rows[i][k]; } string itemid = dr["ITEMID"].ToString(); DataRow[] drs = projectData.Select("itemid=" + itemid); if (drs.Length != 0) { if (drs[0] != null) { dr["itemid"] = drs[0]["d_code"]; if (HIS.SYSTEM.PubicBaseClasses.XcConvert.IsNull(drs[0]["insur_type"], "").ToString().Trim() == "甲") { dr["itemname"] = "★" + dr["itemname"].ToString(); firstFee += Convert.ToDecimal(dr["tolal_fee"]); } else if (HIS.SYSTEM.PubicBaseClasses.XcConvert.IsNull(drs[0]["insur_type"], "").ToString().Trim() == "乙") { dr["itemname"] = "☆" + dr["itemname"].ToString(); secondFee += Convert.ToDecimal(dr["tolal_fee"]); } } } dt.Rows.Add(dr); #endregion } else if (Convert.ToInt32(dtt.Rows[i]["PRESTYPE"]) == 5)//项目(组合项目) { if (OP_ZYConfigSetting.GetConfigValue("001") == 0) { #region 组合项目 DataRow dr = dt.NewRow(); for (int k = 0; k < dt.Columns.Count; k++) { dr[k] = dtt.Rows[i][k]; } string itemid = dr["ITEMID"].ToString(); DataRow[] drs = projectGroupData.Select("itemid=" + itemid); if (drs.Length != 0) { if (drs[0] != null) { dr["itemid"] = drs[0]["d_code"]; if (XcConvert.IsNull(drs[0]["insur_type"], "").ToString().Trim() == "甲") { dr["itemname"] = "★" + dr["itemname"].ToString(); firstFee += Convert.ToDecimal(dr["tolal_fee"]); } else if (XcConvert.IsNull(drs[0]["insur_type"], "").ToString().Trim() == "乙") { dr["itemname"] = "☆" + dr["itemname"].ToString(); secondFee += Convert.ToDecimal(dr["tolal_fee"]); } } } dt.Rows.Add(dr); #endregion } else { #region 组合项目明细 if (sType == "1")//项目组合 { #region 项目组合 string itemid = dtt.Rows[i]["ITEMID"].ToString(); DataRow[] drs = projectGroupMXData.Select("complex_id=" + itemid); if (drs.Length != 0) { for (int j = 0; j < drs.Length; j++) { DataRow dr = dt.NewRow(); for (int k = 0; k < dt.Columns.Count; k++) { dr[k] = dtt.Rows[i][k]; } dr["itemid"] = drs[j]["STD_CODE"]; dr["prestype"] = '4'; if (XcConvert.IsNull(drs[j]["insur_type"], "").ToString().Trim() == "甲") { dr["itemname"] = "★" + drs[j]["Item_name"]; firstFee += Convert.ToDecimal(dr["tolal_fee"]); } else if (XcConvert.IsNull(drs[j]["insur_type"], "").ToString().Trim() == "乙") { dr["itemname"] = "☆" + drs[j]["Item_name"]; secondFee += Convert.ToDecimal(dr["tolal_fee"]); } else { dr["itemname"] = drs[j]["Item_name"]; } dr["packunit"] = drs[j]["item_unit"]; dr["unit"] = drs[j]["item_unit"]; dr["sell_price"] = drs[j]["price"]; dr["amount"] = Convert.ToDecimal(drs[j]["num"]) * Convert.ToDecimal(dr["amount"]); dr["tolal_fee"] = Convert.ToString(Convert.ToDecimal(dr["sell_price"]) * Convert.ToDecimal(dr["amount"])); alldec += Convert.ToDecimal(dr["tolal_fee"]); dt.Rows.Add(dr); } alldec = alldec - Convert.ToDecimal(dtt.Rows[i]["tolal_fee"]); } #endregion } else if (sType == "2")//项目清单 { #region 项目清单 string itemid = dtt.Rows[i]["ITEMID"].ToString(); DataRow[] drs = projectGroupMXData.Select("complex_id=" + itemid); if (drs.Length != 0) { for (int j = 0; j < drs.Length; j++) { DataRow dr = dt.NewRow(); for (int k = 0; k < dt.Columns.Count; k++) { dr[k] = dtt.Rows[i][k]; } //dr["itemid"] = drs[j]["STD_CODE"]; //dr["prestype"] = '4'; if (XcConvert.IsNull(drs[j]["insur_type"], "").ToString().Trim() == "甲") { dr["itemname"] = "★" + drs[j]["Item_name"]; firstFee += Convert.ToDecimal(dr["tolal_fee"]); } else if (XcConvert.IsNull(drs[j]["insur_type"], "").ToString().Trim() == "乙") { dr["itemname"] = "☆" + drs[j]["Item_name"]; secondFee += Convert.ToDecimal(dr["tolal_fee"]); } else { dr["itemname"] = drs[j]["Item_name"]; } dr["packunit"] = drs[j]["item_unit"]; dr["unit"] = drs[j]["item_unit"]; dr["sell_price"] = drs[j]["price"]; dr["amount"] = Convert.ToDecimal(drs[j]["num"]) * Convert.ToDecimal(dr["amount"]); dr["tolal_fee"] = Convert.ToString(Convert.ToDecimal(dr["sell_price"]) * Convert.ToDecimal(dr["amount"])); alldec += Convert.ToDecimal(dr["tolal_fee"]); dt.Rows.Add(dr); } alldec = alldec - Convert.ToDecimal(dtt.Rows[i]["tolal_fee"]); } #endregion } else if (sType == "3")//项目分组 { #region 项目分组 string itemid = dtt.Rows[i]["ITEMID"].ToString(); DataRow[] drs = projectGroupMXData.Select("complex_id=" + itemid); if (drs.Length != 0) { for (int j = 0; j < drs.Length; j++) { DataRow dr = dt.NewRow(); for (int k = 0; k < dt.Columns.Count; k++) { dr[k] = dtt.Rows[i][k]; } dr["itemid"] = drs[j]["STD_CODE"]; dr["prestype"] = '4'; if (XcConvert.IsNull(drs[j]["insur_type"], "").ToString().Trim() == "甲") { dr["itemname"] = "★" + drs[j]["Item_name"]; firstFee += Convert.ToDecimal(dr["tolal_fee"]); } else if (XcConvert.IsNull(drs[j]["insur_type"], "").ToString().Trim() == "乙") { dr["itemname"] = "☆" + drs[j]["Item_name"]; secondFee += Convert.ToDecimal(dr["tolal_fee"]); } else { dr["itemname"] = drs[j]["Item_name"]; } dr["packunit"] = drs[j]["item_unit"]; dr["unit"] = drs[j]["item_unit"]; dr["sell_price"] = drs[j]["price"]; dr["amount"] = Convert.ToDecimal(drs[j]["num"]) * Convert.ToDecimal(dr["amount"]); dr["tolal_fee"] = Convert.ToString(Convert.ToDecimal(dr["sell_price"]) * Convert.ToDecimal(dr["amount"])); alldec += Convert.ToDecimal(dr["tolal_fee"]); dt.Rows.Add(dr); } alldec = alldec - Convert.ToDecimal(dtt.Rows[i]["tolal_fee"]); } #endregion } #endregion } } else//药品 { #region 药品 DataRow dr = dt.NewRow(); for (int k = 0; k < dt.Columns.Count; k++) { dr[k] = dtt.Rows[i][k]; } string itemid = dr["ITEMID"].ToString(); DataRow[] drs = drugData.Select("itemid=" + itemid); if (drs.Length != 0) { if (drs[0] != null) { dr["itemid"] = drs[0]["d_code"]; if (HIS.SYSTEM.PubicBaseClasses.XcConvert.IsNull(drs[0]["insur_type"], "").ToString().Trim() == "甲") { dr["itemname"] = "★" + dr["itemname"].ToString(); firstFee += Convert.ToDecimal(dr["tolal_fee"]); } else if (HIS.SYSTEM.PubicBaseClasses.XcConvert.IsNull(drs[0]["insur_type"], "").ToString().Trim() == "乙") { dr["itemname"] = "☆" + dr["itemname"].ToString(); secondFee += Convert.ToDecimal(dr["tolal_fee"]); } } } dt.Rows.Add(dr); #endregion } } return(dt); } catch (Exception err) { throw new Exception(err.Message); } }