コード例 #1
0
 /// <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);
     }
 }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
ファイル: SaveOrders.cs プロジェクト: yendux/BlueCloudHIS1.2
        /// <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);
        }
コード例 #4
0
        /// <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
        }
コード例 #5
0
        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);
        }