Esempio n. 1
0
 /// <summary>
 /// 添加新处方头
 /// </summary>
 /// <param name="medicalApplyList"></param>
 /// <returns></returns>
 private int AddNewPresHead(IList medicalApplyList)
 {
     HIS.Model.Mz_Doc_PresHead presHead = new HIS.Model.Mz_Doc_PresHead();
     presHead.PatId        = (int)this.PatList.PatID;
     presHead.PatListId    = this.PatList.PatListID;
     presHead.PresType     = "00";
     presHead.Pres_Doc     = Public.StaticConfig.CureDocCode;
     presHead.Pres_Dept    = Public.StaticConfig.CureDeptCode;
     presHead.Pres_ExeDept = ((BaseMedical)medicalApplyList[0]).Dept_Id;
     presHead.Pres_Date    = HIS.SYSTEM.PubicBaseClasses.XcDate.ServerDateTime;
     return(BindEntity <Model.Mz_Doc_PresHead> .CreateInstanceDAL(oleDb).Add(presHead));
 }
Esempio n. 2
0
        /// <summary>
        /// 删除整张处方
        /// </summary>
        /// <param name="presHeadId">处方头ID</param>
        /// <returns></returns>
        public int DeletePres(int presHeadId)
        {
            try
            {
                HIS.Model.Mz_Doc_PresHead presHead = BindEntity <HIS.Model.Mz_Doc_PresHead> .CreateInstanceDAL(oleDb).GetModel(presHeadId);

                if (presHead.Pres_Flag > 0)
                {
                    return(presHead.Pres_Flag);
                }
                presHead.Pres_Flag = 3;
                BindEntity <HIS.Model.Mz_Doc_PresHead> .CreateInstanceDAL(oleDb).Update(presHead);

                return(presHead.Pres_Flag);
            }
            catch
            {
                return(-1);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 保存处方
        /// </summary>
        /// <param name="prescriptions">处方明细列表</param>
        /// <returns></returns>
        public bool SavePrescription(List <Prescription> prescriptions)
        {
            oleDb.BeginTransaction();
            try
            {
                int presNo     = 0;
                int presHeadNo = 0;
                foreach (Prescription prescription in prescriptions)
                {
                    if (prescription.PresHeadId > 0)
                    {
                        Model.Mz_Doc_PresHead presHead = BindEntity <Model.Mz_Doc_PresHead> .CreateInstanceDAL(oleDb).GetModel(prescription.PresHeadId);

                        if (presHead.Pres_Flag > 0)
                        {
                            continue;
                        }
                    }
                    prescription.SetRealValue();
                    if (prescription.IsDrug)
                    {
                        HIS.Interface.YP_Data ypdata = new HIS.Interface.YP_Data();
                        decimal sell_price           = 0;
                        decimal buy_price            = 0;
                        decimal currentstorenum      = 0;
                        ypdata.GetDrugStorInfo(prescription.Item_Id, prescription.Dept_Id, out sell_price, out buy_price, out currentstorenum);
                        if (Convert.ToDecimal(prescription.Item_Amount) > currentstorenum)
                        {
                            throw new Exception("" + prescription.Item_Name + "开药总数量大于当前库存,请重开");
                        }
                    }
                    if (prescription.Status == HIS.MZDoc_BLL.Public.PresStatus.新建状态)
                    {
                        if (prescription.PresHeadId == 0)
                        {
                            if (prescription.PresNo != presNo)
                            {
                                presNo = prescription.PresNo;
                                HIS.Model.Mz_Doc_PresHead presHead = new HIS.Model.Mz_Doc_PresHead();
                                presHead.PatId        = (int)this.PatList.PatID;
                                presHead.PatListId    = this.PatList.PatListID;
                                presHead.PresType     = prescription.IsDrug ? prescription.StatItem_Code : "00";
                                presHead.Pres_Doc     = Public.StaticConfig.CureDocCode;
                                presHead.Pres_Dept    = Public.StaticConfig.CureDeptCode;
                                presHead.Pres_ExeDept = prescription.Dept_Id;
                                presHead.Pres_Date    = HIS.SYSTEM.PubicBaseClasses.XcDate.ServerDateTime;
                                presHeadNo            = BindEntity <Model.Mz_Doc_PresHead> .CreateInstanceDAL(oleDb).Add(presHead);
                            }
                            prescription.PresHeadId = presHeadNo;
                        }
                        BindEntity <Model.Mz_Doc_PresList> .CreateInstanceDAL(oleDb).Add(prescription);

                        // 累计常用项
                        if (prescription.IsDrug)
                        {
                            new CommonDrug(oleDb).Increase(prescription.Item_Id, Public.StaticConfig.CureDocCode);
                        }
                        else
                        {
                            new CommonItem(oleDb).Increase(prescription.Item_Id, Public.StaticConfig.CureDocCode);
                        }
                    }
                    else if (prescription.Status == HIS.MZDoc_BLL.Public.PresStatus.修改状态)
                    {
                        BindEntity <Model.Mz_Doc_PresList> .CreateInstanceDAL(oleDb).Update(prescription);
                    }
                }
                oleDb.CommitTransaction();
                this.ChangeCureInfo(HIS.MZDoc_BLL.Public.PatCureStatus.候诊状态);
                return(true);
            }
            catch (Exception e)
            {
                oleDb.RollbackTransaction();
                throw e;
            }
        }