/// <summary> /// 删除处方明细 /// </summary> /// <param name="PrescriptionDetailId">要删除的明细ID</param> /// <returns>被删除的处方明细数</returns> public int DeletePrescriptionDetail(int PrescriptionDetailId) { //HIS.DAL.MZ_PresOrder d_mz_presorder = new HIS.DAL.MZ_PresOrder( ); //d_mz_presorder._oleDB = this.oleDb; HIS.Model.MZ_PresOrder mz_presorder = BindEntity <Model.MZ_PresOrder> .CreateInstanceDAL(oleDb).GetModel(PrescriptionDetailId); HIS.Model.MZ_PresMaster mz_presmaster = BindEntity <Model.MZ_PresMaster> .CreateInstanceDAL(oleDb).GetModel(mz_presorder.PresMasterID); if (mz_presmaster.Charge_Flag == 1) { throw new OperatorException("该处方已经收费,不能删除!"); } oleDb.BeginTransaction(); try { int effectRow = 0; HIS.Model.MZ_PresOrder detail = BindEntity <Model.MZ_PresOrder> .CreateInstanceDAL(oleDb).GetModel(PrescriptionDetailId); BindEntity <Model.MZ_PresOrder> .CreateInstanceDAL(oleDb).Delete(detail.PresOrderID); effectRow++; oleDb.CommitTransaction(); return(effectRow); } catch (Exception err) { oleDb.RollbackTransaction(); ErrorWriter.WriteLog(err.Message); return(0); } }
/// <summary> /// 保存处方明细 /// </summary> /// <param name="Patient"></param> /// <param name="mz_presmaster"></param> /// <param name="base_service_item"></param> /// <returns></returns> private static Model.MZ_PresOrder SavePresOrder(RegPatient Patient, Model.MZ_PresMaster mz_presmaster, Model.BASE_SERVICE_ITEMS base_service_item) { Model.MZ_PresOrder mz_presorder = new HIS.Model.MZ_PresOrder(); mz_presorder.Amount = 1; mz_presorder.BigItemCode = base_service_item.STATITEM_CODE; mz_presorder.Buy_Price = base_service_item.PRICE; mz_presorder.ItemID = base_service_item.ITEM_ID; mz_presorder.ItemName = base_service_item.ITEM_NAME; mz_presorder.ItemType = "00"; mz_presorder.PatID = Patient.PatID; mz_presorder.PatListID = Patient.PatListID; mz_presorder.PresAmount = 1; mz_presorder.PresMasterID = mz_presmaster.PresMasterID; mz_presorder.RelationNum = 1; mz_presorder.Sell_Price = base_service_item.PRICE; mz_presorder.Unit = base_service_item.ITEM_UNIT; mz_presorder.Tolal_Fee = mz_presorder.Amount * mz_presorder.PresAmount * mz_presorder.Sell_Price; BindEntity <Model.MZ_PresOrder> .CreateInstanceDAL(oleDb).Add(mz_presorder); return(mz_presorder); }
/// <summary> /// 保存处方 /// </summary> /// <param name="Prescriptions">要保存的处方</param> /// <returns>成功标志</returns> /// <remarks></remarks> public bool SavePrescription(Prescription[] Prescriptions) { oleDb.BeginTransaction(); 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.门诊收费; 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); } 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; //预留的CASEID用来保存组合项目的ID 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].DocPrescDetailId; //预留的PassID用来保存门诊医生处方明细ID 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 (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("保存处方发生错误!"); } }