/// <summary> /// 保存模板明细 /// </summary> /// <returns></returns> public WrongDecline SaveModelList(List <HIS.Model.ZY_DOC_ORDERMODELLIST_E> modellist, int model_id) { try { WrongDecline wrong = OrderInfo.OrderCheck.CheckModelOrderData(modellist); if (wrong.err != "0") { return(wrong); } List <HIS.Model.ZY_DOC_ORDERMODELLIST> list = SaveList(modellist, model_id); oleDb.BeginTransaction(); for (int i = 0; i < list.Count; i++) { if (BindEntity <HIS.Model.ZY_DOC_ORDERMODELLIST> .CreateInstanceDAL(oleDb).Exists(list[i].MODELLIST_ID)) { BindEntity <HIS.Model.ZY_DOC_ORDERMODELLIST> .CreateInstanceDAL(oleDb).Update(list[i]); } else { BindEntity <HIS.Model.ZY_DOC_ORDERMODELLIST> .CreateInstanceDAL(oleDb).Add(list[i]); } } oleDb.CommitTransaction(); return(wrong); } catch (System.Exception e) { oleDb.RollbackTransaction(); throw new Exception(e.Message); } }
/// <summary> /// 保存医嘱时操作,(包括修改的) /// </summary> /// <param name="records"></param> /// <param name="patlist"></param> /// <param name="updatarecords"></param> /// <returns></returns> public WrongDecline SaveRecords(int deptid, int ordertype, HIS.Model.ZY_PatList patlist, out string SaveDiscription) { List <HIS.Model.ZY_DOC_ORDERRECORD> orders; List <Model.ZY_DOC_ORDERRECORD> updateorders; SaveDiscription = ""; WrongDecline wrong = SaveOrders.SaveOrder(recordsSon, deptid, ordertype, patlist, out orders, out updateorders); string content = ""; string updatecontent = ""; if (wrong.err == "0") { oleDb.BeginTransaction(); try { for (int i = 0; i < orders.Count; i++) { if (orders[i].ORDER_CONTENT == null || orders[i].ORDER_CONTENT == "") { orders[i].DELETE_FLAG = 1; // * 20100607.0.07 新开一组医嘱,最后一行为空时,保存时报错 continue; } if (orders[i].ORDER_BDATE.ToString() == Convert.ToDateTime("0001-1-1 0:00:00").ToShortDateString() + " " + Convert.ToDateTime("0001-1-1 0:00:00").ToLongTimeString()) { throw new Exception(MessageShows.GetMessages("S02", orders[i].ORDER_CONTENT)); } if ((orders[i].ITEM_TYPE < 4 && orders[i].ITEM_TYPE != 0) && orders[i].ORDER_USAGE == "") { throw new Exception(MessageShows.GetMessages("S03", orders[i].ORDER_CONTENT)); } if (orders[i].ORDER_DOC == 0) { throw new Exception(MessageShows.GetMessages("S04", orders[i].ORDER_CONTENT)); } if (orders[i].PRES_DEPTID == 0) { throw new Exception(MessageShows.GetMessages("S05", orders[i].ORDER_CONTENT)); } if (orders[i].STATUS_FALG == -1) { orders[i].STATUS_FALG = 0; } orders[i].PATID = patlist.PatListID; orders[i].BABYID = 0; orders[i].PAT_DEPTID = Convert.ToInt32(XcConvert.IsNull(patlist.CurrDeptCode, "0")); orders[i].ORECORD_A2 = 1; BindEntity <HIS.Model.ZY_DOC_ORDERRECORD> .CreateInstanceDAL(oleDb).Add(orders[i]); content = content + orders[i].ORDER_CONTENT + "\n"; } for (int i = 0; i < updateorders.Count; i++) { updateorders[i].ORECORD_A2 = 1; string strWhere = Tables.zy_doc_orderrecord.ORDER_ID + oleDb.EuqalTo() + updateorders[i].ORDER_ID; string strSet = Tables.zy_doc_orderrecord.ORDER_USAGE + oleDb.EuqalTo() + "'" + updateorders[i].ORDER_USAGE + "'"; object obj = BindEntity <HIS.Model.ZY_DOC_ORDERRECORD> .CreateInstanceDAL(oleDb).GetFieldValue(Tables.zy_doc_orderrecord.STATUS_FALG, strWhere); if (obj.ToString() == "0" || obj.ToString() == "1") { BindEntity <HIS.Model.ZY_DOC_ORDERRECORD> .CreateInstanceDAL(oleDb).Update(updateorders[i]); } if (obj.ToString() == "2") { BindEntity <HIS.Model.ZY_DOC_ORDERRECORD> .CreateInstanceDAL(oleDb).Update(strWhere, strSet); } updatecontent = updatecontent + updateorders[i].ORDER_CONTENT + "\n"; } if (ordertype == 0) { if (content != "" && updatecontent != "") { SaveDiscription = MessageShows.GetMessages("S06", content, updatecontent); } else if (content != "" && updatecontent == "") { SaveDiscription = MessageShows.GetMessages("S07", content); } else if (updatecontent != "") { SaveDiscription = MessageShows.GetMessages("S08", updatecontent); } } else { if (content != "" && updatecontent != "") { SaveDiscription = MessageShows.GetMessages("S09", content, updatecontent); } else if (content != "" && updatecontent == "") { SaveDiscription = MessageShows.GetMessages("S10", content); } else if (updatecontent != "") { SaveDiscription = MessageShows.GetMessages("S11", updatecontent); } } oleDb.CommitTransaction(); return(wrong); } catch (System.Exception e) { oleDb.RollbackTransaction(); throw new Exception(e.Message); } } return(wrong); }
/// <summary> /// 医嘱保存处理 /// </summary> /// <param name="records"></param> /// <param name="deptid"></param> /// <param name="ordertype"></param> /// <param name="patlistid"></param> /// <param name="order_record"></param> /// <param name="updateorders"></param> public static WrongDecline SaveOrder(List <HIS.Model.zy_doc_orderrecord_son> records, int deptid, int ordertype, HIS.Model.ZY_PatList patlist, out List <HIS.Model.ZY_DOC_ORDERRECORD> order_record, out List <Model.ZY_DOC_ORDERRECORD> update_records) { order_record = new List <HIS.Model.ZY_DOC_ORDERRECORD>(); update_records = new List <HIS.Model.ZY_DOC_ORDERRECORD>(); int group_max = 0;//病人最大医嘱组号 DateTime time = timeformat; DateTime InsertTime = timeformat; WrongDecline wrong = OrderCheck.OrderChecks(records, (OrderType)ordertype); if (records == null) { return(wrong); } if (wrong.err == "0") { #region 分组的处理 for (int i = 0; i < records.Count; i++) { if (records[i].EXEC_DEPT == 0) { records[i].EXEC_DEPT = deptid; } if (records[i].ITEM_TYPE != 7) //不是说明性医嘱的要判断医嘱名称是否合法 { if (records[i].STATUS_FALG < 2) { int itemid = records[i].MAKEDICID == 0 ? records[i].ORDITEM_ID : records[i].MAKEDICID; int type = records[i].ITEM_TYPE; records[i].ORDER_CONTENT = OrderCheck.IsRightName(records[i].ORDER_CONTENT, itemid, type); } } if (records[i].STATUS_FALG == -1 && records[i].ORDER_CONTENT != null && records[i].ORDER_CONTENT != "" && records[i].ORECORD_A2 != 2) { #region 右键插入的行 if (records[i].ORECORD_A1 == 1) { int beginNum = 0; int endNum = 0; int sid = 0; FindBeginEnd(i, records, ref beginNum, ref endNum); int group = records[beginNum].GROUP_ID; InsertTime = records[beginNum].ORDER_BDATE; int _ordertype = records[beginNum].ORDER_TYPE; for (int j = beginNum; j <= endNum; j++) { if (records[j].STATUS_FALG == 0) { records[j].SERIAL_ID = sid; update_records.Add(records[j]); } else { if (_ordertype == 7) { records[j].ORDER_CONTENT = records[j].ORDER_CONTENT + " 「出院带药」"; } if (_ordertype == 5) { records[j].ORDER_CONTENT = records[j].ORDER_CONTENT + " 「交病人」"; } records[j].GROUP_ID = group; records[j].SERIAL_ID = sid; records[j].STATUS_FALG = 0; records[j].ORDER_USAGE = records[beginNum].ORDER_USAGE; records[j].FREQUENCY = records[beginNum].FREQUENCY; records[j].FIRSET_TIMES = records[beginNum].FIRSET_TIMES; records[j].ORDER_TYPE = _ordertype; records[j].ORDER_BDATE = InsertTime; records[j].ORECORD_A1 = 1; records[j].ORECORD_A2 = 1; order_record.Add(records[j]); } sid += 1; } } #endregion #region else { if (records[i].ITEM_TYPE > 3 || records[i].ITEM_TYPE == 0) //不是药品的不分组 { #region 是药品的不分组 if (records[i].BeginTime.ToString() != timeformat.ToString()) { group_max = PubMethd.GetGroupMax(patlist.PatListID, ordertype); records[i].ORDER_BDATE = records[i].BeginTime; time = records[i].BeginTime; } if (records[i].BeginTime.ToString() == timeformat.ToString()) { group_max = PubMethd.GetGroupMax(patlist.PatListID, ordertype); records[i].ORDER_BDATE = time; } records[i].GROUP_ID = group_max; records[i].SERIAL_ID = 0; records[i].STATUS_FALG = 0; order_record.Add(records[i]); #endregion } else //是药品的要分组 { #region 是药品的要分组 int Index = i;; List <HIS.Model.ZY_DOC_ORDERRECORD> list = GroupSave(records, i, ref Index, ordertype, deptid, patlist.PatListID); for (int j = 0; j < list.Count; j++) { order_record.Add(list[j]); } i = Index; #endregion } } #endregion } if (records[i].STATUS_FALG == -1 && records[i].ORECORD_A2 == 2) //如果是修改的再次重新保存 { UpdateSave(records[i], i); update_records.Add(records[i]); } } #endregion } return(wrong); }
/// <summary> /// 保存时检查医嘱的有效性 /// </summary> /// <param name="colid"></param> /// <param name="rowid"></param> /// <param name="itemname">错误费用名称</param> /// <returns></returns> public static WrongDecline CheckModelOrderData(List <HIS.Model.ZY_DOC_ORDERMODELLIST_E> list) { WrongDecline wrong = new WrongDecline(); int count = list.Count; #region 数据合理性判断 if (count == 0) { wrong.SetData(0, 0, "0"); return(wrong); } for (int i = 0; i < count; i++) { //已保存的和说明性医嘱不作判断 if (list[i].FLAG == 1 || list[i].ITEM_TYPE == 7) { continue; } if (list[i].AMOUNT == 0 || list[i].PRESAMOUNT == 0) { wrong.SetData(3, i, "C01", list[i].ITEM_NAME); return(wrong); } if (list[i].AMOUNT <= 0 && list[i].PRESAMOUNT < 0) { wrong.SetData(3, i, "C02", list[i].ITEM_NAME); return(wrong); } if (list[i].ITEM_TYPE < 4 && list[i].ITEM_TYPE > 0) { int unittype = list[i].UNITTYPE; #region 是否非法单位 if (!IsRightUnit(list[i].UNIT, out unittype, list[i].ITEM_ID, list[i].ITEM_TYPE)) { wrong.SetData(4, i, "C03"); return(wrong); } list[i].UNITTYPE = unittype; #endregion #region 是否非法用法 if (!IsGroupFirstRow(list, i)) { continue; } if (!IsRightUsage(list[i].ORDER_USAGE)) { wrong.SetData(5, i, "C04"); return(wrong); } #endregion #region 是否非法频率 if (list[i].ORDER_FRENQUECY == "" || list[i].ORDER_FRENQUECY == null) { wrong.SetData(6, i, "C05"); return(wrong); } if (!IsRightFrequcy(list[i].ORDER_FRENQUECY)) { wrong.SetData(6, i, "C06"); return(wrong); } #endregion } } wrong.SetData(0, 0, "0"); return(wrong); #endregion }
public static WrongDecline OrderChecks(List <HIS.Model.zy_doc_orderrecord_son> records, OrderType ordertype) { WrongDecline wrong = new WrongDecline(); if (records == null) { wrong.SetData(0, 0, "0"); return(wrong); } int count = records.Count; #region 数据合理性判断 if (count == 0) { wrong.SetData(0, 0, "0"); return(wrong); } for (int i = 0; i < count; i++) { if (records[i].ORDER_CONTENT == null || records[i].ORDER_CONTENT == "") { records[i].DELETE_FLAG = 1; continue; } if (records[i].STATUS_FALG > 1)//已经发送的不再判断,医嘱内容为空的直接删除 { continue; } if (records[i].ITEM_TYPE == 10 || records[i].ITEM_TYPE == 7) { continue; } if (records[i].Usage == "皮试" || records[i].Usage == "皮试用") { continue; } records[i].AMOUNT = Convert.ToDecimal(records[i].AMOUNT.ToString("0.000")); if (ordertype == OrderType.临时医嘱) { if (records[i].ITEM_TYPE < 4) { int unittype = records[i].UNITTYPE; #region 是否非法单位 if (!IsRightUnit(records[i].UNIT, out unittype, records[i].MAKEDICID, records[i].ITEM_TYPE)) { wrong.SetData(4, i, "C03"); return(wrong); } records[i].UNITTYPE = unittype; #endregion } if (records[i].AMOUNT == 0 || records[i].PRES_AMOUNT == 0) { wrong.SetData(3, i, "C01", records[i].ORDER_CONTENT); return(wrong); } } if (ordertype == OrderType.长期医嘱) { if (records[i].AMOUNT == 0) { wrong.SetData(3, i, "C01", records[i].ORDER_CONTENT); return(wrong); } } if (records[i].AMOUNT <= 0 || records[i].PRES_AMOUNT < 0) { wrong.SetData(3, i, "C02", records[i].ORDER_CONTENT); return(wrong); } #endregion if (!IsGroupFirstRow(records, i)) //只要每组的第一行作判断 { continue; } //项目也要判断用法和频次是否合法 2010.3.29 if (records[i].ITEM_TYPE > 3 || records[i].ITEM_TYPE == 0) { if (records[i].Usage == "" || records[i].Frency == "" || records[i].Usage == null || records[i].Frency == null)// dt.Rows[i]["Usage"].ToString() == "" || dt.Rows[i]["Frency"].ToString().Trim() == "") { continue; } } #region 是否非法用法 if (!IsRightUsage(records[i].Usage)) { wrong.SetData(5, i, "C04"); return(wrong); } #endregion #region 是否非法频率 if (ordertype == OrderType.长期医嘱 && records[i].Frency == null) //临嘱可以不写频率 (后来修改) { wrong.SetData(6, i, "C05"); return(wrong); } if (!IsRightFrequcy(records[i].Frency)) { wrong.SetData(6, i, "C06"); return(wrong); } #endregion } wrong.SetData(0, 0, "0"); return(wrong); }