Ejemplo n.º 1
0
        /// <summary>
        ///   向收费明细表中增加一条记录
        /// </summary>
        /// <param name="item"></param>
        /// <param name="InpatientNO">住院流水号</param>
        /// <param name="DeptCode">科室编码</param>
        /// <param name="ApplyNO">手术申请号</param>
        /// <returns></returns>
        public int Insert(Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList item, string InpatientNO, string DeptCode, string ApplyNO)
        {
            string strSQL = "";

            if (this.Sql.GetSql("Fee.TemporaryFee.Insert", ref strSQL) == -1)
            {
                return(-1);
            }
            try
            {
                string[] strParm = new string[8];             //取参数列表
                strParm[0] = InpatientNO;                     //流水号
                strParm[1] = item.Item.ID;                    //项目编码
                strParm[3] = item.FTRate.ItemRate.ToString(); //比率
                strParm[2] = item.Item.Qty.ToString();        //数量
                strParm[4] = DeptCode;                        //科室
                strParm[5] = ApplyNO;                         //手术申请号
                strParm[6] = this.Operator.ID;                //操作员编码
                strParm[7] = item.Item.Price.ToString();      //价格
                strSQL     = string.Format(strSQL, strParm);  //替换SQL语句中的参数。
            }
            catch (Exception ex)
            {
                this.Err = "付数值时候出错!" + ex.Message;
                this.WriteErr();
                return(-1);
            }
            return(this.ExecNoQuery(strSQL));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 显示费用品信息


        /// </summary>
        /// <returns></returns>
        protected virtual int DisplayDrugDetail(string inpatientNO)
        {
            DateTime  fromDate = Neusoft.FrameWork.Function.NConvert.ToDateTime("1900-01-01");
            DateTime  endDate  = Neusoft.FrameWork.Function.NConvert.ToDateTime(this.InpatientManager.GetSysDateTime());
            ArrayList alDrung  = new ArrayList();

            Neusoft.HISFC.Models.Fee.MedItemList medicineList = new Neusoft.HISFC.Models.Fee.MedItemList();
            //批费
            alDrung = this.InpatientManager.QueryMedItemListsCanQuit(inpatientNO, fromDate, endDate, "1,2", false);
            if (alDrung.Count > 0)
            {
                for (int i = 0; i < alDrung.Count; i++)
                {
                    Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList medcineList = new Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList();
                    medcineList = (Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList)alDrung[i];
                    this.fpDrug_Sheet1.Rows.Add(this.fpDrug_Sheet1.RowCount, 1);

                    this.fpDrug_Sheet1.Cells[i, 0].Value  = medcineList.Item.Name;
                    this.fpDrug_Sheet1.Cells[i, 1].Value  = medcineList.Item.Specs;
                    this.fpDrug_Sheet1.Cells[i, 2].Value  = medcineList.Item.Price;
                    this.fpDrug_Sheet1.Cells[i, 3].Value  = medcineList.Item.PriceUnit;
                    this.fpDrug_Sheet1.Cells[i, 4].Value  = medcineList.Item.Qty;
                    this.fpDrug_Sheet1.Cells[i, 5].Value  = medcineList.FT.TotCost;
                    this.fpDrug_Sheet1.Cells[i, 6].Value  = medcineList.FT.OwnCost;
                    this.fpDrug_Sheet1.Cells[i, 7].Value  = Neusoft.FrameWork.Public.String.FormatNumberReturnString(medcineList.FT.OwnCost / medcineList.FT.TotCost, 2);
                    this.fpDrug_Sheet1.Cells[i, 8].Value  = medcineList.FT.PayCost;
                    this.fpDrug_Sheet1.Cells[i, 9].Value  = Neusoft.FrameWork.Public.String.FormatNumberReturnString(medcineList.FT.PayCost / medcineList.FT.TotCost, 2);
                    this.fpDrug_Sheet1.Cells[i, 10].Value = medcineList.FT.PubCost;
                    this.fpDrug_Sheet1.Cells[i, 11].Value = medcineList.FeeOper.OperTime;
                    this.fpDrug_Sheet1.Rows[i].Tag        = medcineList;
                }
            }

            return(1);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 非药品收费明细


        /// </summary>
        /// <returns></returns>
        protected virtual int DisplayUndrugDetail(string inpatientNO)
        {
            DateTime  fromDate  = Neusoft.FrameWork.Function.NConvert.ToDateTime("1900-01-01");
            DateTime  endDate   = Neusoft.FrameWork.Function.NConvert.ToDateTime(this.InpatientManager.GetSysDateTime());
            ArrayList alUnDrung = new ArrayList();

            alUnDrung = this.InpatientManager.QueryFeeItemListsCanQuit(inpatientNO, fromDate, endDate, false);
            if (alUnDrung.Count > 0)
            {
                for (int i = 0; i < alUnDrung.Count; i++)
                {
                    Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList undrugItem = new Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList();

                    undrugItem = (Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList)alUnDrung[i];
                    this.fpUndrug_Sheet1.AddRows(this.fpUndrug_Sheet1.RowCount, 1);
                    this.fpUndrug_Sheet1.Cells[i, 0].Text   = undrugItem.Item.Name;
                    this.fpUndrug_Sheet1.Cells[i, 1].Value  = undrugItem.Item.Price;
                    this.fpUndrug_Sheet1.Cells[i, 3].Value  = undrugItem.Item.PriceUnit;
                    this.fpUndrug_Sheet1.Cells[i, 2].Value  = undrugItem.Item.Qty;
                    this.fpUndrug_Sheet1.Cells[i, 4].Value  = undrugItem.FT.TotCost;
                    this.fpUndrug_Sheet1.Cells[i, 5].Value  = undrugItem.FT.OwnCost;
                    this.fpUndrug_Sheet1.Cells[i, 6].Value  = Neusoft.FrameWork.Public.String.FormatNumberReturnString(undrugItem.FT.OwnCost / undrugItem.FT.TotCost, 2);
                    this.fpUndrug_Sheet1.Cells[i, 7].Value  = undrugItem.FT.PayCost;
                    this.fpUndrug_Sheet1.Cells[i, 8].Value  = Neusoft.FrameWork.Public.String.FormatNumberReturnString(undrugItem.FT.PayCost / undrugItem.FT.TotCost, 2);
                    this.fpUndrug_Sheet1.Cells[i, 9].Value  = undrugItem.FT.PubCost;
                    this.fpUndrug_Sheet1.Cells[i, 10].Value = undrugItem.FeeOper.OperTime;
                    this.fpUndrug_Sheet1.Rows[i].Tag        = undrugItem;
                }
            }
            return(1);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 住院医技预约
        /// </summary>
        /// <param name="fee">住院收费实体</param>
        /// <returns></returns>
        public int Insert(Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList fee)
        {
            Neusoft.HISFC.Models.Fee.Outpatient.FeeItemList feeItem = new Neusoft.HISFC.Models.Fee.Outpatient.FeeItemList();
            feeItem.ID = fee.ID;                                    //住院流水号

            feeItem.Patient.PID.CardNO = fee.Patient.PID.PatientNO; //住院号

            if (fee.Name == null || fee.Name == "")
            {
                feeItem.Name = fee.Patient.Name;//姓名
            }
            else
            {
                feeItem.Name = fee.Name;                               //姓名
            }
            feeItem.Item.ID   = fee.Item.ID;                           //项目编码
            feeItem.Item.Name = fee.Item.Name;                         //项目名称
            feeItem.Item.Qty  = fee.Item.Qty;                          //项目数量
            feeItem.RecipeNO  = fee.RecipeNO;                          //处方号

            feeItem.SequenceNO = fee.SequenceNO;                       //处方内序号

            feeItem.Order.DoctorDept.Name = fee.Order.DoctorDept.Name; //开单科室

            feeItem.ExecOper.Dept.ID    = fee.Order.ExecOper.Dept.ID;  //执行科室
            feeItem.ExecOper.Dept.Name  = fee.ExecOper.Dept.Name;      //执行科室
            feeItem.Order.DoctorDept.ID = fee.Order.DoctorDept.ID;     //操作科室
            feeItem.Order.ID            = fee.Order.ID;                //医嘱流水号

            this.SetDB(serviceTerminal);
            return(Insert(feeItem));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 查询 根据住院流水号 ,科室  查询暂存的数据
        /// </summary>
        /// <param name="InpatientNO">住院流水号</param>
        /// <param name="DeptCode">科室 </param>
        /// <returns></returns>
        public ArrayList Query(string InpatientNO, string DeptCode)
        {
            ArrayList list   = new  ArrayList();
            string    strSQL = "";

            if (this.Sql.GetSql("Fee.TemporaryFee.Query.2", ref strSQL) == -1)
            {
                return(null);
            }
            try
            {
                strSQL = string.Format(strSQL, InpatientNO, DeptCode);                //替换SQL语句中的参数。

                this.ExecQuery(strSQL);
                while (this.Reader.Read())
                {
                    Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList obj = new Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList();
                    obj.Item.ID         = this.Reader[1].ToString();                                           //项目编码
                    obj.Item.Qty        = Neusoft.FrameWork.Function.NConvert.ToDecimal(Reader[2].ToString()); //数量
                    obj.FTRate.ItemRate = Neusoft.FrameWork.Function.NConvert.ToDecimal(Reader[3].ToString()); //比率
                    obj.Item.Price      = Neusoft.FrameWork.Function.NConvert.ToDecimal(Reader[8].ToString()); //价格
                    list.Add(obj);
                }
                this.Reader.Close();
                return(list);
            }
            catch (Exception ex)
            {
                this.Err = ex.Message;
                return(null);
            }
        }
Ejemplo n.º 6
0
 public List <Neusoft.HISFC.Models.FeeStuff.Output> QueryOutput(Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList feeItemList)
 {
     if (this.CreatInstance() < 0)
     {
         return(new List <Neusoft.HISFC.Models.FeeStuff.Output>());
     }
     return(this.matFeeAchieve.QueryOutput(feeItemList));
 }
Ejemplo n.º 7
0
 /// <summary>
 /// 获取出库记录
 /// </summary>
 /// <param name="feeItemList">收费项目</param>
 /// <returns>出库记录列表</returns>
 public List <Neusoft.HISFC.Models.FeeStuff.Output> QueryOutput(Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList feeItemList)
 {
     if (feeItemList.Item.ItemType != EnumItemType.Drug)
     {
         if (!string.IsNullOrEmpty(feeItemList.UpdateSequence.ToString()) && feeItemList.UpdateSequence != 0)
         {
             return(QueryOutput(feeItemList.UpdateSequence.ToString()));
         }
     }
     return(null);
 }
Ejemplo n.º 8
0
        public int GetFeeItemList(string path, string tablename, ref Neusoft.HISFC.Models.RADT.PatientInfo p, ref ArrayList al)
        {
            //string path = filePath.Substring(0, filePath.LastIndexOf(@"\") + 1);
            //string tablename = filePath.Substring(filePath.LastIndexOf(@"\") + 1, filePath.Length - filePath.LastIndexOf(@"\") - 1);

            string connect = @"Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277; Dbq=" + path;

            System.Data.Odbc.OdbcConnection myconn = new System.Data.Odbc.OdbcConnection(connect);

            string sql = "select GRSHBZH,ZYH,XMXH,XMBH,XMMC,FLDM,YPGG,YPJX,JG,MCYL,JE,ZFBL,ZFJE,CZFBZ,BZ1,BZ2,BZ3 from " + tablename;

            System.Data.Odbc.OdbcCommand cmd = new System.Data.Odbc.OdbcCommand(sql, myconn);

            System.Data.Odbc.OdbcDataReader cmReader;

            try
            {
                myconn.Open();
                cmReader = cmd.ExecuteReader();
            }
            catch
            {
                return(-1);
            }
            Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList f = null;
            while (cmReader.Read())
            {
                f                    = new Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList();
                p.IDCard             = cmReader[0].ToString();
                p.PID.PatientNO      = cmReader[1].ToString();
                f                    = new Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList();
                f.Item.User02        = cmReader[2].ToString();
                f.Item.UserCode      = cmReader[3].ToString();
                f.Item.Name          = cmReader[4].ToString();
                f.Item.SysClass.Name = cmReader[5].ToString();
                f.Item.Specs         = cmReader[6].ToString();
                f.Item.User01        = cmReader[7].ToString();
                f.Item.Price         = Neusoft.FrameWork.Function.NConvert.ToDecimal(cmReader[8]);
                f.NoBackQty          = Neusoft.FrameWork.Function.NConvert.ToDecimal(cmReader[9]);
                f.FT.OwnCost         = Neusoft.FrameWork.Function.NConvert.ToDecimal(cmReader[10]);
                al.Add(f);
            }
            cmReader.Close();
            cmd.Dispose();
            myconn.Close();
            return(1);
        }
Ejemplo n.º 9
0
        /// <summary>
        ///  根据读入标志 查询已传递的项目列表
        /// </summary>
        /// <param name="regNo">患者就医登记号</param>
        /// <param name="flag">0 未读入 1 读入 2 错误</param>
        /// <returns>Fee.Inpatient.FeeItemList实体集合</returns>
        public ArrayList GetUnValidItemList(string regNo, int flag)
        {
            string sql = "select * from his_cfxm where JYDJH = '" + regNo + "' and DRBZ = " + flag.ToString();

            if (this.ExecQuery(sql) == -1)
            {
                return(null);
            }

            while (Reader.Read())
            {
                Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList obj = new Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList();
            }
            Reader.Close();

            return(null);
        }
        private int AddDetailToFp(Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail tecDetail)
        {
            //可以一次取消多条 by yuyun 08-8-12 {58B76F7C-A35D-4cbb-8948-8163EA3C5191}
            int rowCount = this.fpSpread1_Sheet1.RowCount;

            this.fpSpread1_Sheet1.Rows.Add(rowCount, 1);

            #region addby xuewj 2010-10-3 增加单价、合计 {AB2D96F8-2CB3-49d2-9445-CCFDA1FFFCE7}
            Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList itemList = this.feeManager.GetItemListByRecipeNO(tecDetail.Apply.Item.RecipeNO, tecDetail.Apply.Item.SequenceNO, Neusoft.HISFC.Models.Base.EnumItemType.UnDrug);
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.UnitPrice].Value = itemList.Item.Price;
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.TotCost].Value   = itemList.FT.TotCost;
            #endregion

            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.MoOrder].Text     = tecDetail.MoOrder;
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.ExecMoOrder].Text = tecDetail.ExecMoOrder;
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.ApplyNum].Text    = tecDetail.Sequence;
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.ItemID].Text      = tecDetail.Apply.Item.ID;
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.ItemName].Text    = tecDetail.Apply.Item.Name;
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.ConfirmQty].Text  = tecDetail.Apply.Item.ConfirmedQty.ToString();
            #region addby xuewj 2010-10-3 待取消确认列表确认科室、确认人显示名称  {878C1070-41E9-4558-A4D7-E823D044F9EE}
            //this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.OperCode].Text = tecDetail.Apply.Item.ConfirmOper.ID;
            //this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.OperDept].Text = tecDetail.Apply.ConfirmOperEnvironment.Dept.ID;
            Neusoft.HISFC.Models.Base.Employee tmpEmp = this.deptManager.GetEmployeeInfo(tecDetail.Apply.Item.ConfirmOper.ID);
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.OperCode].Tag  = tmpEmp.ID;
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.OperCode].Text = tmpEmp.Name;
            Neusoft.HISFC.Models.Base.Department tmpDept = this.deptManager.GetDepartment(tecDetail.Apply.ConfirmOperEnvironment.Dept.ID);//确认科室
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.OperDept].Tag  = tmpDept.ID;
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.OperDept].Text = tmpDept.Name;
            #endregion
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.OperTime].Text   = tecDetail.Apply.ConfirmOperEnvironment.OperTime.ToString();
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.RecipeNo].Text   = tecDetail.Apply.Item.RecipeNO;
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.SequenceNo].Text = tecDetail.Apply.Item.SequenceNO.ToString();
            //by yuyun 08-7-7
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.Operator].Text = tecDetail.Oper.ID;    //技师:默认是当前操作员,可以修改
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.Machine].Text  = tecDetail.ExecDevice; //项目使用设备:从医技载体表进行查找
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.MoOrder].Tag   = tecDetail;
            this.fpSpread1_Sheet1.Rows[rowCount].Tag = tecDetail;
            //------------{58B76F7C-A35D-4cbb-8948-8163EA3C5191}

            return(1);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 更新上传标志
        /// </summary>
        /// <param name="f">费用实体类</param>
        /// <returns></returns>
        public int updateUploadFlagInpatient(Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList f, string transType)
        {
            string strSql = "";

            if (this.Sql.GetSql("Fee.Interface.UpdateItemList.AnShan.Update.1", ref strSql) == -1)
            {
                this.Err = "获得[Fee.Interface.UpdateItemList.AnShan.Update.1]对应sql语句出错";
                return(-1);
            }
            try
            {
                strSql = string.Format(strSql, f.RecipeNO, f.SequenceNO, transType);
            }
            catch (Exception ex)
            {
                this.ErrCode = ex.Message;
                this.Err     = ex.Message;
                return(-1);
            }

            return(this.ExecNoQuery(strSql));
        }
        /// <summary>
        /// 从对照表中查找维护适应症的项目
        /// </summary>
        /// <param name="patientObj"></param>
        /// <param name="feeitemlist"></param>
        /// <param name="practicableSymptomText">适应症文本</param>
        /// <returns> -1 报错 0 没有维护 1 有维护</returns>
        private int QueryItem(Neusoft.HISFC.Models.RADT.PatientInfo patientObj, Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList feeitemlist, ref string practicableSymptomText)
        {
            Neusoft.HISFC.BizLogic.Fee.Interface     myInterface = new Neusoft.HISFC.BizLogic.Fee.Interface();
            Neusoft.HISFC.Models.SIInterface.Compare myCompare   = new Neusoft.HISFC.Models.SIInterface.Compare();

            if (patientObj != null || patientObj.ID != "")
            {
                myInterface.GetCompareSingleItem(patientObj.Pact.ID, feeitemlist.Item.ID, ref myCompare);
                if (myCompare.Ispracticablesymptom)
                {
                    practicableSymptomText = myCompare.Practicablesymptomdepiction;
                    return(1);
                }
                else
                {
                    return(0);
                }
            }
            if (feeitemlist.Item.Memo != "1")
            {
                //从维护表中对照项目
            }
            return(0);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 插入单条医嘱明细
        /// </summary>
        /// <param name="pInfo">住院患者基本信息,包括医保基本信息</param>
        /// <param name="obj">费用明细信息</param>
        /// <returns></returns>
        public int InsertItemList(Neusoft.HISFC.Models.RADT.PatientInfo pInfo, Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList obj)
        {
            string sqlMaxNo = "select isnull(max(XMXH), 0) from his_cfxm where JYDJH = " + "'" + pInfo.SIMainInfo.RegNo + "'";
            int    i        = 1;

            if (this.ExecQuery(sqlMaxNo) == -1)
            {
                return(-1);
            }

            while (Reader.Read())
            {
                i = Neusoft.FrameWork.Function.NConvert.ToInt32(Reader[0].ToString());
            }

            Reader.Close();

            i++;

            //if(obj.Item.IsPharmacy)
            if (obj.Item.ItemType == Neusoft.HISFC.Models.Base.EnumItemType.Drug)
            {
                #region delete by maokb
//				try
//				{
//                    //将药品编码转换成自定义码
//					Neusoft.HISFC.Models.Pharmacy.Item drugItem = new Neusoft.HISFC.Models.Pharmacy.Item();
//					Neusoft.HISFC.Management.Pharmacy.Item iMgr = new Neusoft.HISFC.Management.Pharmacy.Item();
//					obj.Item = (Neusoft.HISFC.Models.Pharmacy.Item)obj.Item;
//					drugItem = iMgr.GetItem(obj.Item.ID);
//					obj.Item.ID = drugItem.UserCode;
//				}
//				catch
//				{
//					this.Err = "获取药品自定义码出错!";
//					return -1;
//				}
//			}
//			else
//			{
//				try
//				{
//					//将非药品编码转换成自定义码
//					Neusoft.HISFC.Models.Fee.Item.Undrug item = new Neusoft.HISFC.Models.Fee.Item.Undrug();
//					Neusoft.HISFC.BizLogic.Fee.Item.Undrug itemMgr= new Neusoft.HISFC.BizLogic.Fee.Item.Undrug();
//					item = itemMgr.GetItem(obj.Item.ID);
//					obj.Item.ID = item.UserCode;
//				}
//				catch
//				{
//					this.Err = "获取非药品自定义码出错!";
//					return -1;
//				}
                #endregion
                obj.Item = (Neusoft.HISFC.Models.Pharmacy.Item)obj.Item;
            }

            //数据合法性判断主要针对数字型

            string sql = "insert into his_cfxm values('" + pInfo.SIMainInfo.RegNo + "','" +
                         pInfo.SIMainInfo.HosNo + "','" +
                         pInfo.IDCard + "','" +
                         pInfo.PID.PatientNO + "','" +
                         pInfo.PVisit.InTime.ToString() + "','" +
                         obj.FeeOper.OperTime.ToString() + "'," +
                         i.ToString() + ",'" +
                         obj.Item.ID + "','" +
                         obj.Item.Name + "'," +
                         "0" + ",'" +
                         obj.Item.Specs + "','" +
                         "" + "'," +
                         (obj.Item.Price * obj.FTRate.OwnRate).ToString() + "," +
                         obj.Item.Qty.ToString() + "," +
                         obj.FT.TotCost.ToString() + ",'" +
                         "" + "','" + "" + "','" + "" + "'," + "0" + ",'" + "" + "')";
            if (this.ExecNoQuery(sql) == -1)
            {
                return(-1);
            }

            return(0);
        }
Ejemplo n.º 14
0
 public int ModifyUploadedFeeDetailInpatient(Neusoft.HISFC.Models.RADT.PatientInfo patient, Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList f)
 {
     throw new Exception("The method or operation is not implemented.");
 }
        /// <summary>
        /// 审核完毕进行保存
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="neuObject"></param>
        /// <returns></returns>
        protected override int OnSave(object sender, object neuObject)
        {
            //判断是否存在没有自付比例的项目
            string itemName = "";

            for (int i = 0; i < this.fpMedicine_Sheet1.Rows.Count; i++)
            {
                if (string.IsNullOrEmpty(this.fpMedicine_Sheet1.Cells[i, 1].Text.Trim()) || this.fpMedicine_Sheet1.Cells[i, 0].Value.ToString() != "True")
                {
                    itemName += this.fpMedicine_Sheet1.Cells[i, 3].Text + "\n";
                }
            }

            for (int i = 0; i < this.fpItem_Sheet1.Rows.Count; i++)
            {
                if (string.IsNullOrEmpty(this.fpItem_Sheet1.Cells[i, 1].Text.Trim()) || this.fpItem_Sheet1.Cells[i, 0].Value.ToString() != "True")
                {
                    itemName += this.fpItem_Sheet1.Cells[i, 3].Text + "\n";
                }
            }

            if (!string.IsNullOrEmpty(itemName))
            {
                if (MessageBox.Show("存在未审核或是未对照的项目信息,如下:\n" + itemName + "\n是否继续??", "提示", MessageBoxButtons.YesNo) == DialogResult.No)
                {
                    return(-1);
                }
            }

            Neusoft.FrameWork.Management.PublicTrans.BeginTransaction();
            this.localManager.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);
            for (int i = 0; i < this.fpMedicine_Sheet1.Rows.Count; i++)
            {
                Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList item = this.fpMedicine_Sheet1.Rows[i].Tag as Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList;

                if (this.fpMedicine_Sheet1.Cells[i, 0].Value.ToString() == "True")
                {
                    item.Item.SpecialFlag3 = "1";
                }


                if (this.localManager.UpdateInpatientMedicineListCheckedInfo(this.patientInfo.ID, item.Item.SpecialFlag1, item) == -1)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();

                    MessageBox.Show("提交医保患者的药品审核信息失败 \n" + this.localManager.Err);

                    return(-1);
                }
            }

            for (int i = 0; i < this.fpItem_Sheet1.Rows.Count; i++)
            {
                Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList item = this.fpItem_Sheet1.Rows[i].Tag as Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList;

                if (this.fpItem_Sheet1.Cells[i, 0].Value.ToString() == "True")
                {
                    item.Item.SpecialFlag3 = "1";
                }

                if (this.localManager.UpdateInpatientItemListCheckedInfo(this.patientInfo.ID, item.Item.SpecialFlag1, item) == -1)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();

                    MessageBox.Show("提交医保患者的非药品审核信息失败 \n" + this.localManager.Err);

                    return(-1);
                }
            }

            Neusoft.FrameWork.Models.NeuObject obj = new Neusoft.FrameWork.Models.NeuObject();
            obj.Name = Neusoft.FrameWork.Management.Connection.Operator.Name;
            obj.Memo = System.DateTime.Now.ToString();

            //更改审核信息
            //if (localManager.UpdateSIpatientCheckInfo(patientInfo.ID, obj.Name, obj.Memo) < 0)
            //{
            //    MessageBox.Show("保存审核人员信息失败!"+localManager.Err);
            //    return -1;
            //}

            Neusoft.FrameWork.Management.PublicTrans.Commit();

            MessageBox.Show("审核成功");

            return(1);
        }
        /// <summary>
        /// 药品信息表格双击
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void fpMedicine_CellDoubleClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e)
        {
            ArrayList rateList = new ArrayList();

            int index = this.fpMedicine_Sheet1.ActiveRowIndex;

            if (index < 0)
            {
                return;
            }
            else
            {
                Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList item = this.fpMedicine_Sheet1.ActiveRow.Tag as Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList;
                rateList = this.localManager.QueryComparedItemCenterRate("2", item.Item.ID);
                if (rateList == null)
                {
                    MessageBox.Show("获取项目【" + item.Item.Name + "】的对照信息的中心自付比例失败 " + this.localManager.Err);
                    return;
                }
                else if (rateList.Count == 0)
                {
                    MessageBox.Show("项目【" + item.Item.Name + "】没有进行对照或是目录外的项目 " + this.localManager.Err);
                    return;
                }
                else
                {
                    frmSelectItemOwnRate frmRate = new frmSelectItemOwnRate();

                    frmRate.RateList = rateList;

                    frmRate.ShowDialog();

                    if (frmRate.DialogResult == DialogResult.OK)
                    {
                        if (frmRate.IsCheckAll)
                        {
                            for (int i = 0; i < this.fpMedicine_Sheet1.RowCount; i++)
                            {
                                Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList fee = this.fpMedicine_Sheet1.Rows[i].Tag as Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList;

                                if (fee.Item.ID == item.Item.ID)
                                {
                                    fee.Item.SpecialFlag3 = "1";
                                    fee.Item.SpecialFlag2 = frmRate.RateMemmo.ToString();
                                    if (!string.IsNullOrEmpty(frmRate.RateMemmo.ToString()))
                                    {
                                        fee.Item.SpecialFlag1 = frmRate.Rate.ToString();

                                        this.fpMedicine_Sheet1.Cells[i, 0].Value = true;
                                        this.fpMedicine_Sheet1.Rows[i].ForeColor = Color.Black;
                                        this.fpMedicine_Sheet1.Cells[i, 1].Text  = frmRate.Rate.ToString();
                                        this.fpMedicine_Sheet1.Cells[i, 2].Text  = frmRate.RateMemmo.ToString();
                                    }
                                    else
                                    {
                                        fee.Item.SpecialFlag1 = "";

                                        this.fpMedicine_Sheet1.Cells[i, 0].Value = true;
                                        this.fpMedicine_Sheet1.Rows[i].ForeColor = Color.Black;
                                        this.fpMedicine_Sheet1.Cells[i, 1].Text  = fee.Item.SpecialFlag1;
                                        this.fpMedicine_Sheet1.Cells[i, 2].Text  = frmRate.RateMemmo.ToString();
                                    }

                                    this.fpMedicine_Sheet1.Rows[i].Tag = fee;
                                }
                            }
                        }
                        else
                        {
                            item.Item.SpecialFlag3 = "1";
                            item.Item.SpecialFlag2 = frmRate.RateMemmo.ToString();
                            if (!string.IsNullOrEmpty(frmRate.RateMemmo.ToString()))
                            {
                                item.Item.SpecialFlag1 = frmRate.Rate.ToString();

                                this.fpMedicine_Sheet1.Cells[index, 0].Value = true;
                                this.fpMedicine_Sheet1.Rows[index].ForeColor = Color.Black;
                                this.fpMedicine_Sheet1.Cells[index, 1].Text  = frmRate.Rate.ToString();
                                this.fpMedicine_Sheet1.Cells[index, 2].Text  = frmRate.RateMemmo.ToString();
                            }
                            else
                            {
                                item.Item.SpecialFlag1 = "";

                                this.fpMedicine_Sheet1.Cells[index, 0].Value = true;
                                this.fpMedicine_Sheet1.Rows[index].ForeColor = Color.Black;
                                this.fpMedicine_Sheet1.Cells[index, 1].Text  = item.Item.SpecialFlag1;
                                this.fpMedicine_Sheet1.Cells[index, 2].Text  = frmRate.RateMemmo.ToString();
                            }

                            this.fpMedicine_Sheet1.Rows[index].Tag = item;
                        }
                    }
                }
            }
        }
Ejemplo n.º 17
0
        public int RecomputeFeeItemListInpatient(Neusoft.HISFC.Models.RADT.PatientInfo patient, Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList f)
        {
            //Neusoft.HISFC.Models.Base.PactItemRate pRate = null;

            //if (this.trans != null)
            //{
            //    this.pactItemRate.SetTrans(this.trans);
            //    this.pactInfoManager.SetTrans(this.trans);
            //}

            //pRate = this.pactItemRate.GetOnepPactUnitItemRateByItem(patient.Pact.ID, f.Item.ID);
            //if (pRate == null)
            //{
            //    pRate = this.pactItemRate.GetOnePaceUnitItemRateByFeeCode(patient.Pact.ID, f.Item.MinFee.ID);
            //    if (pRate == null)
            //    {
            //        Neusoft.HISFC.Models.Base.PactInfo p = this.pactInfoManager.GetPactUnitInfoByPactCode(patient.Pact.ID);
            //        if (p == null)
            //        {
            //            this.errMsg = this.pactInfoManager.Err;

            //            return -1;
            //        }

            //        pRate = new Neusoft.HISFC.Models.Base.PactItemRate();

            //        pRate.Rate = p.Rate;
            //    }
            //}

            //decimal pubCost = 0;


            //f.FT.OwnCost = Neusoft.FrameWork.Public.String.FormatNumber(f.FT.TotCost * pRate.Rate.OwnRate, 2);

            //pubCost = f.FT.TotCost - f.FT.OwnCost;

            //f.FT.PayCost = Neusoft.FrameWork.Public.String.FormatNumber(pubCost * pRate.Rate.PayRate, 2);

            //f.FT.PubCost = pubCost - f.FT.PayCost;

            Neusoft.HISFC.Models.SIInterface.Compare compareObj = new Neusoft.HISFC.Models.SIInterface.Compare();
            int resultValue = interfaceManager.GetCompareSingleItem(comparePactCode, f.Item.ID, ref compareObj);

            if (resultValue == -1)
            {
                this.errMsg = "查询对照项目信息失败!" + interfaceManager.Err;
                return(-1);
            }
            if (resultValue == -2)
            {
                f.FT.OwnCost = f.FT.TotCost;
                f.FT.PubCost = 0;
                f.FT.PayCost = 0;
            }
            else
            {
                decimal payRate = compareObj.CenterItem.Rate;
                if (payRate == 1)
                {
                    f.FT.OwnCost = f.FT.TotCost;
                    f.FT.PubCost = 0;
                    f.FT.PayCost = 0;
                }
                else
                {
                    decimal pubPrice = f.Item.Price * (1 - compareObj.CenterItem.Rate);
                    if (pubPrice > compareObj.CenterItem.Price)
                    {
                        pubPrice = compareObj.CenterItem.Price;
                    }
                    if (f.Item.ItemType == Neusoft.HISFC.Models.Base.EnumItemType.Drug)
                    {
                        f.FT.PubCost = Neusoft.FrameWork.Public.String.FormatNumber(pubPrice * f.Item.Qty / f.Item.PackQty, 2);
                    }

                    f.FT.OwnCost = f.FT.TotCost - f.FT.PubCost;
                    f.FT.PayCost = 0m;
                }
            }


            return(1);
        }
Ejemplo n.º 18
0
 public int UploadFeeDetailInpatient(Neusoft.HISFC.Models.RADT.PatientInfo patient, Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList f)
 {
     return(1);
 }
        /// <summary>
        /// 单条处理(嵌入在选择项目中)
        /// </summary>
        /// <param name="patientObj"></param>
        /// <param name="inpatientDetail"></param>
        /// <returns></returns>
        public int ProcessInpatientFeeDetail(Neusoft.HISFC.Models.RADT.PatientInfo patientObj, ref Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList inpatientDetail)
        {
            string practicableSymptomText = "";
            int    returnValue            = this.QueryItem(patientObj, inpatientDetail, ref practicableSymptomText);

            switch (returnValue)
            {
            case 0:     //没有维护
            {
                //不处理

                break;
            }

            case 1:     //有维护
            {
                DialogResult d = System.Windows.Forms.MessageBox.Show("该项目在适应症中有维护:\n" + practicableSymptomText + "\n" + "是否选择按照适应症收费", "提示", MessageBoxButtons.YesNoCancel);
                if (d == DialogResult.Cancel)
                {
                    return(1);
                }
                else if (d == DialogResult.Yes)
                {
                    //是否适应症置为1 借用inpatientDetail.Item.Memo
                    inpatientDetail.Item.Memo = "1";
                    return(1);
                }
                else
                {
                    inpatientDetail.Item.Memo = "0";
                    //不处理
                }

                break;
            }

            case -1:     //出错
            {
                break;
            }

            default:
                break;
            }
            return(1);
        }
Ejemplo n.º 20
0
        ///// <summary>
        ///// 初始化事件


        ///// </summary>
        ///// <param name="sender"></param>
        ///// <param name="neuObject"></param>
        ///// <param name="param"></param>
        ///// <returns></returns>
        //protected override Neusoft.FrameWork.WinForms.Forms.ToolBarService OnInit(object sender, object neuObject, object param)
        //{
        //    if (this.DesignMode)
        //    {
        //        return null;
        //    }
        //    if (this.isQueryForm)
        //    {
        //        this.neuButtonOK.Visible = false;
        //    }
        //    else
        //    {
        //        this.neuButtonOK.Visible = true;
        //    }

        //    return null;
        //}



        #endregion

        #region 取消终端确认
        private void CancelConfirm()
        {
            if (this.neuSpreadItemDetail_SheetItemDetail.RowCount == 0)
            {
                return;
            }
            if (MessageBox.Show("是否取消该次确认", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
            {
                return;
            }

            if (this.neuSpreadItemDetail_SheetItemDetail.Rows[this.neuSpreadItemDetail_SheetItemDetail.ActiveRowIndex].Tag == null)
            {
                MessageBox.Show("获取终端确认明细出错");
                return;
            }

            Neusoft.FrameWork.Management.PublicTrans.BeginTransaction();

            Neusoft.HISFC.BizLogic.Terminal.TerminalConfirm terminalConfim = new Neusoft.HISFC.BizLogic.Terminal.TerminalConfirm();
            Neusoft.HISFC.BizProcess.Integrate.PhysicalExamination.ExamiManager examiMgr = new Neusoft.HISFC.BizProcess.Integrate.PhysicalExamination.ExamiManager();
            Neusoft.HISFC.BizProcess.Integrate.Fee  feeMgr           = new Neusoft.HISFC.BizProcess.Integrate.Fee();
            Neusoft.HISFC.BizProcess.Integrate.RADT serviceInpatient = new Neusoft.HISFC.BizProcess.Integrate.RADT();

            //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(terminalConfim.Connection);
            //t.BeginTransaction();
            //terminalConfim.SetTrans(t.Trans);
            //examiMgr.SetTrans(t.Trans);
            //feeMgr.SetTrans(t.Trans);
            //serviceInpatient.SetTrans(t.Trans);

            Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail detail = (Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail) this.neuSpreadItemDetail_SheetItemDetail.Rows[this.neuSpreadItemDetail_SheetItemDetail.ActiveRowIndex].Tag;
            Neusoft.HISFC.Models.Terminal.TerminalApply         apply  = terminalConfim.GetItemListBySequence(detail.Apply.Order.ID, detail.Apply.ID);

            Neusoft.HISFC.Models.Base.Employee employee = (Neusoft.HISFC.Models.Base.Employee)terminalConfim.Operator;
            if (detail.OperInfo.ID != terminalConfim.Operator.ID)
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                MessageBox.Show("只能取消自己做过的终端确认");
                return;
            }
            if (detail == null)
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                MessageBox.Show("获取终端确认明细出错");
                return;
            }
            int BackQty = Neusoft.FrameWork.Function.NConvert.ToInt32(detail.Apply.Item.ConfirmedQty);

            if (terminalConfim.UpdateConfirmDetail(detail.Sequence, "1") <= 0)
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                MessageBox.Show("作废终端确认明细表出错" + terminalConfim.Err);
                return;
            }
            if (terminalConfim.UpdateTerminalConfirmByMoOrder(detail.Apply.Order.ID, BackQty) <= 0)
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                MessageBox.Show("更新终端确认主表失败" + terminalConfim.Err);
                return;
            }
            string confirmFlag = "1";

            if (apply.AlreadyConfirmCount - BackQty == 0)
            {
                confirmFlag = "0";
            }
            if (apply.PatientType != "5" && (apply.PatientType == "1" || apply.PatientType == "4"))
            {
                if (terminalConfim.UpdateFeeConfirmQty(detail.Apply.Order.ID, confirmFlag, -BackQty) <= 0)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    MessageBox.Show("更新费用表失败" + terminalConfim.Err);
                    return;
                }
                #region 扣门诊账户


                if (detail.Apply.SpecalFlag == "1")
                {   //退费用到门诊账户 ,目前门诊账户项目不能分开多次确认
                    decimal totCost = decimal.Round(apply.Item.Item.Price * apply.Item.Item.Qty, 2);
                    if (feeMgr.AccountCancelPay(apply.Patient, totCost, "终端退费", employee.Dept.ID, "") < 0)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        MessageBox.Show("退门诊账户失败 :" + feeMgr.Err);
                        return;
                    }
                    #region 更新费用表


                    if (feeMgr.UpdateAccountByMoOrderAndItemCode(apply.Item.Item.ID, apply.Order.ID, false) <= 0)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        MessageBox.Show("门诊收费表扣费标志失败 :" + feeMgr.Err);
                        return;
                    }
                    #endregion

                    #region 更新执行标志到划价状态


                    if (terminalConfim.UpdateConfirmSendFlag(detail.Apply.Order.ID, detail.Apply.Item.Item.ID, "0") <= 0)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        MessageBox.Show("更新终端确认表执行标志失败 :" + terminalConfim.Err);
                        return;
                    }
                    #endregion
                }
                #endregion
            }
            if (apply.PatientType == "4" || apply.PatientType == "5")
            {
                //体检中心的可退数量
                int NoBackQty = Neusoft.FrameWork.Function.NConvert.ToInt32(apply.Item.Item.Qty - apply.Item.ConfirmedQty + BackQty);
                if (examiMgr.UpdateConfirmInfo(detail.Apply.Order.ID, confirmFlag, NoBackQty) <= 0)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    MessageBox.Show("更新体检表失败:" + examiMgr.Err);
                    return;
                }
            }
            if (apply.PatientType == "2" && detail.Apply.SpecalFlag == "2") //回退住院费用
            {
                #region 构建住院患者实体


                Neusoft.HISFC.Models.RADT.PatientInfo patientInfo = serviceInpatient.QueryPatientInfoByInpatientNO(apply.Patient.PID.ID);
                if (patientInfo == null)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    MessageBox.Show("获取住院患者信息失败:" + serviceInpatient.Err);
                    return;
                }
                #endregion

                #region 构建住院费用实体
                Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList feeItemList   = new Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList();
                Neusoft.HISFC.Models.Terminal.TerminalApply    terminalApply = apply.Clone();
                feeItemList.Item           = terminalApply.Item.Item.Clone();
                feeItemList.Item.PriceUnit = terminalApply.Item.Item.PriceUnit;//计价单位
                if (terminalApply.Item.Order.DoctorDept.ID == null || terminalApply.Item.Order.DoctorDept.ID == "")
                {
                    feeItemList.RecipeOper.Dept = employee.Dept;
                }
                else
                {
                    feeItemList.RecipeOper.Dept = terminalApply.Item.Order.DoctorDept;
                }
                if (terminalApply.Item.Order.Doctor.ID == null || terminalApply.Item.Order.Doctor.ID == "")
                {
                    feeItemList.RecipeOper.ID   = employee.ID;
                    feeItemList.RecipeOper.Name = employee.Name;
                    feeItemList.ChargeOper.ID   = employee.ID;
                    feeItemList.ChargeOper.Name = employee.Name;
                    feeItemList.ChargeOper.Dept = employee.Dept;
                }
                else
                {
                    feeItemList.RecipeOper.ID   = terminalApply.Item.Order.Doctor.ID;
                    feeItemList.RecipeOper.Name = terminalApply.Item.Order.Doctor.Name;
                    feeItemList.ChargeOper.ID   = terminalApply.Item.Order.Doctor.ID;
                    feeItemList.ChargeOper.Name = terminalApply.Item.Order.Doctor.Name;
                }
                feeItemList.ExecOper.ID    = employee.ID;
                feeItemList.ExecOper.Name  = employee.Name;
                feeItemList.ExecOper.Dept  = employee.Dept;
                feeItemList.StockOper.Dept = employee.Dept;//药品的扣库存的科室


                feeItemList.Item.PackQty = terminalApply.Item.Item.PackQty;
                feeItemList.Item.Qty     = terminalApply.Item.Item.Price;
                feeItemList.Item.Qty     = terminalApply.Item.Item.Qty;

                if (feeItemList.Item.PackQty == 0)
                {
                    feeItemList.Item.PackQty = 1;
                }
                feeItemList.FT.TotCost     = Neusoft.FrameWork.Public.String.FormatNumber((feeItemList.Item.Price * feeItemList.Item.Qty / feeItemList.Item.PackQty), 2);
                feeItemList.FT.OwnCost     = feeItemList.FT.TotCost;
                feeItemList.IsBaby         = patientInfo.IsBaby;
                feeItemList.IsEmergency    = false;
                feeItemList.Order          = new Neusoft.HISFC.Models.Order.Inpatient.Order();
                feeItemList.ExecOrder.ID   = terminalApply.Item.Order.ID;
                feeItemList.NoBackQty      = 0;
                feeItemList.FTRate.OwnRate = 1;
                feeItemList.BalanceState   = "0";
                feeItemList.FeeOper.ID     = employee.ID;
                feeItemList.FeeOper.Name   = employee.Name;
                feeItemList.FeeOper.Dept   = employee.Dept;
                feeItemList.TransType      = TransTypes.Positive;
                #endregion

                if (feeMgr.QuitItem(patientInfo, feeItemList) <= 0)
                {
                    MessageBox.Show("退住院费用失败" + feeMgr.Err);
                    return;
                }
            }
            Neusoft.FrameWork.Management.PublicTrans.Commit();

            this.neuSpreadItemDetail_SheetItemDetail.Rows.Remove(this.neuSpreadItemDetail_SheetItemDetail.ActiveRowIndex, 1);
            #region  修改界面上的数量
            for (int i = 0; i < this.neuSpreadItem_SheetItem.RowCount; i++)
            {
                Neusoft.HISFC.Models.Terminal.TerminalApply obj = (Neusoft.HISFC.Models.Terminal.TerminalApply) this.neuSpreadItem_SheetItem.Rows[i].Tag;
                if (obj.Order.ID == detail.Apply.Order.ID)
                {
                    int freeQty = Neusoft.FrameWork.Function.NConvert.ToInt32(detail.Apply.Item.ConfirmedQty) + Neusoft.FrameWork.Function.NConvert.ToInt32(neuSpreadItem_SheetItem.Cells[i, (int)ApplyField.FreeQty].Text);
                    this.neuSpreadItem_SheetItem.Cells[i, (int)ApplyField.FreeQty].Text = freeQty.ToString();
                    break;
                }
            }
            #endregion
            MessageBox.Show("取消成功");
        }
        /// <summary>
        /// 添加数据到表格
        /// </summary>
        /// <param name="al"></param>
        protected virtual void AddDataToFp(ArrayList al)
        {
            #region 处理组套项目{5C2A9C83-D165-434c-ACA4-86F23E956442}
            List <string> combIDList = new List <string>();
            #endregion

            this.neuSpread1_Sheet1.RowCount = 0;
            #region 回车后不清空待取消列表 addby  xuewj 2010-10-3 {375AA101-22FF-4344-A460-44881766CEA1}
            this.fpSpread1_Sheet1.RowCount = 0;
            #endregion
            if (al != null && al.Count > 0)
            {
                foreach (Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail confirmDetail in al)
                {
                    //{23016A93-22CE-4fe6-9CF4-1F9E90B3DD08}
                    if (this.seeAll)
                    {
                        if (this.IsExist(confirmDetail)) //不存在,继续
                        {
                            continue;
                        }
                    }

                    #region 处理组套项目{5C2A9C83-D165-434c-ACA4-86F23E956442}
                    int  rowIndex = 0;
                    bool isComb   = false;
                    Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList itemList = this.feeManager.GetItemListByRecipeNO(confirmDetail.Apply.Item.RecipeNO, confirmDetail.Apply.Item.SequenceNO, Neusoft.HISFC.Models.Base.EnumItemType.UnDrug);
                    if (itemList != null)
                    {
                        if (!string.IsNullOrEmpty(itemList.UndrugComb.ID))
                        {
                            isComb = true;
                            if (!combIDList.Contains(itemList.UndrugComb.ID + confirmDetail.ExecMoOrder))
                            {
                                combIDList.Add(itemList.UndrugComb.ID + confirmDetail.ExecMoOrder);
                                this.neuSpread1_Sheet1.Rows.Add(0, 1);
                                this.neuSpread1_Sheet1.RowHeader.Cells[0, 0].Text      = "+";
                                this.neuSpread1_Sheet1.RowHeader.Cells[0, 0].BackColor = Color.YellowGreen;
                                this.neuSpread1_Sheet1.Rows[0].BackColor = Color.LightBlue;
                                #region addby xuewj 2010-10-3 增加单价、合计 {AB2D96F8-2CB3-49d2-9445-CCFDA1FFFCE7}
                                //this.neuSpread1_Sheet1.Cells[0, 0].Text = confirmDetail.MoOrder;//医嘱号
                                //this.neuSpread1_Sheet1.Cells[0, 1].Text = confirmDetail.ExecMoOrder;//医嘱执行号
                                //this.neuSpread1_Sheet1.Cells[0, 3].Text = itemList.UndrugComb.ID;//项目编码
                                //this.neuSpread1_Sheet1.Cells[0, 4].Text = itemList.UndrugComb.Name;//项目名称
                                //this.neuSpread1_Sheet1.Cells[0, 5].Text = confirmDetail.Apply.Item.ConfirmedQty.ToString();//已确认数量
                                //Neusoft.HISFC.Models.Base.Employee tmpEmp = this.deptManager.GetEmployeeInfo(confirmDetail.Apply.Item.ConfirmOper.ID);
                                //this.neuSpread1_Sheet1.Cells[0, 6].Text = tmpEmp.Name;
                                //Neusoft.HISFC.Models.Base.Department tmpDept = this.deptManager.GetDepartment(confirmDetail.Apply.ConfirmOperEnvironment.Dept.ID);//确认科室
                                //this.neuSpread1_Sheet1.Cells[0, 7].Tag = tmpDept.ID;
                                //this.neuSpread1_Sheet1.Cells[0, 7].Text = tmpDept.Name;
                                //this.neuSpread1_Sheet1.Cells[0, 8].Text = confirmDetail.Apply.ConfirmOperEnvironment.OperTime.ToString();//操作时间

                                this.neuSpread1_Sheet1.Cells[0, (int)Cols.MoOrder].Text     = confirmDetail.MoOrder;                            //医嘱号
                                this.neuSpread1_Sheet1.Cells[0, (int)Cols.ExecMoOrder].Text = confirmDetail.ExecMoOrder;                        //医嘱执行号
                                this.neuSpread1_Sheet1.Cells[0, (int)Cols.ItemID].Text      = itemList.UndrugComb.ID;                           //项目编码
                                this.neuSpread1_Sheet1.Cells[0, (int)Cols.ItemName].Text    = itemList.UndrugComb.Name;                         //项目名称
                                this.neuSpread1_Sheet1.Cells[0, (int)Cols.ConfirmQty].Text  = confirmDetail.Apply.Item.ConfirmedQty.ToString(); //已确认数量

                                Neusoft.HISFC.Models.Base.Employee tmpEmp = this.deptManager.GetEmployeeInfo(confirmDetail.Apply.Item.ConfirmOper.ID);
                                this.neuSpread1_Sheet1.Cells[0, (int)Cols.OperCode].Text = tmpEmp.Name;
                                Neusoft.HISFC.Models.Base.Department tmpDept = this.deptManager.GetDepartment(confirmDetail.Apply.ConfirmOperEnvironment.Dept.ID);//确认科室
                                this.neuSpread1_Sheet1.Cells[0, (int)Cols.OperDept].Tag  = tmpDept.ID;
                                this.neuSpread1_Sheet1.Cells[0, (int)Cols.OperDept].Text = tmpDept.Name;
                                this.neuSpread1_Sheet1.Cells[0, (int)Cols.OperTime].Text = confirmDetail.Apply.ConfirmOperEnvironment.OperTime.ToString();//操作时间
                                #endregion
                                rowIndex++;
                            }
                            else
                            {
                                //查找组套节点
                                for (int i = 0; i < this.neuSpread1_Sheet1.Rows.Count; i++)
                                {
                                    if (this.neuSpread1_Sheet1.Cells[i, 2].Text == "" && this.neuSpread1_Sheet1.Cells[i, 1].Text == confirmDetail.ExecMoOrder && this.neuSpread1_Sheet1.Cells[i, 3].Text == itemList.UndrugComb.ID)
                                    {
                                        rowIndex = i + 1;
                                        break;
                                    }
                                }
                            }
                        }
                    }
                    #endregion

                    //this.neuSpread1_Sheet1.Rows.Add(0, 1);
                    //{5C2A9C83-D165-434c-ACA4-86F23E956442}
                    this.neuSpread1_Sheet1.Rows.Add(rowIndex, 1);
                    if (isComb)
                    {
                        this.neuSpread1_Sheet1.RowHeader.Cells[rowIndex, 0].BackColor = Color.Yellow;
                        this.neuSpread1_Sheet1.Rows[rowIndex].BackColor          = Color.LightYellow;
                        this.neuSpread1_Sheet1.RowHeader.Cells[rowIndex, 0].Text = ".";
                        this.neuSpread1_Sheet1.Rows[rowIndex].Visible            = false;
                    }

                    Neusoft.HISFC.Models.Base.Employee   employee = new Neusoft.HISFC.Models.Base.Employee();
                    Neusoft.HISFC.Models.Base.Department dept     = new Neusoft.HISFC.Models.Base.Department();

                    #region addby xuewj 2010-10-3 增加单价、合计 {AB2D96F8-2CB3-49d2-9445-CCFDA1FFFCE7}
                    //this.neuSpread1_Sheet1.Cells[rowIndex, 0].Text = confirmDetail.MoOrder;//医嘱号
                    //this.neuSpread1_Sheet1.Cells[rowIndex, 1].Text = confirmDetail.ExecMoOrder;//医嘱执行号
                    //this.neuSpread1_Sheet1.Cells[rowIndex, 2].Text = confirmDetail.Sequence;//流水号  主键
                    //this.neuSpread1_Sheet1.Cells[rowIndex, 3].Text = confirmDetail.Apply.Item.ID;//项目编码
                    //this.neuSpread1_Sheet1.Cells[rowIndex, 4].Text = confirmDetail.Apply.Item.Name;//项目名称
                    //this.neuSpread1_Sheet1.Cells[rowIndex, 5].Text = confirmDetail.Apply.Item.ConfirmedQty.ToString();//已确认数量
                    //this.neuSpread1_Sheet1.Cells[rowIndex, 6].Tag = confirmDetail.Apply.Item.ConfirmOper.ID;//确认人
                    //employee = this.deptManager.GetEmployeeInfo(confirmDetail.Apply.Item.ConfirmOper.ID);
                    //this.neuSpread1_Sheet1.Cells[rowIndex, 6].Text = employee.Name;
                    //dept = this.deptManager.GetDepartment(confirmDetail.Apply.ConfirmOperEnvironment.Dept.ID);//确认科室
                    //this.neuSpread1_Sheet1.Cells[rowIndex, 7].Tag = dept.ID;
                    //this.neuSpread1_Sheet1.Cells[rowIndex, 7].Text = dept.Name;
                    //this.neuSpread1_Sheet1.Cells[rowIndex, 8].Text = confirmDetail.Apply.ConfirmOperEnvironment.OperTime.ToString();//操作时间
                    //this.neuSpread1_Sheet1.Cells[rowIndex, 9].Text = confirmDetail.Apply.Item.RecipeNO;//处方号
                    //this.neuSpread1_Sheet1.Cells[rowIndex, 10].Text = confirmDetail.Apply.Item.SequenceNO.ToString();//处方内流水号
                    //this.neuSpread1_Sheet1.Cells[rowIndex, 11].Text = confirmDetail.ExecDevice;//执行设备
                    //this.neuSpread1_Sheet1.Cells[rowIndex, 12].Text = confirmDetail.Oper.ID;//执行技师

                    this.neuSpread1_Sheet1.Cells[rowIndex, (int)Cols.MoOrder].Text     = confirmDetail.MoOrder;                            //医嘱号
                    this.neuSpread1_Sheet1.Cells[rowIndex, (int)Cols.ExecMoOrder].Text = confirmDetail.ExecMoOrder;                        //医嘱执行号
                    this.neuSpread1_Sheet1.Cells[rowIndex, (int)Cols.ApplyNum].Text    = confirmDetail.Sequence;                           //流水号  主键
                    this.neuSpread1_Sheet1.Cells[rowIndex, (int)Cols.ItemID].Text      = confirmDetail.Apply.Item.ID;                      //项目编码
                    this.neuSpread1_Sheet1.Cells[rowIndex, (int)Cols.ItemName].Text    = confirmDetail.Apply.Item.Name;                    //项目名称
                    this.neuSpread1_Sheet1.Cells[rowIndex, (int)Cols.ConfirmQty].Text  = confirmDetail.Apply.Item.ConfirmedQty.ToString(); //已确认数量

                    if (itemList != null)
                    {
                        this.neuSpread1_Sheet1.Cells[rowIndex, (int)Cols.UnitPrice].Text = decimal.Round(itemList.Item.Price, 2).ToString(); //已确认数量
                        this.neuSpread1_Sheet1.Cells[rowIndex, (int)Cols.TotCost].Text   = decimal.Round(itemList.FT.TotCost, 2).ToString(); //已确认数量
                    }
                    this.neuSpread1_Sheet1.Cells[rowIndex, (int)Cols.OperCode].Tag = confirmDetail.Apply.Item.ConfirmOper.ID;                //确认人
                    employee = this.deptManager.GetEmployeeInfo(confirmDetail.Apply.Item.ConfirmOper.ID);
                    this.neuSpread1_Sheet1.Cells[rowIndex, (int)Cols.OperCode].Text = employee.Name;
                    dept = this.deptManager.GetDepartment(confirmDetail.Apply.ConfirmOperEnvironment.Dept.ID);//确认科室
                    this.neuSpread1_Sheet1.Cells[rowIndex, (int)Cols.OperDept].Tag    = dept.ID;
                    this.neuSpread1_Sheet1.Cells[rowIndex, (int)Cols.OperDept].Text   = dept.Name;
                    this.neuSpread1_Sheet1.Cells[rowIndex, (int)Cols.OperTime].Text   = confirmDetail.Apply.ConfirmOperEnvironment.OperTime.ToString(); //操作时间
                    this.neuSpread1_Sheet1.Cells[rowIndex, (int)Cols.RecipeNo].Text   = confirmDetail.Apply.Item.RecipeNO;                              //处方号
                    this.neuSpread1_Sheet1.Cells[rowIndex, (int)Cols.SequenceNo].Text = confirmDetail.Apply.Item.SequenceNO.ToString();                 //处方内流水号
                    this.neuSpread1_Sheet1.Cells[rowIndex, (int)Cols.Operator].Text   = confirmDetail.ExecDevice;                                       //执行设备
                    this.neuSpread1_Sheet1.Cells[rowIndex, (int)Cols.Machine].Text    = confirmDetail.Oper.ID;                                          //执行技师
                    #endregion

                    this.neuSpread1_Sheet1.Rows[rowIndex].Tag = confirmDetail;
                }
            }
        }
Ejemplo n.º 22
0
 public int RecomputeFeeItemListInpatient(Neusoft.HISFC.Models.RADT.PatientInfo patient, Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList feeItemList)
 {
     throw new Exception("The method or operation is not implemented.");
 }
Ejemplo n.º 23
0
        /// <summary>
        /// 身份变更确认操作
        /// </summary>
        /// <returns></returns>
        protected virtual int ChangePact()
        {
            if (this.IsValid() < 0)
            {
                return(-1);
            }
            Neusoft.FrameWork.WinForms.Classes.Function.ShowWaitForm("正在处理明细数据……");
            Application.DoEvents();
            Neusoft.FrameWork.Models.NeuObject newObj = new Neusoft.FrameWork.Models.NeuObject();
            Neusoft.FrameWork.Models.NeuObject oldObj = new Neusoft.FrameWork.Models.NeuObject();
            Neusoft.FrameWork.Models.NeuObject obj    = new Neusoft.FrameWork.Models.NeuObject();
            //备份收费药品信息
            ArrayList alDruglistBackUp = new ArrayList();
            //备份收费药品信息
            ArrayList alUndruglistBackUp = new ArrayList();

            obj = this.GetPactUnitByID(this.cmbNewPact.SelectedItem.ID);

            this.medcareInterfaceProxy.SetPactCode(this.cmbNewPact.SelectedItem.ID);
            //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(Neusoft.FrameWork.Management.Connection.Instance);

            Neusoft.FrameWork.Management.PublicTrans.BeginTransaction();

            Neusoft.HISFC.BizProcess.Integrate.Pharmacy pharmacyIntegrate = new Neusoft.HISFC.BizProcess.Integrate.Pharmacy();
            pharmacyIntegrate.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);

            this.InpatientManager.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);
            this.myPactUnit.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);
            this.radtIntegrate.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);
            this.feeIntegrate.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);

            newObj.ID     = this.cmbNewPact.SelectedItem.ID;   //1 合同单位代码
            newObj.Name   = this.cmbNewPact.SelectedItem.Name; //2 合同单位名称
            newObj.User01 = obj.ID;                            //3 结算类别代码
            newObj.User02 = obj.Name;                          //4 结算类别名称
            newObj.User03 = this.patientInfo.SSN;              //医疗证号

            oldObj.ID   = this.txtOldPact.Tag.ToString();
            oldObj.Name = this.txtOldPact.Text;


            #region 退费


            #region 处理非药品



            //处理非药品
            if (this.fpUndrug_Sheet1.RowCount > 0)
            {
                for (int i = 0; i < fpUndrug_Sheet1.RowCount; i++)
                {
                    Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList undrugItem    = new Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList();
                    Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList oldUndrugItem = new Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList();
                    if (this.fpUndrug_Sheet1.Rows[i].Tag != null)
                    {
                        undrugItem          = (Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList) this.fpUndrug_Sheet1.Rows[i].Tag;
                        oldUndrugItem       = undrugItem.Clone();
                        undrugItem.ExtFlag2 = "3";//变更标志
                        //退费



                        undrugItem.IsNeedUpdateNoBackQty = true;
                        if (this.feeIntegrate.QuitItem(this.patientInfo, undrugItem) == -1)
                        {
                            Neusoft.FrameWork.Management.PublicTrans.RollBack();
                            Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm();
                            MessageBox.Show("调用中间层出错" + this.feeIntegrate.Err);
                            this.Clear();
                            return(-1);
                        }


                        //收费
                        oldUndrugItem.RecipeNO         = this.InpatientManager.GetUndrugRecipeNO();
                        oldUndrugItem.Patient.Pact.ID  = this.cmbNewPact.SelectedItem.ID;
                        oldUndrugItem.FeeOper.ID       = this.InpatientManager.Operator.ID;
                        oldUndrugItem.FeeOper.OperTime = this.InpatientManager.GetDateTimeFromSysDateTime();
                        //备份非药品信息


                        alUndruglistBackUp.Add(oldUndrugItem);
                        //if (this.feeIntegrate.FeeItem(this.oENewPatientInfo, oldUndrugItem) == -1)
                        //{
                        //    t.RollBack();
                        //    Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm();
                        //    MessageBox.Show("调用中间层出错" + this.feeIntegrate.Err);
                        //    this.Clear();
                        //    return -1;
                        //}
                    }
                    else
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm();
                        MessageBox.Show("调用中间层出错" + this.feeIntegrate.Err);
                        this.Clear();
                        return(-1);
                    }
                }
            }
            #endregion

            #region 处理药品
            //处理药品
            if (this.fpDrug_Sheet1.RowCount > 0)
            {
                for (int i = 0; i < fpDrug_Sheet1.RowCount; i++)
                {
                    Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList medicineItem    = new Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList();
                    Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList oldMedicineItem = new Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList();
                    if (this.fpDrug_Sheet1.Rows[i].Tag != null)
                    {
                        medicineItem          = (Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList) this.fpDrug_Sheet1.Rows[i].Tag;
                        oldMedicineItem       = medicineItem.Clone();
                        medicineItem.ExtFlag2 = "3";//变更标志
                        //退费

                        ////这里是否更改成未摆药的更新发药申请的记录addbyhuazb
                        //if (string.IsNullOrEmpty(medicineItem.ExecOper.ID))
                        //{
                        //    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        //    Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm();
                        //    MessageBox.Show("保存出错出错" + "该患者有药未摆,请通知药房摆药以后再进行变更!");
                        //    this.Clear();
                        //    return -1;
                        //}



                        medicineItem.IsNeedUpdateNoBackQty = true;
                        if (this.feeIntegrate.QuitItem(this.patientInfo, medicineItem) == -1)
                        {
                            Neusoft.FrameWork.Management.PublicTrans.RollBack();
                            Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm();
                            MessageBox.Show("调用中间层出错" + this.feeIntegrate.Err);
                            this.Clear();
                            return(-1);
                        }


                        //收费
                        //存储旧处方号
                        oldMedicineItem.BalanceOper.User01 = oldMedicineItem.RecipeNO;

                        oldMedicineItem.RecipeNO         = this.InpatientManager.GetDrugRecipeNO();
                        oldMedicineItem.Patient.Pact.ID  = this.cmbNewPact.SelectedItem.ID;
                        oldMedicineItem.FeeOper.ID       = this.InpatientManager.Operator.ID;
                        oldMedicineItem.FeeOper.OperTime = this.InpatientManager.GetDateTimeFromSysDateTime();
                        //备份药品信息
                        alDruglistBackUp.Add(oldMedicineItem);
                        //if (this.feeIntegrate.FeeItem(this.oENewPatientInfo, oldMedicineItem) == -1)
                        //{
                        //    t.RollBack();
                        //    Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm();
                        //    MessageBox.Show("调用中间层出错" + this.feeIntegrate.Err);
                        //    this.Clear();
                        //    return -1;
                        //}
                    }
                    else
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm();
                        MessageBox.Show("调用中间层出错" + this.feeIntegrate.Err);
                        this.Clear();
                        return(-1);
                    }
                }
            }
            #endregion
            #endregion


            if (this.radtIntegrate.SetPactShiftData(this.patientInfo, newObj, oldObj) != 0)
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm();
                MessageBox.Show("调用中间层出错");
                this.Clear();
                return(-1);
            }
            //获得更改后得患者信息



            this.oENewPatientInfo = this.radtIntegrate.GetPatientInfomation(this.patientInfo.ID);
            if (this.oENewPatientInfo == null)
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm();
                MessageBox.Show("获得变更后患者信息出错!!", "提示");
                this.Clear();
                return(-1);
            }

            #region 重新收费
            #region 处理非药品


            long returnValue = 0;
            this.medcareInterfaceProxy.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);
            returnValue = this.medcareInterfaceProxy.Connect();
            if (returnValue < 0)
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                this.medcareInterfaceProxy.Rollback();
                //{0C35F3E3-2E72-4ae3-8809-FF3809DA2A16}
                Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm();
                MessageBox.Show("请确保待遇接口存在或正常初始化初始化失败" + this.medcareInterfaceProxy.ErrMsg);
                this.Clear();
                return(-1);
            }
            returnValue = this.medcareInterfaceProxy.GetRegInfoInpatient(oENewPatientInfo);
            if (returnValue < 0)
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                this.medcareInterfaceProxy.Rollback();
                //{0C35F3E3-2E72-4ae3-8809-FF3809DA2A16}
                Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm();
                MessageBox.Show("待遇接口获得患者信息失败" + this.medcareInterfaceProxy.ErrMsg);
                this.Clear();
                return(-1);
            }
            returnValue = this.medcareInterfaceProxy.UploadRegInfoInpatient(oENewPatientInfo);
            if (returnValue < 0)
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                this.medcareInterfaceProxy.Rollback();
                //{0C35F3E3-2E72-4ae3-8809-FF3809DA2A16}
                Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm();
                MessageBox.Show("待遇接口上传住院登记信息失败" + this.medcareInterfaceProxy.ErrMsg);
                this.Clear();
                return(-1);
            }

            //处理非药品
            if (alUndruglistBackUp.Count > 0)
            {
                for (int i = 0; i < alUndruglistBackUp.Count; i++)
                {
                    Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList oldUndrugItem = new Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList();
                    oldUndrugItem = (Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList)alUndruglistBackUp[i];
                    if (this.feeIntegrate.FeeItem(this.oENewPatientInfo, oldUndrugItem) == -1)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        this.medcareInterfaceProxy.Rollback();
                        Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm();
                        MessageBox.Show("调用中间层出错" + this.feeIntegrate.Err);
                        this.Clear();
                        return(-1);
                    }
                }
            }
            #endregion

            #region 处理药品
            //处理药品
            if (alDruglistBackUp.Count > 0)
            {
                for (int i = 0; i < alDruglistBackUp.Count; i++)
                {
                    Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList oldMedicineItem = new Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList();
                    oldMedicineItem = (Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList)alDruglistBackUp[i];
                    if (oldMedicineItem != null)
                    {
                        if (this.feeIntegrate.FeeItem(this.oENewPatientInfo, oldMedicineItem.Clone()) == -1)
                        {
                            Neusoft.FrameWork.Management.PublicTrans.RollBack();
                            this.medcareInterfaceProxy.Rollback();
                            Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm();
                            MessageBox.Show("调用中间层出错" + this.feeIntegrate.Err);
                            this.Clear();
                            return(-1);
                        }
                        //这里收费完已经发药的senddrug_flag未更新。addbyhuazb

                        if (this.InpatientManager.UpdateMedItemExecInfo(oldMedicineItem.RecipeNO, oldMedicineItem.SequenceNO
                                                                        , oldMedicineItem.UpdateSequence, oldMedicineItem.SendSequence, (int)oldMedicineItem.PayType, oldMedicineItem.StockOper.Dept.ID,
                                                                        oldMedicineItem.ExecOper.ID, oldMedicineItem.ExecOper.OperTime) == -1)
                        {
                            Neusoft.FrameWork.Management.PublicTrans.RollBack();
                            this.medcareInterfaceProxy.Rollback();
                            Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm();
                            MessageBox.Show("调用中间层出错" + this.feeIntegrate.Err);
                            this.Clear();
                            return(-1);
                        }
                        //更新处方号
                        if (pharmacyIntegrate.UpdateApplyOutRecipe(oldMedicineItem.BalanceOper.User01, oldMedicineItem.SequenceNO, oldMedicineItem.RecipeNO, oldMedicineItem.SequenceNO) == -1)
                        {
                            Neusoft.FrameWork.Management.PublicTrans.RollBack();
                            Neusoft.FrameWork.Management.PublicTrans.RollBack();
                            Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm();
                            MessageBox.Show("更新药品申请表处方号信息发生错误!" + pharmacyIntegrate.Err);
                            this.Clear();
                            return(-1);
                        }
                    }
                }
            }
            #endregion
            #endregion


            Neusoft.FrameWork.Management.PublicTrans.Commit();
            this.medcareInterfaceProxy.Commit();
            MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("变更成功"));
            Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm();
            //重新显示介面
            this.SetpatientInfo(this.oENewPatientInfo);
            //重新显示费用明细
            this.DisplayDetail(this.oENewPatientInfo.ID);

            return(1);
        }
Ejemplo n.º 24
0
 public int UpdateFeeItemListInpatient(Neusoft.HISFC.Models.RADT.PatientInfo patient, Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList f)
 {
     System.Data.IDbCommand cmd = null;
     cmd.Connection = ConnectTT;
     cmd.ExecuteNonQuery();
     return(1);
 }
Ejemplo n.º 25
0
 public int RecomputeFeeItemListInpatient(Neusoft.HISFC.Models.RADT.PatientInfo patient, Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList feeItemList)
 {
     feeItemList.FT.OwnCost = feeItemList.FT.TotCost;
     feeItemList.FT.PayCost = 0m;
     feeItemList.FT.PubCost = 0m;
     return(1);
 }
Ejemplo n.º 26
0
        /// <summary>
        /// 住院重新计算费用明细
        /// </summary>
        /// <param name="patient">住院患者基本信息</param>
        /// <param name="f">住院费用单条明细</param>
        /// <returns>成功 1 失败 -1</returns>
        public int RecomputeFeeItemListInpatient(Neusoft.HISFC.Models.RADT.PatientInfo patient, Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList f)
        {
            try
            {
                if (!this.IsValid(patient))
                {
                    return(-1);
                }

                int returnValue = this.medcaredInterface.RecomputeFeeItemListInpatient(patient, f);
                if (returnValue <= 0)
                {
                    this.errMsg = this.medcaredInterface.ErrMsg;
                }
                return(returnValue);
            }
            catch (Exception e)
            {
                this.errMsg = e.Message;

                return(-1);
            }
        }
Ejemplo n.º 27
0
        /// <summary>
        /// 处理费用明细和费用汇总表
        /// </summary>
        /// <param name="balanceNO">负记录结算序号</param>
        /// <param name="nowTime">当前时间</param>
        /// <param name="errText">错误信息</param>
        /// <returns>成功 1 失败 -1</returns>
        public int DealFeeInfoAndFeeItemList(int balanceNO, DateTime nowTime, ref string errText)
        {
            int returnValue = 0;//方法返回值

            ArrayList feeItemLists = this.QueryUnQuitItems(false);

            if (feeItemLists == null)
            {
                errText = "获得未退费明细出错!";

                return(-1);
            }

            ArrayList feeItemListsQuit = new ArrayList();

            foreach (Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList feeItemList in feeItemLists)
            {
                //获得项目明细的详细信息
                //Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList feeItemTemp = this.inpatientManager.GetItemListByRecipeNO(feeItemList.RecipeNO, feeItemList.SequenceNO, feeItemList.Item.IsPharmacy);
                Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList feeItemTemp = this.inpatientManager.GetItemListByRecipeNO(feeItemList.RecipeNO, feeItemList.SequenceNO, feeItemList.Item.ItemType);
                if (feeItemTemp == null)
                {
                    errText = "获得费用明细出错!" + this.inpatientManager.Err;

                    return(-1);
                }

                //if (feeItemTemp.Item.IsPharmacy)
                if (feeItemTemp.Item.ItemType == Neusoft.HISFC.Models.Base.EnumItemType.Drug)
                {
                    //判断作废发药申请
                    if (feeItemTemp.PayType == Neusoft.HISFC.Models.Base.PayTypes.Balanced)
                    {
                        returnValue = base.phamarcyIntegrate.CancelApplyOut(feeItemTemp.RecipeNO, feeItemTemp.SequenceNO);
                        if (returnValue == -1)
                        {
                            errText = "作废发药申请出错!" + base.phamarcyIntegrate.Err;

                            return(-1);
                        }
                    }
                }
                else
                {
                    //重新查找非药品所对应的物资信息
                    List <HISFC.Models.FeeStuff.Output> outputList = mateInteger.QueryOutput(feeItemTemp);
                    if (outputList != null)
                    {
                        foreach (HISFC.Models.FeeStuff.Output outItem in outputList)
                        {
                            //生成可退数量
                            outItem.StoreBase.Item.Qty = outItem.StoreBase.Quantity - outItem.StoreBase.Returns - outItem.ReturnApplyNum;
                        }
                        feeItemTemp.MateList = outputList;
                    }
                }

                //feeItemTemp.FT.TotCost = -feeItemTemp.FT.TotCost;
                //feeItemTemp.FT.OwnCost = -feeItemTemp.FT.OwnCost;
                //feeItemTemp.FT.PayCost = -feeItemTemp.FT.PayCost;
                //feeItemTemp.FT.PubCost = -feeItemTemp.FT.PubCost;
                //feeItemTemp.Item.Qty = -feeItemTemp.Item.Qty;

                feeItemTemp.BalanceOper.ID      = this.inpatientManager.Operator.ID;
                feeItemTemp.ChargeOper.OperTime = nowTime;
                feeItemTemp.FeeOper.ID          = this.inpatientManager.Operator.ID;
                feeItemTemp.FeeOper.OperTime    = nowTime;
                feeItemTemp.TransType           = Neusoft.HISFC.Models.Base.TransTypes.Negative;
                feeItemTemp.BalanceNO           = balanceNO;

                feeItemListsQuit.Add(feeItemTemp);
            }

            this.feeIntegrate.IsIgnoreInstate = true;

            returnValue = base.feeIntegrate.QuitItem(this.patientInfo, ref feeItemListsQuit);

            this.feeIntegrate.IsIgnoreInstate = false;

            if (returnValue == -1)
            {
                errText = "插入费用负记录出错!" + base.feeIntegrate.Err;
                this.feeIntegrate.IsIgnoreInstate = false;

                return(-1);
            }

            return(1);
        }