/// <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)); }
/// <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); } }
/// <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; } }