コード例 #1
0
 /// <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);
     }
 }
コード例 #2
0
        /// <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);
            }
        }