示例#1
0
        public override void Send(int orderid, DateTime servertime, ZY_DOC_ORDERRECORD zy_doc_orderrecord, List <int> grouplist)
        {
            //List<int> grouplist = grouplist;
            string   time           = servertime.ToString("yyyy-MM-dd");
            DateTime ServerDateTime = servertime;
            string   strWhere       = Tables.zy_nurse_orderexec.ORDER_ID + oleDb.EuqalTo() + orderid + oleDb.And() + Tables.zy_nurse_orderexec.PATIENT_ID + oleDb.EuqalTo() + zy_doc_orderrecord.PATID + oleDb.And() + Tables.zy_nurse_orderexec.EXEC_DATE + oleDb.EuqalTo() + "'" + time + "'";
            bool     serchRusult    = BindEntity <HIS.Model.ZY_NURSE_ORDEREXEC> .CreateInstanceDAL(oleDb).Exists(strWhere);

            if (serchRusult == false)
            {
                string string1 = "op_date=" + "'" + servertime + "'";
                string string2 = "oprerator=" + Employeeid;
                BindEntity <ZY_DOC_ORDERRECORD> .CreateInstanceDAL(oleDb).Update("order_id=" + orderid, string1, string2);

                int group_id = zy_doc_orderrecord.GROUP_ID;
                grouplist.Add(group_id);
                int    groupnum    = grouplist.Count;
                string order_usage = zy_doc_orderrecord.ORDER_USAGE;
                base.updateTempOrderFlag(zy_doc_orderrecord.ORDER_ID);
                base.insertorderexec(zy_doc_orderrecord.ORDER_ID, base.Employeeid, servertime);
                if (groupnum == 1 || grouplist[groupnum - 1] != grouplist[groupnum - 2])
                {
                    base.InsertTempDrugUsageFee(orderid, zy_doc_orderrecord.GROUP_ID, zy_doc_orderrecord.ORDER_USAGE, ServerDateTime, zy_doc_orderrecord);
                }
            }
        }
示例#2
0
 public override void Send(int orderid, DateTime servertime, ZY_DOC_ORDERRECORD zy_doc_orderrecord, List <int> grouplist)
 {
     base.insertorderexec(orderid, base.Employeeid, servertime);
     base.updateTempOrderFlag(orderid);
     InsertItemFee(orderid, servertime, zy_doc_orderrecord);
     base.InsertTempDrugUsageFee(zy_doc_orderrecord.ORDER_ID, zy_doc_orderrecord.GROUP_ID, zy_doc_orderrecord.ORDER_USAGE, servertime, zy_doc_orderrecord);
 }
        public override void Send(int orderid, DateTime servertime, ZY_DOC_ORDERRECORD zy_doc_orderrecord, List <int> grouplist)
        {
            string   time;
            DateTime ServerDateTime = servertime;

            //List<int> grouplist = grouplist;
            if (zy_doc_orderrecord.PS_ORDERID != Convert.ToDecimal(0) && zy_doc_orderrecord.PS_FLAG == 0)
            {
            }
            else if (zy_doc_orderrecord.ITEM_CODE == "")//  zy_doc_orderrecord.AMOUNT== Convert.ToDecimal(0)) update by heyan  皮试说明数量医生可以修改,不能以数量判断
            {
                string string1 = "op_date=" + "'" + servertime + "'";
                string string2 = "oprerator=" + Employeeid;
                BindEntity <ZY_DOC_ORDERRECORD> .CreateInstanceDAL(oleDb).Update("order_id=" + orderid, string1, string2);

                time = XcDate.ServerDateTime.ToString("yyyy-MM-dd");
                string strWhere    = Tables.zy_nurse_orderexec.ORDER_ID + oleDb.EuqalTo() + orderid + oleDb.And() + Tables.zy_nurse_orderexec.PATIENT_ID + oleDb.EuqalTo() + zy_doc_orderrecord.PATID + oleDb.And() + Tables.zy_nurse_orderexec.EXEC_DATE + oleDb.EuqalTo() + "'" + time + "'";
                bool   serchRusult = BindEntity <HIS.Model.ZY_NURSE_ORDEREXEC> .CreateInstanceDAL(oleDb).Exists(strWhere);

                if (serchRusult == false)
                {
                    int group_id = zy_doc_orderrecord.GROUP_ID;
                    grouplist.Add(group_id);
                    int    groupnum    = grouplist.Count;
                    string order_usage = zy_doc_orderrecord.ORDER_USAGE;
                    base.updateTempOrderFlag(zy_doc_orderrecord.ORDER_ID);
                    base.insertorderexec(zy_doc_orderrecord.ORDER_ID, base.Employeeid, servertime);
                    base.InsertTempDrugUsageFee(orderid, zy_doc_orderrecord.GROUP_ID, zy_doc_orderrecord.ORDER_USAGE, ServerDateTime, zy_doc_orderrecord);
                }
            }
        }
示例#4
0
        public override void Send(int orderid, DateTime servertime, ZY_DOC_ORDERRECORD zy_doc_orderrecord, List <int> grouplist)
        {
            DateTime lastexectime;
            string   strWhere1 = Tables.zy_nurse_orderexec.ORDER_ID + oleDb.EuqalTo() + zy_doc_orderrecord.ORDER_ID + oleDb.And() + Tables.zy_nurse_orderexec.PATIENT_ID + oleDb.EuqalTo() + zy_doc_orderrecord.PATID;
            object   obj       = oleDb.GetDataResult("select max(exec_date) from ZY_NURSE_ORDEREXEC where order_id=" + zy_doc_orderrecord.ORDER_ID);

            if (obj != null && obj != DBNull.Value)
            {
                int hour   = servertime.Hour;
                int minute = servertime.Minute;
                int second = servertime.Second;
                lastexectime = DateTime.Parse(obj.ToString());
                lastexectime = lastexectime.Date.AddHours(hour).AddMinutes(minute).AddSeconds(second);
            }
            else
            {
                lastexectime = servertime.AddDays(-1);
            }
            int days = servertime.Date.Subtract(lastexectime.Date).Days;

            int group_id = zy_doc_orderrecord.GROUP_ID;

            grouplist.Add(group_id);
            int groupnum = grouplist.Count;

            for (int j = 0; j < days; j++)
            {
                DateTime time = lastexectime.AddDays(j + 1);
                if (zy_doc_orderrecord.ORDER_BDATE.ToString("yyyy-MM-dd") == time.ToString("yyyy-MM-dd") && (zy_doc_orderrecord.FIRSET_TIMES == 0) && (zy_doc_orderrecord.TEMINAL_TIMES == 0))
                {
                    base.updateLongOrderFlag(zy_doc_orderrecord.ORDER_ID);
                    base.insertlongorderexec(zy_doc_orderrecord, base.Employeeid, servertime);
                }

                string strWhere    = Tables.zy_nurse_orderexec.ORDER_ID + oleDb.EuqalTo() + zy_doc_orderrecord.ORDER_ID + oleDb.And() + Tables.zy_nurse_orderexec.PATIENT_ID + oleDb.EuqalTo() + zy_doc_orderrecord.PATID + oleDb.And() + Tables.zy_nurse_orderexec.EXEC_DATE + oleDb.EuqalTo() + "'" + time.ToString("yyyy-MM-dd") + "'";
                bool   serchRusult = BindEntity <HIS.Model.ZY_NURSE_ORDEREXEC> .CreateInstanceDAL(oleDb).Exists(strWhere);

                if (serchRusult == false)
                {
                    //int group_id = zy_doc_orderrecord.GROUP_ID;
                    //grouplist.Add(group_id);
                    //int groupnum = grouplist.Count;
                    string order_usage = zy_doc_orderrecord.ORDER_USAGE;
                    base.updateLongOrderFlag(zy_doc_orderrecord.ORDER_ID);
                    base.insertlongorderexec(zy_doc_orderrecord, base.Employeeid, time);
                    if (groupnum == 1 || grouplist[groupnum - 1] != grouplist[groupnum - 2])
                    {
                        base.InsertDrugFee(zy_doc_orderrecord.ORDER_ID, time, zy_doc_orderrecord);
                        base.InsertDrugUsageFee(zy_doc_orderrecord.ORDER_ID, zy_doc_orderrecord.GROUP_ID, zy_doc_orderrecord.ORDER_USAGE, time, zy_doc_orderrecord);
                    }
                    else
                    {
                        base.InsertDrugFee(zy_doc_orderrecord.ORDER_ID, time, zy_doc_orderrecord);
                    }
                }
            }
        }
        public override void Send(int orderid, DateTime servertime, ZY_DOC_ORDERRECORD zy_doc_orderrecord, List <int> grouplist)
        {
            int       itemid;
            DataTable dt = base.TcgetOrderItem(zy_doc_orderrecord.TC_ID);

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                itemid = Convert.ToInt32(dt.Rows[i]["item_id"].ToString());
                InsertComponentItemFee(orderid, itemid, servertime, zy_doc_orderrecord);
            }
            base.insertorderexec(orderid, base.Employeeid, servertime);
            base.updateTempOrderFlag(orderid);
        }
示例#6
0
        public bool Send(List <int> orderidlist, int employee_id, int patlist_id)
        {
            try
            {
                int        patlistid       = patlist_id;
                List <int> orderid         = orderidlist;
                List <int> grouplist       = new List <int>();
                DateTime   ServerDateTime  = XcDate.ServerDateTime;
                string     exceptionString = "";
                for (int arraynum = 0; arraynum < orderid.Count; arraynum++)
                {
                    ZY_DOC_ORDERRECORD orderrecord = new ZY_DOC_ORDERRECORD();
                    string             strwhere1   = "order_id=" + orderid[arraynum];
                    orderrecord = BindEntity <ZY_DOC_ORDERRECORD> .CreateInstanceDAL(oleDb).GetModel(orderid[arraynum]);

                    if (orderrecord.STATUS_FALG == 5) //防止同时打开多个窗口,临嘱点两次发送时产生两次费用的并发问题 2010.10.14 add by heyan
                    {
                        continue;
                    }
                    AbstractOrderOperation concreteOrder = OrderOperationFactory.CreateConcreteOrder(orderrecord);
                    concreteOrder.Zy_doc_orderrecord = orderrecord;
                    concreteOrder.Employeeid         = employee_id;
                    concreteOrder.ServerTime         = ServerDateTime;
                    try
                    {
                        oleDb.BeginTransaction();
                        concreteOrder.Send(orderid[arraynum], ServerDateTime, orderrecord, grouplist);
                        oleDb.CommitTransaction();
                    }
                    catch (Exception e)
                    {
                        exceptionString += e.Message;
                        oleDb.RollbackTransaction();
                        continue;
                    }
                }
                if (exceptionString != "")
                {
                    throw new Exception(exceptionString);
                }
                return(true);
            }
            catch (Exception e)
            {
                // throw e;
                throw new Exception(e.Message);
            }
        }
示例#7
0
        public override void Send(int orderid, DateTime servertime, ZY_DOC_ORDERRECORD zy_doc_orderrecord, List <int> grouplist)
        {
            //DateTime time = servertime;
            if (zy_doc_orderrecord.STATUS_FALG == 4)
            {
                base.updateLongOrderFlag(orderid);
            }
            else
            {
                DateTime lastexectime;
                string   strWhere1 = Tables.zy_nurse_orderexec.ORDER_ID + oleDb.EuqalTo() + zy_doc_orderrecord.ORDER_ID + oleDb.And() + Tables.zy_nurse_orderexec.PATIENT_ID + oleDb.EuqalTo() + zy_doc_orderrecord.PATID;
                object   obj       = oleDb.GetDataResult("select max(exec_date) from ZY_NURSE_ORDEREXEC where order_id=" + zy_doc_orderrecord.ORDER_ID);
                if (obj != null && obj != DBNull.Value)
                {
                    int hour   = servertime.Hour;
                    int minute = servertime.Minute;
                    int second = servertime.Second;
                    lastexectime = DateTime.Parse(obj.ToString());
                    lastexectime = lastexectime.Date.AddHours(hour).AddMinutes(minute).AddSeconds(second);
                }
                else
                {
                    lastexectime = servertime.AddDays(-1);
                }
                int days = servertime.Date.Subtract(lastexectime.Date).Days;

                for (int j = 0; j < days; j++)
                {
                    DateTime time        = lastexectime.AddDays(j + 1);
                    string   strWhere    = Tables.zy_nurse_orderexec.ORDER_ID + oleDb.EuqalTo() + zy_doc_orderrecord.ORDER_ID + oleDb.And() + Tables.zy_nurse_orderexec.PATIENT_ID + oleDb.EuqalTo() + zy_doc_orderrecord.PATID + oleDb.And() + Tables.zy_nurse_orderexec.EXEC_DATE + oleDb.EuqalTo() + "'" + time.ToString("yyyy-MM-dd") + "'";
                    bool     serchRusult = BindEntity <HIS.Model.ZY_NURSE_ORDEREXEC> .CreateInstanceDAL(oleDb).Exists(strWhere);

                    if (serchRusult == false)
                    {
                        //base.insertlongorderexec(zy_doc_orderrecord, base.Employeeid, time);
                        base.insertorderexec(zy_doc_orderrecord.ORDER_ID, base.Employeeid, time);
                        base.updateLongOrderFlag(orderid);
                        updateSendTime(orderid, servertime);
                    }
                }
            }
        }
示例#8
0
        /// <summary>
        /// 获取某条医嘱明细的用法大类
        /// </summary>
        /// <param name="docOrderId">医嘱明细ID</param>
        /// <returns>用法大类</returns>
        public DataTable GetUseType(int docOrderId)
        {
            try
            {
                ZY_DOC_ORDERRECORD orderRecord = BindEntity <ZY_DOC_ORDERRECORD> .CreateInstanceDAL(oleDb).GetModel(docOrderId);

                if (orderRecord != null)
                {
                    string strSql = "select TYPE_NAME from BASE_USAGE_USETYPE_ROLE A where A.USAGE_ID=(select ID from BASE_USAGEDICTION where NAME='"
                                    + orderRecord.ORDER_USAGE + "')";
                    return(oleDb.GetDataTable(strSql));
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception error)
            {
                throw error;
            }
        }
示例#9
0
        public bool Send(List <int> orderidlist, int employee_id, int patlist_id)
        {
            try
            {
                int        patlistid      = patlist_id;
                List <int> orderid        = orderidlist;
                List <int> grouplist      = new List <int>();
                DateTime   ServerDateTime = XcDate.ServerDateTime.Date.AddDays(1).AddHours(14);

                for (int arraynum = 0; arraynum < orderid.Count; arraynum++)
                {
                    try
                    {
                        oleDb.BeginTransaction();
                        ZY_DOC_ORDERRECORD orderrecord = new ZY_DOC_ORDERRECORD();
                        string             strwhere1   = "order_id=" + orderid[arraynum];
                        orderrecord = BindEntity <ZY_DOC_ORDERRECORD> .CreateInstanceDAL(oleDb).GetModel(orderid[arraynum]);

                        AbstractOrderOperation concreteOrder = OrderOperationFactory.CreateConcreteOrder(orderrecord);
                        concreteOrder.Zy_doc_orderrecord = orderrecord;
                        concreteOrder.Employeeid         = employee_id;
                        concreteOrder.ServerTime         = ServerDateTime;
                        concreteOrder.Send(orderid[arraynum], ServerDateTime, orderrecord, grouplist);
                        oleDb.CommitTransaction();
                    }
                    catch
                    {
                        oleDb.RollbackTransaction();
                    }
                }

                return(true);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
示例#10
0
        public string GetDocOrderInfo(int docOrderId)
        {
            try
            {
                ZY_DOC_ORDERRECORD orderRecord = BindEntity <ZY_DOC_ORDERRECORD> .CreateInstanceDAL(oleDb).GetModel(docOrderId);

                if (orderRecord != null)
                {
                    return(orderRecord.ORDER_CONTENT + "  " + orderRecord.AMOUNT.ToString() + "  " +
                           orderRecord.UNIT.ToString() + "  " + orderRecord.FREQUENCY + "  "
                           + orderRecord.ORDER_USAGE + "  " + orderRecord.ORDER_STRUC + "  ["
                           + orderRecord.ORDER_SPEC + "]");
                }
                else
                {
                    return("未找到对应医嘱内容");
                }
            }
            catch (Exception error)
            {
                throw error;
            }
        }
示例#11
0
        /// <summary>
        /// 长期医嘱用法联动费用
        /// </summary>
        public void InsertDrugUsageFee(int order_id, int group_id, string order_usage, DateTime server_time, ZY_DOC_ORDERRECORD zy_nurse_orderrecord)
        {
            int       orderid    = order_id;
            int       groupid    = group_id;
            string    orderusage = order_usage;
            DateTime  servertime = server_time;
            string    strWhere   = "use_name=" + "'" + orderusage + "'";
            DataTable dt         = BindEntity <object> .CreateInstanceDAL(oleDb, Views.VI_USEAGE_FEE).GetList(strWhere, "item_id", "num");

            try
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    if (dt.Rows[i][0].ToString() != "")
                    {
                        int item_id = Convert.ToInt32(dt.Rows[i][0].ToString());
                        int num     = Convert.ToInt32(dt.Rows[i][1].ToString());
                        Model.ZY_PresOrder presorder = new ZY_PresOrder();
                        //Model.ZY_PresMaster premaster = new ZY_PresMaster();

                        presorder.PatListID    = zy_nurse_orderrecord.PATID;
                        presorder.MarkDate     = zy_nurse_orderrecord.TRANS_DATE;
                        presorder.PresDate     = zy_nurse_orderrecord.ORDER_BDATE;
                        presorder.PresDocCode  = zy_nurse_orderrecord.ORDER_DOC.ToString();
                        presorder.PresDeptCode = zy_nurse_orderrecord.PRES_DEPTID.ToString();
                        presorder.ExecDeptCode = zy_nurse_orderrecord.PRES_DEPTID.ToString();//update by heyan 2010.10.8 联动项目的执行科室为开方科室
                        presorder.order_id     = zy_nurse_orderrecord.ORDER_ID;
                        presorder.group_id     = zy_nurse_orderrecord.GROUP_ID;
                        presorder.order_type   = zy_nurse_orderrecord.ORDER_TYPE;
                        DateTime order_bdate    = zy_nurse_orderrecord.ORDER_BDATE;
                        DateTime order_edate    = zy_nurse_orderrecord.EORDER_DATE;
                        string   frequency_time = zy_nurse_orderrecord.FREQUENCY;
                        int      firset_times   = zy_nurse_orderrecord.FIRSET_TIMES;
                        int      teminal_times  = Convert.ToInt32(XcConvert.IsNull(zy_nurse_orderrecord.TEMINAL_TIMES, "0"));
                        DateTime currenttime    = servertime;
                        string   strWhere2      = "patlistid=" + presorder.PatListID;
                        string   str2           = "patid";
                        presorder.PatID = Convert.ToInt32(BindEntity <HIS.Model.ZY_PatList> .CreateInstanceDAL(oleDb).GetFieldValue(str2, strWhere2));
                        string strWhere3 = "name='" + frequency_time + "'";
                        string str3      = "execnum";
                        int    execNum;
                        if (currenttime.ToString("yyyy-MM-dd") == order_bdate.ToString("yyyy-MM-dd") && currenttime.ToString("yyyy-MM-dd") == order_edate.ToString("yyyy-MM-dd"))//11月22日加,解决如果长嘱当天开,当天停,以末次计数
                        {
                            execNum = teminal_times;
                        }
                        else if (currenttime.ToString("yyyy-MM-dd") == order_bdate.ToString("yyyy-MM-dd"))
                        {
                            execNum = firset_times;
                        }
                        else if (currenttime.ToString("yyyy-MM-dd") == order_edate.ToString("yyyy-MM-dd"))
                        {
                            execNum = teminal_times;
                        }
                        else
                        {
                            if (frequency_time == "1" || frequency_time == "" || frequency_time == null)
                            {
                                execNum = 1;
                            }
                            else
                            {
                                execNum = Convert.ToInt32(BindEntity <HIS.Model.Base_Frequency> .CreateInstanceDAL(oleDb).GetFieldValue(str3, strWhere3));
                            }
                        }
                        string   strWhere4 = "server_item_id=" + item_id + " and drug_flag=0";
                        string[] str4      = new string[9];
                        str4[0] = "packunit";
                        str4[1] = "leastunit";
                        str4[2] = "packnum";
                        str4[3] = "buy_price";
                        str4[4] = "sell_price";
                        str4[5] = "standard";
                        str4[6] = "server_item_id";
                        str4[7] = "statitem_code";
                        str4[8] = "ItemName";
                        DataTable dt4 = BindEntity <object> .CreateInstanceDAL(oleDb, Views.VI_CLINICAL_ALL_ITEMS).GetList(strWhere4, str4);

                        presorder.PackUnit    = dt4.Rows[0]["packunit"].ToString();
                        presorder.Unit        = dt4.Rows[0]["leastunit"].ToString();
                        presorder.RelationNum = Convert.ToDecimal(dt4.Rows[0]["packnum"].ToString());
                        presorder.Buy_Price   = Convert.ToDecimal(dt4.Rows[0]["buy_price"].ToString());
                        presorder.Sell_Price  = Convert.ToDecimal(dt4.Rows[0]["sell_price"].ToString());
                        presorder.Standard    = dt4.Rows[0]["standard"].ToString();
                        presorder.PresType    = Convert.ToString(4);
                        presorder.ItemID      = Convert.ToInt32(dt4.Rows[0]["server_item_id"].ToString());
                        presorder.ItemType    = dt4.Rows[0]["statitem_code"].ToString();
                        string strWhere6 = "item_id=" + item_id;
                        object obj       = BindEntity <BASE_SERVICE_ITEMS> .CreateInstanceDAL(oleDb).GetFieldValue("item_name", strWhere6);

                        presorder.ItemName    = obj.ToString();
                        presorder.Amount      = execNum * num;
                        presorder.CostDate    = servertime;
                        presorder.ChargeCode  = Convert.ToString(base.Employeeid);
                        presorder.Charge_Flag = 1;
                        presorder.Drug_Flag   = 1;
                        presorder.Tolal_Fee   = presorder.Amount * presorder.Sell_Price;
                        presorder.Tolal_Fee   = Convert.ToDecimal(presorder.Tolal_Fee.ToString("0.00"));
                        BindEntity <ZY_PresOrder> .CreateInstanceDAL(oleDb).Add(presorder);

                        //premaster.PatListID = presorder.PatListID;
                        //premaster.PatID = presorder.PatID;
                        //premaster.PresType = Convert.ToString(1);
                        //BindEntity<ZY_PresMaster>.CreateInstanceDAL(oleDb).Add(premaster);

                        //string strWhere5 = "presorderid=" + presorder.PresOrderID;
                        //string updatefile = Tables.zy_presorder.PRESMASTERID + oleDb.EuqalTo() + premaster.PresMasterID;
                        //BindEntity<HIS.Model.ZY_PresOrder>.CreateInstanceDAL(oleDb).Update(strWhere5, updatefile);
                    }
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
示例#12
0
        public static AbstractOrderOperation CreateConcreteOrder(ZY_DOC_ORDERRECORD zy_doc_orderrecord)
        {
            AbstractOrderOperation orderOperation = null;

            if (zy_doc_orderrecord.ITEM_TYPE < 4)
            {
                if (zy_doc_orderrecord.ORDER_TYPE == 0 && zy_doc_orderrecord.EXEC_DEPT == -1)//长期自备药
                {
                    orderOperation = new SelfPrepareDrug();
                }
                else if (zy_doc_orderrecord.ORDER_TYPE == 0 && zy_doc_orderrecord.STATUS_FALG == 4)//长期停药品
                {
                    orderOperation = new NormalStopDrug();
                }
                else if (zy_doc_orderrecord.ORDER_TYPE == 0)//长期正常药
                {
                    orderOperation = new NormalDrug();
                }
                else if (zy_doc_orderrecord.ORDER_TYPE == 7)//出院带药
                {
                    orderOperation = new OutHospitalDrug();
                }
                else if (zy_doc_orderrecord.ORDER_TYPE == 1 && zy_doc_orderrecord.EXEC_DEPT == -1)//临嘱自备药
                {
                    orderOperation = new SelfPrepareTempDrug();
                }
                else if (zy_doc_orderrecord.ORDER_TYPE == 1 && zy_doc_orderrecord.PS_ORDERID != 0 && zy_doc_orderrecord.ITEM_CODE == "")//皮试医嘱 update by heyan  皮试说明数量医生可以修改,不能以数量判断
                {
                    orderOperation = new PsStatementOrder();
                }
                else if (zy_doc_orderrecord.ORDER_TYPE == 5)//交病人
                {
                    orderOperation = new NormalTempDrug();
                }
                else if (zy_doc_orderrecord.ORDER_TYPE == 1)//临时正常药品
                {
                    orderOperation = new NormalTempDrug();
                }
            }
            else if (zy_doc_orderrecord.ITEM_TYPE == 7 || zy_doc_orderrecord.ITEM_TYPE == 10)
            {
                if (zy_doc_orderrecord.ITEM_TYPE == 7 && zy_doc_orderrecord.ORDER_TYPE == 0)//长期说明性
                {
                    orderOperation = new LongStateOrder();
                }
                else if (zy_doc_orderrecord.ITEM_TYPE == 7 && zy_doc_orderrecord.ORDER_TYPE == 1)//临时说明性
                {
                    orderOperation = new TempStateOrder();
                }
                else if (zy_doc_orderrecord.ITEM_TYPE == 10 && zy_doc_orderrecord.ORDER_TYPE == 0)//产后术后
                {
                    orderOperation = new PregOrder();
                }
                else if (zy_doc_orderrecord.ITEM_TYPE == 10 && zy_doc_orderrecord.ORDER_TYPE == 1)//出院死亡转科
                {
                    orderOperation = new OutDeathOrder();
                }
            }
            else
            {
                if (zy_doc_orderrecord.ORDER_TYPE == 0 && zy_doc_orderrecord.TC_ID == 0 && zy_doc_orderrecord.STATUS_FALG == 4)//长期停项目
                {
                    orderOperation = new LongStopItem();
                }
                else if (zy_doc_orderrecord.ORDER_TYPE == 0 && zy_doc_orderrecord.TC_ID == 0)//长期单条医嘱
                {
                    orderOperation = new LongSingleItem();
                }
                else if (zy_doc_orderrecord.ORDER_TYPE == 0 && zy_doc_orderrecord.TC_ID != 0)//长期组合项目
                {
                    orderOperation = new LongComponentItem();
                }
                else if (zy_doc_orderrecord.ORDER_TYPE == 1 && zy_doc_orderrecord.TC_ID == 0)//临时单条医嘱
                {
                    orderOperation = new TempSingleItem();
                }
                else if (zy_doc_orderrecord.ORDER_TYPE == 1 && zy_doc_orderrecord.TC_ID != 0)//临时组合医嘱
                {
                    orderOperation = new TempComponentItem();
                }
            }
            return(orderOperation);
        }
        protected void insertlongorderexec(ZY_DOC_ORDERRECORD zy_doc_orderrecord, long employeeid, DateTime serverdatetime)
        {
            try
            {
                //string strWhere = Tables.zy_doc_orderrecord.ORDER_ID + oleDb.EuqalTo() + orderid;
                //object obj = BindEntity<HIS.Model.ZY_DOC_ORDERRECORD>.CreateInstanceDAL(oleDb).GetFieldValue(Tables.zy_doc_orderrecord.PATID, strWhere);
                //int patlistid = int.Parse(obj.ToString());
                string frequencys;
                int    patlistid = zy_doc_orderrecord.PATID;
                string time      = serverdatetime.ToString("yyyy-MM-dd");
                string realtime  = XcDate.ServerDateTime.ToString("yyyy-MM-dd");

                if (zy_doc_orderrecord.FREQUENCY == "")
                {
                    frequencys = "Qd";
                }
                else
                {
                    frequencys = zy_doc_orderrecord.FREQUENCY;
                }

                string strWhere1 = Tables.base_frequency.NAME + oleDb.EuqalTo() + "'" + frequencys + "'";
                object obj1      = BindEntity <Base_Frequency> .CreateInstanceDAL(oleDb).GetFieldValue(Tables.base_frequency.CYCLEDAY, strWhere1);

                int cycleday = int.Parse(obj1.ToString());

                if (cycleday == 1)
                {
                    string[] filedname = new string[5];
                    filedname[0] = Tables.zy_nurse_orderexec.ORDER_ID;
                    filedname[1] = Tables.zy_nurse_orderexec.EXEC_DATE;
                    filedname[2] = Tables.zy_nurse_orderexec.EXEC_USER;
                    filedname[3] = Tables.zy_nurse_orderexec.PATIENT_ID;
                    filedname[4] = Tables.zy_nurse_orderexec.REALEXEC_TIME;

                    string[] values = new string[5];
                    values[0] = zy_doc_orderrecord.ORDER_ID.ToString();
                    values[1] = "'" + time + "'";
                    values[2] = employeeid.ToString();
                    values[3] = patlistid.ToString();
                    values[4] = "'" + realtime + "'";

                    bool[] questiong = new bool[5];
                    questiong[0] = false;
                    questiong[1] = false;
                    questiong[2] = false;
                    questiong[3] = false;
                    questiong[4] = false;
                    BindEntity <HIS.Model.ZY_NURSE_ORDEREXEC> .CreateInstanceDAL(oleDb).Add(filedname, values, questiong);
                }
                else
                {
                    for (int i = 0; i < cycleday; i++)
                    {
                        time = serverdatetime.AddDays(i).ToString("yyyy-MM-dd");

                        string[] filedname = new string[5];
                        filedname[0] = Tables.zy_nurse_orderexec.ORDER_ID;
                        filedname[1] = Tables.zy_nurse_orderexec.EXEC_DATE;
                        filedname[2] = Tables.zy_nurse_orderexec.EXEC_USER;
                        filedname[3] = Tables.zy_nurse_orderexec.PATIENT_ID;
                        filedname[4] = Tables.zy_nurse_orderexec.REALEXEC_TIME;

                        string[] values = new string[5];
                        values[0] = zy_doc_orderrecord.ORDER_ID.ToString();
                        values[1] = "'" + time + "'";
                        values[2] = employeeid.ToString();
                        values[3] = patlistid.ToString();
                        values[4] = "'" + realtime + "'";

                        bool[] questiong = new bool[5];
                        questiong[0] = false;
                        questiong[1] = false;
                        questiong[2] = false;
                        questiong[3] = false;
                        questiong[4] = false;
                        BindEntity <HIS.Model.ZY_NURSE_ORDEREXEC> .CreateInstanceDAL(oleDb).Add(filedname, values, questiong);
                    }
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
示例#14
0
 public virtual void InsertDrugFee(int order_id, DateTime server_datetime, ZY_DOC_ORDERRECORD zy_doc_orderrecord)
 {
 }
示例#15
0
 public override void Send(int orderid, DateTime servertime, ZY_DOC_ORDERRECORD zy_doc_orderrecord, List <int> grouplist)
 {
     base.updateTempOrderFlag(zy_doc_orderrecord.ORDER_ID);
     base.InsertDrugFee(orderid, servertime, zy_doc_orderrecord);
 }
示例#16
0
        public override void Send(int orderid, DateTime servertime, ZY_DOC_ORDERRECORD zy_doc_orderrecord, List <int> grouplist)
        {
            //List<int> grouplist = grouplist;
            string time;

            if (zy_doc_orderrecord.STATUS_FALG == 4)//11月24日修改,增加自备药末次停和执行处理,自备药停操作
            {
                time = servertime.ToString("yyyy-MM-dd");
                string strWhere    = Tables.zy_nurse_orderexec.ORDER_ID + oleDb.EuqalTo() + orderid + oleDb.And() + Tables.zy_nurse_orderexec.PATIENT_ID + oleDb.EuqalTo() + zy_doc_orderrecord.PATID + oleDb.And() + Tables.zy_nurse_orderexec.EXEC_DATE + oleDb.EuqalTo() + "'" + time + "'";
                bool   serchRusult = BindEntity <HIS.Model.ZY_NURSE_ORDEREXEC> .CreateInstanceDAL(oleDb).Exists(strWhere);

                if (serchRusult == false)
                {
                    string string1 = "op_date=" + "'" + servertime + "'";
                    string string2 = "oprerator=" + Employeeid;
                    BindEntity <ZY_DOC_ORDERRECORD> .CreateInstanceDAL(oleDb).Update("order_id=" + orderid, string1, string2);

                    int group_id = zy_doc_orderrecord.GROUP_ID;
                    grouplist.Add(group_id);
                    int    groupnum    = grouplist.Count;
                    string order_usage = zy_doc_orderrecord.ORDER_USAGE;
                    base.updateLongOrderFlag(zy_doc_orderrecord.ORDER_ID);
                    base.insertlongorderexec(zy_doc_orderrecord, base.Employeeid, servertime);
                    if (groupnum == 1 || grouplist[groupnum - 1] != grouplist[groupnum - 2])
                    {
                        base.InsertDrugUsageFee(zy_doc_orderrecord.ORDER_ID, zy_doc_orderrecord.GROUP_ID, zy_doc_orderrecord.ORDER_USAGE, servertime, zy_doc_orderrecord);
                    }
                }
                else
                {
                    base.updateLongOrderFlag(zy_doc_orderrecord.ORDER_ID);
                }
            }
            else//正常自备药流程
            {
                DateTime lastexectime;
                string   strWhere1 = Tables.zy_nurse_orderexec.ORDER_ID + oleDb.EuqalTo() + zy_doc_orderrecord.ORDER_ID + oleDb.And() + Tables.zy_nurse_orderexec.PATIENT_ID + oleDb.EuqalTo() + zy_doc_orderrecord.PATID;
                object   obj       = oleDb.GetDataResult("select max(exec_date) from ZY_NURSE_ORDEREXEC where order_id=" + zy_doc_orderrecord.ORDER_ID);
                if (obj != null && obj != DBNull.Value)
                {
                    int hour   = servertime.Hour;
                    int minute = servertime.Minute;
                    int second = servertime.Second;
                    lastexectime = DateTime.Parse(obj.ToString());
                    lastexectime = lastexectime.Date.AddHours(hour).AddMinutes(minute).AddSeconds(second);
                }
                else
                {
                    lastexectime = servertime.AddDays(-1);
                }
                int days = servertime.Date.Subtract(lastexectime.Date).Days;

                int group_id = zy_doc_orderrecord.GROUP_ID;
                grouplist.Add(group_id);
                int groupnum = grouplist.Count;

                for (int j = 0; j < days; j++)
                {
                    DateTime exectime = lastexectime.AddDays(j + 1);
                    //time = servertime.ToString("yyyy-MM-dd");
                    string strWhere    = Tables.zy_nurse_orderexec.ORDER_ID + oleDb.EuqalTo() + orderid + oleDb.And() + Tables.zy_nurse_orderexec.PATIENT_ID + oleDb.EuqalTo() + zy_doc_orderrecord.PATID + oleDb.And() + Tables.zy_nurse_orderexec.EXEC_DATE + oleDb.EuqalTo() + "'" + exectime.ToString("yyyy-MM-dd") + "'";
                    bool   serchRusult = BindEntity <HIS.Model.ZY_NURSE_ORDEREXEC> .CreateInstanceDAL(oleDb).Exists(strWhere);

                    if (serchRusult == false)
                    {
                        string string1 = "op_date=" + "'" + exectime + "'";
                        string string2 = "oprerator=" + Employeeid;
                        BindEntity <ZY_DOC_ORDERRECORD> .CreateInstanceDAL(oleDb).Update("order_id=" + orderid, string1, string2);

                        //int group_id = zy_doc_orderrecord.GROUP_ID;
                        //grouplist.Add(group_id);
                        //int groupnum = grouplist.Count;
                        string order_usage = zy_doc_orderrecord.ORDER_USAGE;
                        base.updateLongOrderFlag(zy_doc_orderrecord.ORDER_ID);
                        base.insertlongorderexec(zy_doc_orderrecord, base.Employeeid, exectime);
                        if (groupnum == 1 || grouplist[groupnum - 1] != grouplist[groupnum - 2])
                        {
                            base.InsertDrugUsageFee(zy_doc_orderrecord.ORDER_ID, zy_doc_orderrecord.GROUP_ID, zy_doc_orderrecord.ORDER_USAGE, exectime, zy_doc_orderrecord);
                        }
                    }
                }
            }
        }
示例#17
0
        public override void InsertItemFee(int order_id, DateTime server_datetime, ZY_DOC_ORDERRECORD zy_doc_orderrecord)
        {
            DateTime ServerDateTime = server_datetime;
            int      employeeid     = base.Employeeid;
            int      orderid        = order_id;
            int      itemid;

            Model.ZY_PresOrder presorder = new ZY_PresOrder();
            //Model.ZY_PresMaster premaster = new ZY_PresMaster();
            string strwhere1 = "order_id=" + orderid;
            string string1   = "op_date=" + "'" + ServerDateTime + "'";
            string string2   = "oprerator=" + employeeid;

            BindEntity <ZY_DOC_ORDERRECORD> .CreateInstanceDAL(oleDb).Update(strwhere1, string1, string2);

            presorder.PatListID    = zy_doc_orderrecord.PATID;
            presorder.MarkDate     = zy_doc_orderrecord.TRANS_DATE;
            presorder.PresDate     = zy_doc_orderrecord.ORDER_BDATE;
            presorder.PresDocCode  = zy_doc_orderrecord.ORDER_DOC.ToString();
            presorder.PresDeptCode = zy_doc_orderrecord.PRES_DEPTID.ToString();
            presorder.ExecDeptCode = zy_doc_orderrecord.EXEC_DEPT.ToString();
            itemid             = zy_doc_orderrecord.ORDITEM_ID;
            presorder.ItemName = zy_doc_orderrecord.ORDER_CONTENT;
            presorder.order_id = zy_doc_orderrecord.ORDER_ID;
            presorder.group_id = zy_doc_orderrecord.GROUP_ID;
            string ordercontent = zy_doc_orderrecord.ORDER_CONTENT;

            presorder.order_type = 1;
            int     unit_type      = zy_doc_orderrecord.UNITTYPE;
            int     item_type      = zy_doc_orderrecord.ITEM_TYPE;
            string  frequency_time = zy_doc_orderrecord.FREQUENCY != "0" ? zy_doc_orderrecord.FREQUENCY : "1";
            decimal num            = zy_doc_orderrecord.AMOUNT;
            decimal pres_amount    = zy_doc_orderrecord.PRES_AMOUNT;
            string  strWhere4      = "patlistid=" + presorder.PatListID;
            string  str4           = "patid";

            presorder.PatID = Convert.ToInt32(BindEntity <HIS.Model.ZY_PatList> .CreateInstanceDAL(oleDb).GetFieldValue(str4, strWhere4));

            string strWhere6 = "name='" + frequency_time + "'";
            string str6      = "execnum";
            int    execNum;

            if (frequency_time == "1" || frequency_time == "" || frequency_time == null)
            {
                execNum = 1;
            }
            else
            {
                execNum = Convert.ToInt32(BindEntity <HIS.Model.Base_Frequency> .CreateInstanceDAL(oleDb).GetFieldValue(str6, strWhere6));
            }
            presorder.CostDate    = ServerDateTime;
            presorder.ChargeCode  = Convert.ToString(base.Employeeid);
            presorder.Charge_Flag = 1;
            string strWhere2 = "itemid=" + itemid + "  and order_type=" + item_type + " and drug_flag=0";

            string[] str2 = new string[7];
            str2[0] = "packunit";
            str2[1] = "leastunit";
            str2[2] = "packnum";
            str2[3] = "buy_price";
            str2[4] = "sell_price";
            str2[5] = "STATITEM_CODE";
            str2[6] = "server_item_id";
            DataTable dt2 = BindEntity <Views.vi_clinical_all_items> .CreateInstanceDAL(oleDb).GetList(strWhere2, str2);

            if (dt2.Rows.Count == 0)
            {
                throw new Exception("项目【" + ordercontent + "】未找到,该项目已不存在,请检查基础数据!");
            }
            presorder.ItemID      = Convert.ToInt32(dt2.Rows[0]["server_item_id"].ToString());
            presorder.PackUnit    = dt2.Rows[0]["packunit"].ToString();
            presorder.Unit        = dt2.Rows[0]["leastunit"].ToString();
            presorder.RelationNum = Convert.ToDecimal(dt2.Rows[0]["packnum"].ToString());
            presorder.Buy_Price   = Convert.ToDecimal(dt2.Rows[0]["buy_price"].ToString());
            presorder.Sell_Price  = Convert.ToDecimal(dt2.Rows[0]["sell_price"].ToString());
            presorder.ItemType    = dt2.Rows[0]["STATITEM_CODE"].ToString();
            presorder.Drug_Flag   = 1;
            presorder.PresType    = "4";
            presorder.Amount      = num * execNum;
            presorder.Tolal_Fee   = Convert.ToDecimal(presorder.Amount * presorder.Sell_Price);
            presorder.Tolal_Fee   = Convert.ToDecimal(presorder.Tolal_Fee.ToString("0.00"));
            BindEntity <ZY_PresOrder> .CreateInstanceDAL(oleDb).Add(presorder);

            //premaster.PatListID = presorder.PatListID;
            //premaster.PatID = presorder.PatID;
            //premaster.PresType = Convert.ToString(1);
            //BindEntity<ZY_PresMaster>.CreateInstanceDAL(oleDb).Add(premaster);
            //string strWhere7 = "presorderid=" + presorder.PresOrderID;
            //string updatefile = Tables.zy_presorder.PRESMASTERID + oleDb.EuqalTo() + premaster.PresMasterID;
            //BindEntity<HIS.Model.ZY_PresOrder>.CreateInstanceDAL(oleDb).Update(strWhere7, updatefile);
            return;
        }
示例#18
0
 public override void Send(int orderid, DateTime servertime, ZY_DOC_ORDERRECORD zy_doc_orderrecord, List <int> grouplist)
 {
     base.insertorderexec(orderid, base.Employeeid, servertime);
     base.updateTempOrderFlag(orderid);
     updateSendTime(orderid, servertime);
 }
示例#19
0
 public override void Send(int orderid, DateTime servertime, ZY_DOC_ORDERRECORD zy_doc_orderrecord, List <int> grouplist)
 {
 }
示例#20
0
        /// <summary>
        /// 长期药品费用
        /// </summary>
        public override void InsertDrugFee(int order_id, DateTime server_datetime, ZY_DOC_ORDERRECORD zy_nurse_orderrecord)
        {
            int      orderid = order_id;
            int      itemid;
            DateTime ServerDateTime = server_datetime;

            Model.ZY_PresOrder presorder = new ZY_PresOrder();
            //Model.ZY_PresMaster premaster = new ZY_PresMaster();
            string string1 = "op_date=" + "'" + ServerDateTime + "'";
            string string2 = "oprerator=" + Employeeid;

            BindEntity <ZY_DOC_ORDERRECORD> .CreateInstanceDAL(oleDb).Update("order_id=" + orderid, string1, string2);

            presorder.PatListID    = Zy_doc_orderrecord.PATID;
            presorder.MarkDate     = Zy_doc_orderrecord.TRANS_DATE;
            presorder.PresDate     = Zy_doc_orderrecord.ORDER_BDATE;
            presorder.PresDocCode  = Zy_doc_orderrecord.ORDER_DOC.ToString();
            presorder.PresDeptCode = Zy_doc_orderrecord.PRES_DEPTID.ToString();
            presorder.ExecDeptCode = Zy_doc_orderrecord.EXEC_DEPT.ToString();
            itemid               = Zy_doc_orderrecord.ORDITEM_ID == 0 ? Zy_doc_orderrecord.MAKEDICID : Zy_doc_orderrecord.ORDITEM_ID;
            presorder.ItemName   = Zy_doc_orderrecord.ORDER_CONTENT;
            presorder.order_id   = Zy_doc_orderrecord.ORDER_ID;
            presorder.group_id   = Zy_doc_orderrecord.GROUP_ID;
            presorder.order_type = Zy_doc_orderrecord.ORDER_TYPE;
            string   ordercontent    = Zy_doc_orderrecord.ORDER_CONTENT;
            int      unit_type       = Zy_doc_orderrecord.UNITTYPE;
            int      item_type       = Zy_doc_orderrecord.ITEM_TYPE;
            string   frequency_time  = Zy_doc_orderrecord.FREQUENCY;
            int      first_time      = Zy_doc_orderrecord.FIRSET_TIMES;
            int      last_time       = Zy_doc_orderrecord.TEMINAL_TIMES;
            decimal  num             = Zy_doc_orderrecord.AMOUNT;
            decimal  pres_amount     = Zy_doc_orderrecord.PRES_AMOUNT;
            DateTime order_begindate = Zy_doc_orderrecord.ORDER_BDATE;
            DateTime order_enddate   = Zy_doc_orderrecord.EORDER_DATE;
            DateTime currenttime     = ServerDateTime;

            string strWhere4 = "patlistid=" + presorder.PatListID;
            string str4      = "patid";

            presorder.PatID = Convert.ToInt32(BindEntity <HIS.Model.ZY_PatList> .CreateInstanceDAL(oleDb).GetFieldValue(str4, strWhere4));

            string strWhere6 = "name='" + frequency_time + "'";
            string str6      = "execnum";

            int execNum;

            if (currenttime.ToString("yyyy-MM-dd") == order_begindate.ToString("yyyy-MM-dd") && currenttime.ToString("yyyy-MM-dd") == order_enddate.ToString("yyyy-MM-dd"))//11月22日加,解决如果长嘱当天开,当天停,以末次计数
            {
                execNum = last_time;
            }
            else if (currenttime.ToString("yyyy-MM-dd") == order_begindate.ToString("yyyy-MM-dd"))
            {
                execNum = first_time;
            }
            else if (currenttime.ToString("yyyy-MM-dd") == order_enddate.ToString("yyyy-MM-dd"))
            {
                execNum = last_time;
            }
            else
            {
                if (frequency_time == "1" || frequency_time == "" || frequency_time == null)
                {
                    execNum = 1;
                }
                else
                {
                    execNum = Convert.ToInt32(BindEntity <HIS.Model.Base_Frequency> .CreateInstanceDAL(oleDb).GetFieldValue(str6, strWhere6));
                }
            }
            presorder.CostDate    = ServerDateTime;
            presorder.ChargeCode  = Convert.ToString(base.Employeeid);
            presorder.Charge_Flag = 1;
            //取消判断库存 2011.1.14 heyan
            string strWhere3 = "itemid=" + itemid + " and drug_flag=1 and order_type=" + item_type + "";// and storenum>0 and EXECDEPTCODE=" + zy_nurse_orderrecord.EXEC_DEPT + ""; //update by heyan 2010.12.3 医嘱发送时库存为0的不能发送

            string[] str3 = new string[9];
            str3[0] = "packunit";
            str3[1] = "leastunit";
            str3[2] = "packnum";
            str3[3] = "dosenum";
            str3[4] = "buy_price";
            str3[5] = "sell_price";
            str3[6] = "float_flag";
            str3[7] = "standard";
            str3[8] = "STATITEM_CODE";
            DataTable dt3 = BindEntity <Views.vi_clinical_all_items> .CreateInstanceDAL(oleDb).GetList(strWhere3, str3);

            if (zy_nurse_orderrecord.STATUS_FALG != 4 && dt3.Rows.Count == 0) // update by heyan 2010.12.25 停嘱的不判断库存
            {
                throw new Exception("药品【" + ordercontent + "】未找到,该药品可能已停用或已删除或库存为0,请检查药品字典!");
            }
            presorder.ItemID      = itemid;
            presorder.PackUnit    = dt3.Rows[0]["packunit"].ToString();
            presorder.Unit        = dt3.Rows[0]["leastunit"].ToString();
            presorder.RelationNum = Convert.ToDecimal(dt3.Rows[0]["packnum"].ToString());
            presorder.Drug_Flag   = 0;
            presorder.Buy_Price   = Convert.ToDecimal(dt3.Rows[0]["buy_price"].ToString());
            presorder.Sell_Price  = Convert.ToDecimal(dt3.Rows[0]["sell_price"].ToString());
            presorder.PresType    = Zy_doc_orderrecord.ITEM_TYPE.ToString();//dt1.Rows[0]["item_type"].ToString();
            presorder.Standard    = dt3.Rows[0]["standard"].ToString();
            presorder.ItemType    = dt3.Rows[0]["STATITEM_CODE"].ToString();
            decimal dose_num   = Convert.ToDecimal(dt3.Rows[0]["dosenum"].ToString());
            int     pack_num   = Convert.ToInt32(dt3.Rows[0]["packnum"].ToString());
            bool    float_flag = Convert.ToInt32(dt3.Rows[0]["float_flag"].ToString()) == 1 ? true : false;

            presorder.Amount = DrugAmoutCalculation.getlongAmout(float_flag, unit_type, item_type, execNum, dose_num, pack_num, first_time, last_time, num, pres_amount, presorder.PresDate, order_enddate, presorder.CostDate);
            int tempnum = Convert.ToInt32((presorder.Amount - (presorder.Amount % pack_num)) / pack_num);

            presorder.Tolal_Fee = tempnum * presorder.Sell_Price + ((presorder.Amount % pack_num) / pack_num) * presorder.Sell_Price;
            //插入费用表数据和结算表数据
            presorder.Tolal_Fee = Convert.ToDecimal(presorder.Tolal_Fee.ToString("0.00"));
            BindEntity <ZY_PresOrder> .CreateInstanceDAL(oleDb).Add(presorder);

            //premaster.PatListID = presorder.PatListID;
            //premaster.PatID = presorder.PatID;
            //premaster.PresType = Convert.ToString(0);
            //BindEntity<ZY_PresMaster>.CreateInstanceDAL(oleDb).Add(premaster);
            //string strWhere7 = "presorderid=" + presorder.PresOrderID;
            //string updatefile = Tables.zy_presorder.PRESMASTERID + oleDb.EuqalTo() + premaster.PresMasterID;
            //BindEntity<HIS.Model.ZY_PresOrder>.CreateInstanceDAL(oleDb).Update(strWhere7, updatefile);
            return;
        }
示例#21
0
 public virtual void InsertComponentItemFee(int order_id, int item_id, DateTime server_datetime, ZY_DOC_ORDERRECORD zy_doc_orderrecord)
 {
 }
示例#22
0
        public override void Send(int orderid, DateTime servertime, ZY_DOC_ORDERRECORD zy_doc_orderrecord, List <int> grouplist)
        {
            DateTime currentTime = servertime;
            DateTime beginTime   = zy_doc_orderrecord.ORDER_BDATE;
            DateTime finishTime  = zy_doc_orderrecord.EORDER_DATE;
            int      patlistid   = zy_doc_orderrecord.PATID;
            OP_Order oporder     = new OP_Order();
            string   strWhere    = "date(costdate)='" + Convert.ToDateTime(currentTime.ToString("yyyy-MM-dd")) + "'" + oleDb.And() + Tables.zy_presorder.ORDER_ID + oleDb.EuqalTo() + orderid;
            bool     existresult = BindEntity <ZY_PresOrder> .CreateInstanceDAL(oleDb).Exists(strWhere);

            if (existresult == false)//末次未执行,只执行停医嘱操作
            {
                if (zy_doc_orderrecord.TEMINAL_TIMES != 0)
                {
                    base.insertorderexec(orderid, base.Employeeid, servertime);
                    base.updateLongOrderFlag(orderid);
                    InsertItemFee(orderid, servertime, zy_doc_orderrecord);
                }
                else
                {
                    base.updateLongOrderFlag(zy_doc_orderrecord.ORDER_ID);
                    base.insertorderexec(zy_doc_orderrecord.ORDER_ID, base.Employeeid, servertime);
                }
            }
            else//先执行正常频次,后执行停医嘱操作
            {
                int    firsttime      = zy_doc_orderrecord.FIRSET_TIMES;
                int    lasttimes      = zy_doc_orderrecord.TEMINAL_TIMES;
                string frequency_time = XcConvert.IsNull(zy_doc_orderrecord.FREQUENCY, "Qd");
                string strWhere6      = "name='" + frequency_time + "'";
                string str6           = "execnum";
                int    execNum        = Convert.ToInt32(BindEntity <HIS.Model.Base_Frequency> .CreateInstanceDAL(oleDb).GetFieldValue(str6, strWhere6));

                if (beginTime.ToString("yyyy-MM-dd") == currentTime.ToString("yyyy-MM-dd") && finishTime.ToString("yyyy-MM-dd") == currentTime.ToString("yyyy-MM-dd"))//当天开当天停的特殊情况,正常频次不能执行
                {
                    if (firsttime == 0)
                    {
                        base.updateLongOrderFlag(zy_doc_orderrecord.ORDER_ID);
                        base.insertorderexec(zy_doc_orderrecord.ORDER_ID, base.Employeeid, servertime);
                    }
                    else
                    {
                        execNum = firsttime;
                        string              str          = " date(costdate)='" + Convert.ToDateTime(currentTime.ToString("yyyy-MM-dd")) + "'" + oleDb.And() + Tables.zy_presorder.ORDER_ID + oleDb.EuqalTo() + orderid + oleDb.And() + Tables.zy_presorder.RECORD_FLAG + oleDb.EuqalTo() + 0 + oleDb.And() + Tables.zy_presorder.PATLISTID + oleDb.EuqalTo() + zy_doc_orderrecord.PATID;
                        List <DateTime>     datelist     = new List <DateTime>();
                        List <ZY_PresOrder> zy_presorder = BindEntity <ZY_PresOrder> .CreateInstanceDAL(oleDb).GetListArray(str);

                        for (int i = 0; i < zy_presorder.Count; i++)
                        {
                            List <int> presorderlist = new List <int>();
                            presorderlist.Add(zy_presorder[i].PresOrderID);
                            datelist.Add(zy_presorder[i].CostDate);
                            decimal amount = oporder.getsingleresult(presorderlist);
                            if (execNum < lasttimes)//首次小于末次,补充数量
                            {
                                decimal cancelamount = Math.Ceiling(amount * (execNum - lasttimes) / execNum);
                                oporder.insertamountaccount(patlistid, presorderlist, datelist, cancelamount, currentTime);
                            }
                            else if (execNum > lasttimes)//首次大于末次,冲正数量
                            {
                                decimal cancelamount = Math.Ceiling(amount * (execNum - lasttimes) / execNum);
                                if (cancelamount > 0)//数量已冲完,过滤掉0数量自动冲,3月25日修改
                                {
                                    oporder.autocanamountaccount(patlistid, presorderlist, datelist, cancelamount, currentTime);
                                }
                                else
                                {
                                    continue;
                                }
                            }
                            else
                            {
                                base.updateLongOrderFlag(zy_doc_orderrecord.ORDER_ID);
                                base.insertorderexec(zy_doc_orderrecord.ORDER_ID, base.Employeeid, servertime);
                            }
                        }
                        base.updateLongOrderFlag(zy_doc_orderrecord.ORDER_ID);
                        base.insertorderexec(zy_doc_orderrecord.ORDER_ID, base.Employeeid, servertime);
                    }
                }
                else//非当天开当天停的情况
                {
                    if (execNum != lasttimes)//在正常频次和末次不相等的情况下,先充掉已执行的正常频率,再执行末次频率
                    {
                        string              str          = " date(costdate)='" + Convert.ToDateTime(currentTime.ToString("yyyy-MM-dd")) + "'" + oleDb.And() + Tables.zy_presorder.ORDER_ID + oleDb.EuqalTo() + orderid + oleDb.And() + Tables.zy_presorder.RECORD_FLAG + oleDb.EuqalTo() + 0 + oleDb.And() + Tables.zy_presorder.PATLISTID + oleDb.EuqalTo() + patlistid;
                        List <DateTime>     datelist     = new List <DateTime>();
                        List <ZY_PresOrder> zy_presorder = BindEntity <ZY_PresOrder> .CreateInstanceDAL(oleDb).GetListArray(str);

                        for (int i = 0; i < zy_presorder.Count; i++)
                        {
                            List <int> presorderlist = new List <int>();
                            presorderlist.Add(zy_presorder[i].PresOrderID);
                            datelist.Add(zy_presorder[i].CostDate);
                            decimal amount = oporder.getsingleresult(presorderlist);
                            if (execNum > lasttimes)
                            {
                                decimal cancelamount = Math.Ceiling(amount * (execNum - lasttimes) / execNum);//1月8日增加,修改冲正模式。
                                oporder.autocanamountaccount(patlistid, presorderlist, datelist, cancelamount, currentTime);
                            }
                            else
                            {
                                decimal cancelamount = Math.Ceiling(amount * (execNum - lasttimes) / execNum);
                                oporder.insertamountaccount(patlistid, presorderlist, datelist, cancelamount, currentTime);
                            }
                        }
                        base.updateLongOrderFlag(zy_doc_orderrecord.ORDER_ID);
                        base.insertorderexec(zy_doc_orderrecord.ORDER_ID, base.Employeeid, servertime);
                    }
                    else//在正常频次和末次相等的情况下,只修改医嘱执行状态,不做先充后执行操作
                    {
                        base.updateLongOrderFlag(zy_doc_orderrecord.ORDER_ID);
                        base.insertorderexec(zy_doc_orderrecord.ORDER_ID, base.Employeeid, servertime);
                    }
                }
            }
        }