Example #1
0
        /// <summary>
        /// 确费
        /// </summary>
        /// <param name="presorders"></param>
        /// <param name="ConfirDoc"></param>
        /// <returns></returns>
        public override bool SaveConfir(List <int> presorders, int ConfirDoc, int ConfirDept)
        {
            try
            {
                if (presorders.Count == 0)
                {
                    return(false);
                }
                object obj = GetConfig();
                oleDb.BeginTransaction();
                for (int i = 0; i < presorders.Count; i++)
                {
                    HIS.Model.MZ_PresOrder presorder = BindEntity <HIS.Model.MZ_PresOrder> .CreateInstanceDAL(oleDb).GetModel(presorders[i]);

                    HIS.Model.Medical_Confir Confir = new HIS.Model.Medical_Confir();
                    Confir.Cancel_Flag = 0;
                    Confir.ConfirDate  = XcDate.ServerDateTime;
                    Confir.ConfirDept  = ConfirDept;
                    Confir.ConfirDoc   = ConfirDoc;
                    Confir.Mark_Flag   = 0;
                    Confir.PatListId   = presorder.PatListID;
                    Confir.PresOrderId = presorder.PresOrderID;
                    string strWhere = Tables.medical_confir.PRESORDERID + oleDb.EuqalTo() + presorder.PresOrderID + oleDb.And() + Tables.medical_confir.CANCEL_FLAG +
                                      oleDb.EuqalTo() + 0 + oleDb.And() + Tables.medical_confir.MARK_FLAG + oleDb.EuqalTo() + 0;
                    if (BindEntity <HIS.Model.Medical_Confir> .CreateInstanceDAL(oleDb).Exists(strWhere))
                    {
                        continue;
                    }
                    BindEntity <HIS.Model.Medical_Confir> .CreateInstanceDAL(oleDb).Add(Confir);

                    HIS.Model.MZ_PresMaster presmaster = BindEntity <HIS.Model.MZ_PresMaster> .CreateInstanceDAL(oleDb).GetModel(presorder.PresMasterID);

                    if (obj == null || obj.ToString().Trim() == "1") //按医技科室确费的修改执行科室
                    {
                        presmaster.ExecDeptCode = ConfirDept.ToString();
                        BindEntity <HIS.Model.MZ_PresMaster> .CreateInstanceDAL(oleDb).Update(presmaster);
                    }
                }
                oleDb.CommitTransaction();
                return(true);
            }
            catch (System.Exception e)
            {
                oleDb.RollbackTransaction();
                throw new Exception(e.Message);
            }
        }
Example #2
0
        /// <summary>
        /// 取消确费
        /// </summary>
        /// <param name="presorders"></param>
        /// <param name="CancelDoc"></param>
        /// <returns></returns>
        public override bool CancelConfir(List <int> presorders, int CancelDoc)
        {
            try
            {
                if (presorders.Count == 0)
                {
                    return(false);
                }
                object   obj    = GetConfig();
                string[] strSet = new string[3];
                strSet[0] = Tables.medical_confir.CANCEL_FLAG + oleDb.EuqalTo() + 1;
                strSet[1] = Tables.medical_confir.CANCELDOC + oleDb.EuqalTo() + CancelDoc;
                strSet[2] = Tables.medical_confir.CANCELDATE + oleDb.EuqalTo() + "'" + XcDate.ServerDateTime + "'";
                oleDb.BeginTransaction();
                for (int i = 0; i < presorders.Count; i++)
                {
                    string strWhere = Tables.medical_confir.CONFIRDOC + oleDb.EuqalTo() + CancelDoc + oleDb.And() + Tables.medical_confir.CANCEL_FLAG + oleDb.EuqalTo() + 0
                                      + oleDb.And() + Tables.medical_confir.PRESORDERID + oleDb.EuqalTo() + presorders[i] + oleDb.And() + Tables.medical_confir.MARK_FLAG + oleDb.EuqalTo() + 0;
                    BindEntity <HIS.Model.Medical_Confir> .CreateInstanceDAL(oleDb).Update(strWhere, strSet);

                    HIS.Model.MZ_PresOrder order = BindEntity <HIS.Model.MZ_PresOrder> .CreateInstanceDAL(oleDb).GetModel(presorders[i]);

                    if (obj == null || obj.ToString().Trim() == "1")
                    {
                        string strSet1 = Tables.mz_presmaster.EXECDEPTCODE + oleDb.EuqalTo() + "'0'";
                        BindEntity <HIS.Model.MZ_PresMaster> .CreateInstanceDAL(oleDb).Update(Tables.mz_presmaster.PRESMASTERID + oleDb.EuqalTo() + order.PresMasterID, strSet1);
                    }
                }

                oleDb.CommitTransaction();
                return(true);
            }
            catch (System.Exception e)
            {
                oleDb.RollbackTransaction();
                throw new Exception(e.Message);
            }
        }
Example #3
0
        /// <summary>
        /// 保存处方
        /// </summary>
        /// <param name="patient">处方所属病人</param>
        /// <param name="Prescriptions">要保存的处方</param>
        /// <returns></returns>
        public bool SavePrescription(BasePatient patient, Prescription[] Prescriptions)
        {
            oleDb.BeginTransaction( );
            try
            {
                for (int i = 0; i < Prescriptions.Length; i++)
                {
                    if (!Prescriptions[i].Modified && Prescriptions[i].DocPresId == 0)
                    {
                        continue;
                    }

                    if (Prescriptions[i].PresDetails == null)
                    {
                        continue;
                    }

                    if (Prescriptions[i].PresDetails.Length == 0)
                    {
                        continue;
                    }

                    HIS.Model.MZ_PresMaster t_mz_prescMaster = new HIS.Model.MZ_PresMaster( );
                    #region 赋值
                    t_mz_prescMaster.PatID        = Prescriptions[i].PatientID;
                    t_mz_prescMaster.PatListID    = Prescriptions[i].RegisterID;
                    t_mz_prescMaster.Charge_Flag  = Prescriptions[i].Charge_Flag;
                    t_mz_prescMaster.ChargeCode   = Prescriptions[i].ChargeCode;
                    t_mz_prescMaster.CostMasterID = Prescriptions[i].ChargeID;
                    t_mz_prescMaster.Drug_Flag    = Prescriptions[i].Drug_Flag;
                    t_mz_prescMaster.ExecDeptCode = Prescriptions[i].ExecDeptCode;
                    t_mz_prescMaster.ExecDocCode  = Prescriptions[i].ExecDocCode;
                    t_mz_prescMaster.OldID        = Prescriptions[i].OldPresID;
                    t_mz_prescMaster.PresCostCode = Prescriptions[i].PresCostCode;
                    t_mz_prescMaster.PresMasterID = Prescriptions[i].PrescriptionID;
                    t_mz_prescMaster.PresType     = Prescriptions[i].PrescType;
                    t_mz_prescMaster.PresDeptCode = Prescriptions[i].PresDeptCode;
                    t_mz_prescMaster.PresDocCode  = Prescriptions[i].PresDocCode;
                    t_mz_prescMaster.Record_Flag  = Prescriptions[i].Record_Flag;
                    t_mz_prescMaster.TicketCode   = Prescriptions[i].TicketCode;
                    t_mz_prescMaster.TicketNum    = Prescriptions[i].TicketNum;
                    t_mz_prescMaster.Total_Fee    = Prescriptions[i].Total_Fee;
                    t_mz_prescMaster.PresDate     = Prescriptions[i].PresDate;
                    t_mz_prescMaster.PresAmount   = Prescriptions[i].PresDetails[0].PresAmount;
                    t_mz_prescMaster.Hand_Flag    = (int)OPDOperationType.门诊收费;
                    t_mz_prescMaster.DocPresId    = Prescriptions[i].DocPresId;
                    #endregion
                    if (BindEntity <Model.MZ_PresMaster> .CreateInstanceDAL(oleDb).Exists(Prescriptions[i].PrescriptionID))
                    {
                        Model.MZ_PresMaster mz_presmaster = BindEntity <Model.MZ_PresMaster> .CreateInstanceDAL(oleDb).GetModel(Prescriptions[i].PrescriptionID);

                        if (mz_presmaster.Charge_Flag == 1)
                        {
                            throw new OperatorException("处方已收费,不能修改!");
                        }
                        //更新处方头
                        BindEntity <Model.MZ_PresMaster> .CreateInstanceDAL(oleDb).Update(t_mz_prescMaster);
                    }
                    else
                    {
                        //插入新处方
                        int ret1 = BindEntity <Model.MZ_PresMaster> .CreateInstanceDAL(oleDb).Add(t_mz_prescMaster);

                        Prescriptions[i].PrescriptionID = ret1;
                    }
                    //更新或增加明细
                    PrescriptionDetail[] details = Prescriptions[i].PresDetails;
                    for (int j = 0; j < details.Length; j++)
                    {
                        if (details[j].Amount == 0)
                        {
                            throw new OperatorException("【" + details[j].Itemname + "】数量为零,请输入一个大于零的数");
                        }
                        if (details[j].BigitemCode == "01" || details[j].BigitemCode == "02" || details[j].BigitemCode == "03")
                        {
                            decimal sellprice, buyprice, storevalue;
                            decimal inputValue = details[j].Amount * details[j].PresAmount;
                            PublicDataReader.StoreExists(details[j].ItemId, Prescriptions[i].ExecDeptCode, inputValue,
                                                         out sellprice, out buyprice, out storevalue);

                            details[j].Buy_price  = buyprice;
                            details[j].Sell_price = sellprice;
                        }

                        HIS.Model.MZ_PresOrder t_mz_presOrder = new HIS.Model.MZ_PresOrder( );
                        #region 赋值
                        t_mz_presOrder.Amount       = details[j].Amount;
                        t_mz_presOrder.BigItemCode  = details[j].BigitemCode;
                        t_mz_presOrder.Buy_Price    = details[j].Buy_price;
                        t_mz_presOrder.CaseID       = details[j].ComplexId;
                        t_mz_presOrder.ItemID       = details[j].ItemId;
                        t_mz_presOrder.ItemName     = details[j].Itemname;
                        t_mz_presOrder.ItemType     = details[j].ItemType;
                        t_mz_presOrder.Order_Flag   = details[j].Order_Flag;
                        t_mz_presOrder.PassID       = details[j].PassId;
                        t_mz_presOrder.PatID        = patient.PatID;
                        t_mz_presOrder.PatListID    = patient.PatListID;
                        t_mz_presOrder.PresAmount   = details[j].PresAmount;
                        t_mz_presOrder.PresMasterID = Prescriptions[i].PrescriptionID;
                        t_mz_presOrder.PresOrderID  = details[j].DetailId;
                        t_mz_presOrder.RelationNum  = details[j].RelationNum;
                        t_mz_presOrder.Sell_Price   = details[j].Sell_price;
                        t_mz_presOrder.Standard     = details[j].Standard;
                        t_mz_presOrder.Tolal_Fee    = details[j].Tolal_Fee;
                        t_mz_presOrder.Unit         = details[j].Unit;
                        #endregion

                        if (BindEntity <Model.MZ_PresOrder> .CreateInstanceDAL(oleDb).Exists(details[j].DetailId))
                        {
                            //更新处方明细
                            BindEntity <Model.MZ_PresOrder> .CreateInstanceDAL(oleDb).Update(t_mz_presOrder);
                        }
                        else
                        {
                            //插入新处方明细
                            int ret2 = BindEntity <Model.MZ_PresOrder> .CreateInstanceDAL(oleDb).Add(t_mz_presOrder);

                            details[j].DetailId = ret2;
                        }
                    }
                }

                oleDb.CommitTransaction( );
                return(true);
            }
            catch (OperatorException operr)
            {
                oleDb.RollbackTransaction( );
                throw operr;
            }
            catch (Exception err)
            {
                oleDb.RollbackTransaction( );
                ErrorWriter.WriteLog(err.Message);
                throw new Exception("保存处方发生错误!");
            }
        }
Example #4
0
        /// <summary>
        /// 保存处方
        /// </summary>
        /// <param name="Prescriptions">要保存的处方</param>
        /// <returns>成功标志</returns>
        /// <remarks></remarks>
        public bool SavePrescription(Prescription[] Prescriptions)
        {
            //oleDb.BeginTransaction();
            MSAccessDb.BeginTrans( );
            try
            {
                for (int i = 0; i < Prescriptions.Length; i++)
                {
                    if (!Prescriptions[i].Modified)
                    {
                        continue;
                    }

                    if (Prescriptions[i].PresDetails == null)
                    {
                        continue;
                    }

                    if (Prescriptions[i].PresDetails.Length == 0)
                    {
                        continue;
                    }

                    HIS.Model.MZ_PresMaster t_mz_prescMaster = new HIS.Model.MZ_PresMaster( );
                    #region 赋值
                    t_mz_prescMaster.PatID        = Prescriptions[i].PatientID;
                    t_mz_prescMaster.PatListID    = Prescriptions[i].RegisterID;
                    t_mz_prescMaster.Charge_Flag  = Prescriptions[i].Charge_Flag;
                    t_mz_prescMaster.ChargeCode   = Prescriptions[i].ChargeCode;
                    t_mz_prescMaster.CostMasterID = Prescriptions[i].ChargeID;
                    t_mz_prescMaster.Drug_Flag    = Prescriptions[i].Drug_Flag;
                    t_mz_prescMaster.ExecDeptCode = Prescriptions[i].ExecDeptCode;
                    t_mz_prescMaster.ExecDocCode  = Prescriptions[i].ExecDocCode;
                    t_mz_prescMaster.OldID        = Prescriptions[i].OldPresID;
                    t_mz_prescMaster.PresCostCode = Prescriptions[i].PresCostCode;
                    t_mz_prescMaster.PresMasterID = Prescriptions[i].PrescriptionID;
                    t_mz_prescMaster.PresType     = Prescriptions[i].PrescType;
                    t_mz_prescMaster.PresDeptCode = Prescriptions[i].PresDeptCode;
                    t_mz_prescMaster.PresDocCode  = Prescriptions[i].PresDocCode;
                    t_mz_prescMaster.Record_Flag  = Prescriptions[i].Record_Flag;
                    t_mz_prescMaster.TicketCode   = Prescriptions[i].TicketCode;
                    t_mz_prescMaster.TicketNum    = Prescriptions[i].TicketNum;
                    t_mz_prescMaster.Total_Fee    = Prescriptions[i].Total_Fee;
                    t_mz_prescMaster.PresDate     = Prescriptions[i].PresDate;
                    t_mz_prescMaster.PresAmount   = Prescriptions[i].PresDetails[0].PresAmount;
                    t_mz_prescMaster.Hand_Flag    = (int)OPDOperationType.门诊收费;
                    #endregion
                    if (MSAccessDb.Exists("MZ_PRESMASTER", Tables.mz_presmaster.PRESMASTERID + "=" + Prescriptions[i].PrescriptionID))
                    {
                        MZ_PresMaster mz_presmaster = (MZ_PresMaster)MSAccessDb.GetModel("MZ_PRESMASTER", Tables.mz_presmaster.PRESMASTERID + "=" + Prescriptions[i].PrescriptionID, typeof(MZ_PresMaster));
                        if (mz_presmaster.Charge_Flag == 1)
                        {
                            throw new Exception("处方已收费,不能修改!");
                        }
                        //更新处方头
                        //BindEntity<MZ_PresMaster>.CreateInstanceDAL( oleDb ).Update( t_mz_prescMaster );
                        MSAccessDb.UpdateRecord(t_mz_prescMaster);
                    }
                    else
                    {
                        //插入新处方
                        t_mz_prescMaster.PresMasterID = MSAccessDb.GetMaxID("MZ_PRESMASTER", Tables.mz_presmaster.PRESMASTERID);
                        MSAccessDb.InsertRecord(t_mz_prescMaster, Tables.mz_presmaster.PRESMASTERID);
                        Prescriptions[i].PrescriptionID = t_mz_prescMaster.PresMasterID;
                    }
                    //更新或增加明细
                    PrescriptionDetail[] details = Prescriptions[i].PresDetails;
                    int temp_detail_id           = MSAccessDb.GetMaxID("MZ_PRESORDER", Tables.mz_presorder.PRESORDERID);
                    for (int j = 0; j < details.Length; j++)
                    {
                        HIS.Model.MZ_PresOrder t_mz_presOrder = new HIS.Model.MZ_PresOrder( );
                        #region 赋值
                        t_mz_presOrder.Amount       = details[j].Amount;
                        t_mz_presOrder.BigItemCode  = details[j].BigitemCode;
                        t_mz_presOrder.Buy_Price    = details[j].Buy_price;
                        t_mz_presOrder.CaseID       = details[j].ComplexId;
                        t_mz_presOrder.ItemID       = details[j].ItemId;
                        t_mz_presOrder.ItemName     = details[j].Itemname;
                        t_mz_presOrder.ItemType     = details[j].ItemType;
                        t_mz_presOrder.Order_Flag   = details[j].Order_Flag;
                        t_mz_presOrder.PassID       = details[j].PassId;
                        t_mz_presOrder.PatID        = this.patient.PatID;
                        t_mz_presOrder.PatListID    = this.patient.PatListID;
                        t_mz_presOrder.PresAmount   = details[j].PresAmount;
                        t_mz_presOrder.PresMasterID = Prescriptions[i].PrescriptionID;
                        t_mz_presOrder.PresOrderID  = details[j].DetailId;
                        t_mz_presOrder.RelationNum  = details[j].RelationNum;
                        t_mz_presOrder.Sell_Price   = details[j].Sell_price;
                        t_mz_presOrder.Standard     = details[j].Standard;
                        t_mz_presOrder.Tolal_Fee    = details[j].Tolal_Fee;
                        t_mz_presOrder.Unit         = details[j].Unit;
                        #endregion

                        if (MSAccessDb.Exists("MZ_PRESORDER", Tables.mz_presorder.PRESORDERID + "=" + details[j].DetailId))
                        {
                            //更新处方明细
                            MSAccessDb.UpdateRecord(t_mz_presOrder);
                        }
                        else
                        {
                            //插入新处方明细
                            t_mz_presOrder.PresOrderID = temp_detail_id;
                            int ret2 = MSAccessDb.InsertRecord(t_mz_presOrder, Tables.mz_presorder.PRESORDERID);
                            details[j].DetailId = temp_detail_id;
                            temp_detail_id++;
                        }
                    }
                }

                MSAccessDb.CommitTrans( );
                return(true);
            }
            catch (Exception err)
            {
                MSAccessDb.RollbackTrans( );
                throw new Exception("保存处方发生错误!");
            }
        }