Exemple #1
0
 //his自身数据源绑定时段下拉  Add by zp 2013-11-07
 private void BindCmbTime()
 {
     try
     {
         int      ghys = int.Parse(Convertor.IsNull(Lab_Doctor.SelectedValue, "0"));
         int      ghjb = int.Parse(Convertor.IsNull(cmbghjb.SelectedValue, "0"));
         int      ghks = int.Parse(Convertor.IsNull(Lab_Dept.SelectedValue, "0"));
         DateTime date = dateTimePicker1.Value;
         Ts_Visit_Class.VisitResource _VisRes = new VisitResource(ghks, ghjb, ghys, date.ToString("yyyy-MM-dd"), InstanceForm.BDatabase);
         FsdClass  _fsd  = new FsdClass();
         int       sxwid = cmb_sxw.Text.Trim() == "上午" ? 1 : 2;
         DataTable dt    = _fsd.GetSdInfo(_VisRes.Resid, sxwid, InstanceForm.BDatabase);
         if (dt == null || dt.Rows.Count == 0)
         {
             Cmb_Times.Enabled = false;
         }
         else
         {
             Cmb_Times.Enabled       = true;
             Cmb_Times.DisplayMember = "SJNC";
             Cmb_Times.ValueMember   = "ZYMXID";
             Cmb_Times.DataSource    = dt;
         }
     }
     catch (Exception ea)
     {
         MessageBox.Show("出现异常!原因:" + ea.Message, "提示");
     }
 }
Exemple #2
0
        /// <summary>
        /// 释放预约资源
        /// </summary>
        /// <param name="_cfg3059"></param>
        /// <param name="_DataBase"></param>
        public static void UpdateYyResource(SystemCfg _cfg3059, RelationalDatabase _DataBase)
        {
            /*释放指定时间段内还未取号的预约资源,如当前时间为8点 8点半的号还未进行取号 如果参数设置为
             * 半个小时未取号就释放,则释放八点半的号源*/
            string    sql        = @"  SELECT convert(varchar(10),getdate(),120),
            convert(varchar(16),DATEADD(MINUTE,(SELECT CAST(CONFIG AS INT)
            FROM JC_CONFIG WHERE ID=1127),GETDATE()),120),
            SUBSTRING(convert(varchar(16),getdate(),120),11,16) ";
            DataTable dt_Date    = _DataBase.GetDataTable(sql);
            string    Date_Now   = dt_Date.Rows[0][0].ToString();
            string    Time_Now   = dt_Date.Rows[0][1].ToString();
            string    HourMinute = dt_Date.Rows[0][2].ToString();

            sql = @"SELECT *,substring(YYSD,1,5) AS KSSJ ,substring(YYSD,7,5) as JSSJ FROM MZ_YYGHLB 
            WHERE CONVERT(VARCHAR(10),YYRQ,120)='" + Date_Now + @"' AND substring('" + Time_Now + @"',12,len('" + Time_Now + @"')) >=
            substring(YYSD,7,5) AND BQHBZ=0 AND BSCBZ=0";
            //获取需要释放资源的预约记录
            DataTable dt_YYxx     = _DataBase.GetDataTable(sql);
            Order_Web _orderMeans = new Order_Web(_cfg3059);

            for (int i = 0; i < dt_YYxx.Rows.Count; i++)
            {
                /*作废预约信息,但是要根据时间判断是否释放分时段信息,如果预约的分时段
                 * 结束时间小于当前时间则不需要释放
                 */
                try
                {
                    string ptid  = Convertor.IsNull(dt_YYxx.Rows[i]["PTID"], "");
                    string qhyzm = dt_YYxx.Rows[i]["YZM"].ToString();
                    string czyh  = dt_YYxx.Rows[i]["DJY"].ToString();
                    string msg   = "";
                    _orderMeans.CancelOrder(ptid, qhyzm, czyh, ref msg);
                    //撤销预约后,需要对分时段资源进行处理
                    //获取资源id
                    int           ghks      = Convert.ToInt32(dt_YYxx.Rows[i]["GHKS"]);
                    int           ghjb      = Convert.ToInt32(dt_YYxx.Rows[i]["GHJB"]);
                    int           ghys      = Convert.ToInt32(dt_YYxx.Rows[i]["GHYS"]);
                    string        yydate    = dt_YYxx.Rows[i]["YYRQ"].ToString();
                    VisitResource _Resource = new VisitResource(ghks, ghjb, ghys, yydate, _DataBase);
                    if (_Resource.Resid <= 0)
                    {
                        return;
                    }

                    string kssj = dt_YYxx.Rows[i]["KSSJ"].ToString().Trim();
                    string jssj = dt_YYxx.Rows[i]["JSSJ"].ToString().Trim();
                    FsdClass.UpdateFsdStatus(_Resource.Resid, kssj, jssj, yydate, _DataBase);
                }
                catch (Exception ea)
                {
                    throw ea;
                }
            }
        }
Exemple #3
0
 /// <summary>
 /// Maps a Visit to VisitResource.
 /// </summary>
 /// <param name="visitResource">The visitor notification.</param>
 /// <returns>A Visit</returns>
 public static Visit ToVisit(this VisitResource visitResource)
 {
     return(new Visit()
     {
         Id = visitResource.Id,
         CheckIn = visitResource.CheckIn,
         CheckOut = visitResource.CheckOut,
         Visitor = new Visitor()
         {
             Id = visitResource.VisitorId
         }
     });
 }
Exemple #4
0
        public async Task <IActionResult> AddVisit(VisitResource visitResource)
        {
            var mapVisit = _mapper.Map <Visit>(visitResource);

            mapVisit.IsAudit     = false;
            mapVisit.CreatedDate = DateTime.Now;
            mapVisit.EditedDate  = mapVisit.CreatedDate;

            _patientRepo.Add(mapVisit);
            await _unitOfWork.CompleteAsync();

            return(CreatedAtAction("GetVisits", new { id = mapVisit.VisitId }, mapVisit));
        }
Exemple #5
0
 public IActionResult New(VisitResource visit)
 {
     try
     {
         VisitManager visitMng = new VisitManager();
         visitMng.Insert(visit.ToVisit());
         return(Ok());
     }
     catch (EntityValidationException ex)
     {
         return(BadRequest(ex.Message));
     }
     catch
     {
         return(Problem());
     }
 }
Exemple #6
0
        public async Task <IActionResult> UpdateVisit(int id, [FromBody] VisitResource visitResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != visitResource.PatientId)
            {
                return(Unauthorized());
            }

            var currVisit = await _context.Visits.AsNoTracking()
                            .Where(i => i.VisitId == id)
                            .FirstOrDefaultAsync();

            var tempVisitInsert = new Visit {
                VisitType  = currVisit.VisitType,
                PatientId  = currVisit.PatientId,
                VisitDate  = currVisit.VisitDate,
                VisitNo    = currVisit.VisitNo,
                Version    = currVisit.Version,
                IsAudit    = true,
                EditedDate = DateTime.Now
            };

            var mapVisit = _mapper.Map <VisitResource, Visit>(visitResource, currVisit);

            mapVisit.Version    = currVisit.Version + 1;
            mapVisit.IsAudit    = false;
            mapVisit.EditedDate = DateTime.Now;

            _patientRepo.Add(tempVisitInsert);
            _context.Update(mapVisit);

            if (await _unitOfWork.CompleteAsync() > 0)
            {
                return(Ok());
            }

            throw new Exception($"Updating visit {id} failed on save");
        }
Exemple #7
0
        public IActionResult Update(VisitResource visit)
        {
            try
            {
                VisitManager visitMng = new VisitManager();
                var          visitDb  = visitMng.GetRecordById(visit.Id);
                if (visitDb == null)
                {
                    return(BadRequest("Invalid visit id!"));
                }
                visitDb.CheckIn  = visit.CheckIn;
                visitDb.CheckOut = visit.CheckOut;

                if (visitDb.Visitor.Id != visit.VisitorId)
                {
                    VisitorManager visitorMng = new VisitorManager();
                    Visitor        visitor    = visitorMng.GetRecordById(visit.VisitorId);
                    if (visitor == null)
                    {
                        return(BadRequest("Invalid visitor id!"));
                    }
                    visitDb.Visitor = visitor;
                }

                visitMng.Update(visitDb);
                return(Ok());
            }
            catch (EntityValidationException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch
            {
                return(Problem());
            }
        }
Exemple #8
0
        private void butok_Click_1(object sender, EventArgs e)
        {
            try
            {
                //if (this.dataGridView1.Rows.Count < 1) { return; }
                //if (this.dataGridView1.SelectedRows.Count < 1) { return; }
                //this.txtkh.Text = Convertor.IsNull(this.dataGridView1.SelectedRows[0].Cells["卡号"].Value, "");
                //if (txtkh.Text.Trim() != "" && txtkh.Enabled == true)
                //{
                //    txtkh.Text = Fun.returnKh(Convert.ToInt32(cmbklx.SelectedValue), txtkh.Text);
                //    ReadCard card = new ReadCard(Convert.ToInt32(cmbklx.SelectedValue), txtkh.Text, TrasenFrame.Forms.FrmMdiMain.Database);
                //    if (card.kdjid != Guid.Empty)
                //    {
                //        MessageBox.Show(txtkh.Text + "这个卡号已有人使用,请重新确定卡号", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                //        return;
                //    }
                //}

                DataTable tb = (DataTable)dataGridView1.DataSource;
                if (tb == null)
                {
                    return;
                }
                if (tb.Rows.Count > 0)
                {
                    int nrow = dataGridView1.CurrentCell.RowIndex;
                    if (brxm.Trim() != tb.Rows[nrow]["姓名"].ToString().Trim() && brxm.Trim() != "")
                    {
                        if (MessageBox.Show("预约姓名与当前病人姓名不一致,您确定吗?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                        {
                            return;
                        }
                    }

                    if (tb.Rows[nrow]["失效时间"].ToString() != "")
                    {
                        if (DateManager.ServerDateTimeByDBType(TrasenFrame.Forms.FrmMdiMain.Database) > Convert.ToDateTime(tb.Rows[nrow]["失效时间"].ToString()))
                        {
                            MessageBox.Show("该预约申请已失效,不能取号,请确认", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                    }
                    if (Convert.ToDateTime(DateManager.ServerDateTimeByDBType(TrasenFrame.Forms.FrmMdiMain.Database).ToShortDateString()) > Convert.ToDateTime(Convert.ToDateTime(tb.Rows[nrow]["预约日期"].ToString()).ToShortDateString()))
                    {
                        MessageBox.Show("预约日期不能早于当前挂号时间,可能该预约申请已失效", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    /*限制日期 必须为预约挂号当天 Add by Zp 2013-07-29*/
                    string date   = DateManager.ServerDateTimeByDBType(TrasenFrame.Forms.FrmMdiMain.Database).ToString("yyyy-MM-dd");
                    string yydate = Convert.ToDateTime(tb.Rows[nrow]["预约日期"]).ToString("yyyy-MM-dd");

                    //增加时间点判断
                    if (new SystemCfg(3062).Config.Trim() == "1" && tb.Rows[nrow]["预约时点"].ToString().Trim() != "")
                    {
                        try
                        {
                            string[] ss  = tb.Rows[nrow]["预约时点"].ToString().Trim().Split('-');
                            DateTime dtq = Convert.ToDateTime(DateManager.ServerDateTimeByDBType(TrasenFrame.Forms.FrmMdiMain.Database));

                            if (date != yydate)
                            {
                                MessageBox.Show("对不起,您预约的日期为【" + tb.Rows[nrow]["预约日期"].ToString().Trim() + "】,必须到预约日期当天才允许取号!!", "提示");
                                return;
                            }

                            /*取最后的时间点,判断与当前日志做判断 Modify By zp 2013-08-07
                             * 新增参数1103 限制需要提前制定分钟取号 否则作废预约记录并释放挂号资源
                             */
                            DateTime _d   = Convert.ToDateTime(ss[0]);                      //预约时间
                            double   xhfz = Convert.ToDouble((new SystemCfg(1103)).Config); //得到需提前取号的分钟数
                            DateTime xzsj = dtq.AddMinutes(xhfz);                           //得到最后取号时间值

                            if (_d < xzsj)                                                  //如果取号时间小于最后取号时间 则不允许取号 并释放限号资源
                            {
                                int _ghks = Convert.ToInt32(tb.Rows[nrow]["ghks"]);
                                int _ghjb = Convert.ToInt32(tb.Rows[nrow]["ghjb"]);
                                int _ghys = Convert.ToInt32(tb.Rows[nrow]["ghys"]);
                                Ts_Visit_Class.VisitResource _VisRes = new VisitResource(_ghks, _ghjb, _ghys, yydate, TrasenFrame.Forms.FrmMdiMain.Database);

                                FsdClass _Fsd = null;
                                if (new SystemCfg(1099).Config.Trim() == "1" && _VisRes.Resid > 0 && _d > dtq)
                                {
                                    _Fsd = new FsdClass(tb.Rows[nrow]["预约时点"].ToString().Trim(), yydate, _VisRes.Resid, TrasenFrame.Forms.FrmMdiMain.Database);
                                    _Fsd.Save(ref _Fsd, true, TrasenFrame.Forms.FrmMdiMain.Database);
                                }
                                MessageBox.Show("对不起,您预约的时间段为【" + tb.Rows[nrow]["预约时点"].ToString().Trim() + "】,当前时间已超时!需在" + _d.AddMinutes(-xhfz) + "前取号!!", "提示");
                                return;
                            }
                        }
                        catch
                        {
                        }
                    }
                    //Add by zp 2014-07-30 对资源释放的记录进行判断 给予提示
                    if (tb.Rows[nrow]["删除标记"].ToString().Trim() == "1")
                    {
                        MessageBox.Show("选择的预约记录已作废!", "提示");
                        return;
                    }
                    ReturnRow = tb.Rows[nrow];

                    ReturnNewKH = Convertor.IsNull(this.dataGridView1.SelectedRows[0].Cells["卡号"].Value, "");
                    Bok         = true;
                    this.Close();
                }
                else
                {
                    MessageBox.Show("没有可选择的预约记录,请确认", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (System.Exception err)
            {
                MessageBox.Show(err.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }